WENOEXT-master

所属分类:Linux/Unix编程
开发工具:C/C++
文件大小:19613KB
下载次数:0
上传日期:2021-04-03 16:58:32
上 传 者6408488
说明:  基于Openfoam的WENO算法,C++ 语言编写的数值模块。
(Weno Scheme based on the Openfoam.)

文件列表:
Allwclean (137, 2021-03-09)
Allwmake (2524, 2021-03-09)
CONTRIBUTORS (1583, 2021-03-09)
LICENSE (35147, 2021-03-09)
bashrc (127, 2021-03-09)
blaze-3.8 (0, 2021-03-09)
blaze-3.8\LICENSE (1603, 2021-03-09)
blaze-3.8\blaze (0, 2021-03-09)
blaze-3.8\blaze\Blaze.h (2886, 2021-03-09)
blaze-3.8\blaze\Forward.h (2469, 2021-03-09)
blaze-3.8\blaze\Math.h (4133, 2021-03-09)
blaze-3.8\blaze\Tutorial.h (820803, 2021-03-09)
blaze-3.8\blaze\Util.h (3941, 2021-03-09)
blaze-3.8\blaze\config (0, 2021-03-09)
blaze-3.8\blaze\config\Alignment.h (3405, 2021-03-09)
blaze-3.8\blaze\config\Assertion.h (3992, 2021-03-09)
blaze-3.8\blaze\config\BLAS.h (9741, 2021-03-09)
blaze-3.8\blaze\config\CacheSize.h (2987, 2021-03-09)
blaze-3.8\blaze\config\Config.h (2692, 2021-03-09)
blaze-3.8\blaze\config\Debugging.h (4283, 2021-03-09)
blaze-3.8\blaze\config\Inline.h (5190, 2021-03-09)
blaze-3.8\blaze\config\MPI.h (3066, 2021-03-09)
blaze-3.8\blaze\config\Optimizations.h (7342, 2021-03-09)
blaze-3.8\blaze\config\Padding.h (3425, 2021-03-09)
blaze-3.8\blaze\config\Random.h (3161, 2021-03-09)
blaze-3.8\blaze\config\Restrict.h (2873, 2021-03-09)
blaze-3.8\blaze\config\SMP.h (3332, 2021-03-09)
blaze-3.8\blaze\config\StorageOrder.h (3382, 2021-03-09)
blaze-3.8\blaze\config\Thresholds.h (109028, 2021-03-09)
blaze-3.8\blaze\config\TransposeFlag.h (3400, 2021-03-09)
blaze-3.8\blaze\config\Vectorization.h (4750, 2021-03-09)
blaze-3.8\blaze\math (0, 2021-03-09)
blaze-3.8\blaze\math\Accuracy.h (39105, 2021-03-09)
blaze-3.8\blaze\math\Aliases.h (24083, 2021-03-09)
blaze-3.8\blaze\math\AlignmentFlag.h (3948, 2021-03-09)
... ...

![](documentation/WENOLogo.png) # WENO framework Weighted essentially non-oscillatory library for the framework of OpenFOAM. Detailed information about the theoretical background and the implementation can be found in: * [J. W. Gartner, A. Kronenburg, T. Martin, Efficient WENO library for OpenFOAM, SoftwareX, 2020](./documentation/Gaertner2020.pdf) * [T. Martin and I. Shevchuk, Implementation and Validation of Semi-Implicit WENO Schemes Using OpenFOAM, Computation, 2018](./documentation/Martin2018.pdf) * [Solving the Level Set Equation using High-order Non-oscillatory Reconstruction](./documentation/Martin_Solving_the_Level_Set_Equation_using_High-order_Non-oscillatory_Reconstruction.pdf) A quick overview of the WENO scheme is provided in this presentation: * [Presentation: WENOExt](./documentation/WENO-Presentation.pdf) Please also check out the ***Discussion*** board of GitHub for more information about features or if you want to post a new idea. **Versions:** Different versions of the code are structured through tags: * [2.0] Improved speed by using Blaze matrix operations * [1.0] Version for OpenFOAM 5.x, 6 and 7. Uses improved parallising and C++11 features * [0.1] Version for OpenFOAM 2.3.x to OpenFOAM 5.x ### Supported OpenFOAM Versions: * OpenFOAM (ORG) v5.x - 7 * OpenFOAM (ESI) v1912 ## Authors * Tobias Martin * Jan Wilhelm Gartner When using this work please cite: > J. W. Gartner, A. Kronenburg, and T. Martin, “SoftwareX Efficient WENO library for OpenFOAM”, SoftwareX, vol. 12, p. 100611, 2020, doi: 10.1016/j.softx.2020.100611. > T. Martin, and I. Shevchuk, “SoftwareX Efficient WENO library for OpenFOAM,” Computation, vol. 6(6), 2018, doi: 10.3390/computation6010006. ## Installation 1. Clone the directory with `git clone https://github.com/WENO-OF/WENOEXT.git` 2. Execute `Allwmake` to build the library ### Note to GNU compiler: GNU compiler version must be higher than 7. For g++ < v7 an error is reported for the specialisation template syntax. The syntax in the code is according to C++11 standard which is available for g++ v7 and higher. ## Usage To use the WENO scheme you have to add the library to your controlDict by editing `system/controlDict` libs("libWENOEXT.so") Within your `system/fvSchemes` file, divSchemes { div(phi,U) Gauss WENOUpwindFit 2 1; } Here the first index '2' represents the order of the WENO scheme and the second index can be either '1' for bounded or '0' for unbounded. Further options can be set in the WENODict located in the 'system/' folder: ```C++ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object WENODict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // This dict contains expert parameters, which modify the standard WENO scheme. //- Stencil extension ratio: // - < 2.5 : decreased computational effort. May also decrease stability // and accuracy // - > 2.5 : higher stability. May influence the accuracy of the SVD extendRatio 2.5; //- WENO stencil weighting parameters: p 4.0; dm 1000.0; //- Calculate best conditioned matrix // This can save memory especially for high order WENO scheme // Increases the calculation time! Default is off bestConditioned true; writeData true; // Write out the collected stencil list and matrix data // default is 'true' maxCondition 1E-05;// Inverse of the maximum condition that the pseudo // inverse can have. Only change if you know what you // are doing! // ************************************************************************* / ``` ## Tutorials The code contains two tutorials from the standard cavity test. To run the tutorials execute `./Allrun` in the tutorial/ directory. ## Tests Testing is performed with the CATCH2 framework. You can compile and execute the tests by executing `./runTest` in the test directory. Further instructions are found in [here](tests/TestInstructions.md) ## License This OpenFOAM library is under the GNU General Public License. This library contains the [Blaze](https://bitbucket.org/blaze-lib/blaze/src/master/) library licensed under the BSD license. Redistribution and use of the Blaze source code with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of the **Blaze** development group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

近期下载者

相关文件


收藏者