- Jan 18, 2018
-
-
Andrew Heather authored
-
- Dec 19, 2017
-
-
Andrew Heather authored
-
- Apr 24, 2018
-
-
Mark OLESEN authored
- generalize some of the library extensions (.so vs .dylib). Provide as wmake 'sysFunctions' - added note about unsupported/incomplete system support - centralize detection of ThirdParty packages into wmake/ subdirectory by providing a series of scripts in the spirit of GNU autoconfig. For example, have_boost, have_readline, have_scotch, ... Each of the `have_<package>` scripts will generally provide the following type of functions: have_<package> # detection no_<package> # reset echo_<package> # echoing and the following type of variables: HAVE_<package> # unset or 'true' <package>_ARCH_PATH # root for <package> <package>_INC_DIR # include directory for <package> <package>_LIB_DIR # library directory for <package> This simplifies the calling scripts: if have_metis then wmake metisDecomp fi As well as reduci...
-
- Apr 12, 2018
-
-
mattijs authored
-
- Mar 15, 2018
-
-
mattijs authored
-
- Sep 15, 2017
-
-
- with sphereSurfactantFoam and sphereTransport test case
-
- Mar 20, 2018
-
-
Specialized variants of the power law porosity and k epsilon turbulence models developed to simulate atmospheric flow over forested and non-forested complex terrain. Class Foam::powerLawLopesdaCosta Description Variant of the power law porosity model with spatially varying drag coefficient given by: \f[ S = -\rho C_d \Sigma |U|^{(C_1 - 1)} U \f] where \vartable \Sigma | Porosity surface area per unit volume C_d | Model linear coefficient C_1 | Model exponent coefficient \endvartable Reference: \verbatim Costa, J. C. P. L. D. (2007). Atmospheric flow over forested and non-forested complex terrain. \endverbatim Class Foam::RASModels::kEpsilonLopesdaCosta Description Variant of the standard k-epsilon turbulence model with additional source terms to handle the changes in turbulence in porous regions represented by the powerLawLopesdaCosta porosity model. Reference: \verbatim Costa, J. C. P. L. D. (2007). Atmospheric flow over forested and non-forested complex terrain. \endverbatim The default model coefficients are \verbatim kEpsilonLopesdaCostaCoeffs { Cmu 0.09; C1 1.44; C2 1.92; sigmak 1.0; sigmaEps 1.3; } \endverbatim Tutorial case to follow.
-
- Oct 19, 2017
-
-
Two boundary conditions for the modelling of semi-permeable baffles have been added. These baffles are permeable to a number of species within the flow, and are impermeable to others. The flux of a given species is calculated as a constant multipled by the drop in mass fraction across the baffle. The species mass-fraction condition requires the transfer constant and the name of the patch on the other side of the baffle: boundaryField { // ... membraneA { type semiPermeableBaffleMassFraction; samplePatch membranePipe; c 0.1; value uniform 0; } membraneB { type semiPermeableBaffleMassFraction; samplePatch membraneSleeve; c 0.1; value uniform 1; } } If the value of c is omitted, or set to zero, then the patch is considered impermeable to the species in question. The samplePatch entry can also be omitted in this case. The velocity condition does not require any special input: boundaryField { // ... membraneA { type semiPermeableBaffleVelocity; value uniform (0 0 0); } membraneB { type semiPermeableBaffleVelocity; value uniform (0 0 0); } } These two boundary conditions must be used in conjunction, and the mass-fraction condition must be applied to all species in the simulation. The calculation will fail with an error message if either is used in isolation. A tutorial, combustion/reactingFoam/RAS/membrane, has been added which demonstrates this transfer process. This work was done with support from Stefan Lipp, at BASF.
-
- Jun 23, 2017
-
-
Mark OLESEN authored
- This provides a mechanism for moving mesh patches based on external input (eg, from an external structures solver). The patch points are influenced by the position and rotation of the lumped points. BC: lumpedPointDisplacementPointPatchVectorField Controlling mechanisms: - externalCoupler for coordinating the master/slave - lumpedPointMovement manages the patch-points motion, but also for extracting forces/moments - lumpedPointState represents the positions/rotations of the controlling points Utils: - lumpedPointZones diagnostic for visualizing the correspondence between controlling points and patch faces - lumpedPointMovement Test that the patch motion is as desired without invoking moveMesh. With the -slave option, return items from a precalculated table for the lumpedPointDisplacementPointPatchVectorField BC.
-
- Jun 14, 2017
-
-
mattijs authored
Adds overset discretisation to selected physics: - diffusion : overLaplacianDyMFoam - incompressible steady : overSimpleFoam - incompressible transient : overPimpleDyMFoam - compressible transient: overRhoPimpleDyMFoam - two-phase VOF: overInterDyMFoam The overset method chosen is a parallel, fully implicit implementation whereby the interpolation (from donor to acceptor) is inserted as an adapted discretisation on the donor cells, such that the resulting matrix can be solved using the standard linear solvers. Above solvers come with a set of tutorials, showing how to create and set-up simple simulations from scratch.
-
- May 18, 2017
-
-
- simplifies organization, includes, linkage etc.
-
- Apr 21, 2017
-
-
Henry Weller authored
-
- Apr 04, 2017
-
-
Mark Olesen authored
- just check WM_PROJECT_DIR instead. - provide a fallback value when FOAM_EXT_LIBBIN might actually be needed. Only strictly need FOAM_EXT_LIBBIN for scotch/metis decomposition, and when these are actually supplied by ThirdParty. All other ThirdParty dependencies are referenced by BOOST_ARCH_PATH etc. Can therefore drop the FOAM_EXT_LIBBIN dependency for VTK-related things, which do not use scotch/metis anyhow.
-
- Mar 27, 2017
-
-
Andrew Heather authored
-
- Mar 20, 2017
-
-
Mark Olesen authored
- handle sourcing bashrc with a relative path (issue #383) - handle sourcing from bash and zsh. Still need manual intervention when sourcing dash, sh, or ksh. - replace grep in etc/cshrc with sed only - logical instead of physical path for WM_PROJECT_DIR (issue #431). Doesn't seem to be possible for csh/tcsh. * Continue using physical locations when comparing directories, but not for the top-level FOAM_INST_DIR, WM_PROJECT_DIR. - relocate WM_CC, WM_CXX overrides from etc/config.*/compiler to etc/config.*/settings to ensure that they are left untouched when etc/config.sh/compiler is sourced while making third-party packages (eg, gcc, llvm, CGAL). - provide fallback FOAM_TUTORIALS setting in RunFunctions STYLE: remove "~OpenFOAM" fallback as being too rare, non-obvious
-
- Feb 06, 2017
-
-
Mark Olesen authored
-
- Jan 28, 2017
-
-
Henry Weller authored
Patch contributed by Bruno Santos Resolves patch request https://bugs.openfoam.org/view.php?id=2424
-
- Dec 22, 2016
-
-
Mark Olesen authored
- Could be related to interrupted builds. So if there are any parts of the build that rely on an explicit 'wmakeLnInclude', make sure that the contents are properly updated. -- ENH: improved feedback from top-level Allwmake - Report which section (libraries, applications) is being built. - Provide final summary of date, version, etc, which can be helpful for later diagnosis or record keeping. - The -log=XXX option for Allwmake now accepts a directory name and automatically appends an appropriate log name. Eg, ./Allwmake -log=logs/ ->> logs/log.linux64GccDPInt32Opt The default name is built from the value of WM_OPTIONS. -- BUG: shell not exiting properly in combination with -log option - the use of 'tee' causes the shell to hang around. Added an explicit exit to catch this. -- - Detecting the '-k' (-non-stop) option at the top-level Allwmake, which may improve robustness. - Explicit continue-on-error for foamyMesh (as optional component) - unify format of script messages for better readability COMP: reduce warnings when building Pstream (old-style casts in openmpi)
-
- Dec 15, 2016
-
-
Andrew Heather authored
-
- Nov 13, 2016
-
-
Henry Weller authored
'set -x' should be used for debugging. Added command printing into wmake and Allwmake as a replacement for 'set -x' to log current target.
-
- Sep 23, 2016
-
-
Andrew Heather authored
-
- Aug 08, 2016
-
-
Mark Olesen authored
- existed, but was not being called
-
- Jul 05, 2016
-
-
Mark Olesen authored
-
- Jun 24, 2016
-
-
Henry Weller authored
Patch contributed by Mattijs Janssens
-
- Jun 14, 2016
-
-
Henry Weller authored
Resolves bug-report http://bugs.openfoam.org/view.php?id=2120
-
- Jun 01, 2016
-
-
mattijs authored
-
- May 28, 2016
-
-
Henry Weller authored
with the more general and flexible 'postProcess' utility and '-postProcess' solver option Rationale --------- Both the 'postProcess' utility and '-postProcess' solver option use the same extensive set of functionObjects available for data-processing during the run avoiding the substantial code duplication necessary for the 'foamCalc' and 'postCalc' utilities and simplifying maintenance. Additionally consistency is guaranteed between solver data processing and post-processing. The functionObjects have been substantially re-written and generalized to simplify development and encourage contribution. Configuration ------------- An extensive set of simple functionObject configuration files are provided in OpenFOAM-dev/etc/caseDicts/postProcessing and more will be added in the future. These can either be copied into '<case>/system' directory and included into the 'controlDict.functions' sub-dictionary or included directly from 'etc/caseDicts/postProcessing' using the '#includeEtc' directive or the new and more convenient '#includeFunc' directive which searches the '<etc>/caseDicts/postProcessing' directories for the selected functionObject, e.g. functions { #includeFunc Q #includeFunc Lambda2 } '#includeFunc' first searches the '<case>/system' directory in case there is a local configuration. Description of #includeFunc --------------------------- Specify a functionObject dictionary file to include, expects the functionObject name to follow (without quotes). Search for functionObject dictionary file in user/group/shipped directories. The search scheme allows for version-specific and version-independent files using the following hierarchy: - \b user settings: - ~/.OpenFOAM/\<VERSION\>/caseDicts/postProcessing - ~/.OpenFOAM/caseDicts/postProcessing - \b group (site) settings (when $WM_PROJECT_SITE is set): - $WM_PROJECT_SITE/\<VERSION\>/caseDicts/postProcessing - $WM_PROJECT_SITE/caseDicts/postProcessing - \b group (site) settings (when $WM_PROJECT_SITE is not set): - $WM_PROJECT_INST_DIR/site/\<VERSION\>/caseDicts/postProcessing - $WM_PROJECT_INST_DIR/site/caseDicts/postProcessing - \b other (shipped) settings: - $WM_PROJECT_DIR/etc/caseDicts/postProcessing An example of the \c \#includeFunc directive: \verbatim #includeFunc <funcName> \endverbatim postProcess ----------- The 'postProcess' utility and '-postProcess' solver option provide the same set of controls to execute functionObjects after the run either by reading a specified set of fields to process in the case of 'postProcess' or by reading all fields and models required to start the run in the case of '-postProcess' for each selected time: postProcess -help Usage: postProcess [OPTIONS] options: -case <dir> specify alternate case directory, default is the cwd -constant include the 'constant/' dir in the times list -dict <file> read control dictionary from specified location -field <name> specify the name of the field to be processed, e.g. U -fields <list> specify a list of fields to be processed, e.g. '(U T p)' - regular expressions not currently supported -func <name> specify the name of the functionObject to execute, e.g. Q -funcs <list> specify the names of the functionObjects to execute, e.g. '(Q div(U))' -latestTime select the latest time -newTimes select the new times -noFunctionObjects do not execute functionObjects -noZero exclude the '0/' dir from the times list, has precedence over the -withZero option -parallel run in parallel -region <name> specify alternative mesh region -roots <(dir1 .. dirN)> slave root directories for distributed running -time <ranges> comma-separated time ranges - eg, ':10,20,40:70,1000:' -srcDoc display source code in browser -doc display application documentation in browser -help print the usage pimpleFoam -postProcess -help Usage: pimpleFoam [OPTIONS] options: -case <dir> specify alternate case directory, default is the cwd -constant include the 'constant/' dir in the times list -dict <file> read control dictionary from specified location -field <name> specify the name of the field to be processed, e.g. U -fields <list> specify a list of fields to be processed, e.g. '(U T p)' - regular expressions not currently supported -func <name> specify the name of the functionObject to execute, e.g. Q -funcs <list> specify the names of the functionObjects to execute, e.g. '(Q div(U))' -latestTime select the latest time -newTimes select the new times -noFunctionObjects do not execute functionObjects -noZero exclude the '0/' dir from the times list, has precedence over the -withZero option -parallel run in parallel -postProcess Execute functionObjects only -region <name> specify alternative mesh region -roots <(dir1 .. dirN)> slave root directories for distributed running -time <ranges> comma-separated time ranges - eg, ':10,20,40:70,1000:' -srcDoc display source code in browser -doc display application documentation in browser -help print the usage The functionObjects to execute may be specified on the command-line using the '-func' option for a single functionObject or '-funcs' for a list, e.g. postProcess -func Q postProcess -funcs '(div(U) div(phi))' In the case of 'Q' the default field to process is 'U' which is specified in and read from the configuration file but this may be overridden thus: postProcess -func 'Q(Ua)' as is done in the example above to calculate the two forms of the divergence of the velocity field. Additional fields which the functionObjects may depend on can be specified using the '-field' or '-fields' options. The 'postProcess' utility can only be used to execute functionObjects which process fields present in the time directories. However, functionObjects which depend on fields obtained from models, e.g. properties derived from turbulence models can be executed using the '-postProcess' of the appropriate solver, e.g. pisoFoam -postProcess -func PecletNo or sonicFoam -postProcess -func MachNo In this case all required fields will have already been read so the '-field' or '-fields' options are not be needed. Henry G. Weller CFD Direct Ltd.
-
- May 15, 2016
-
-
Henry Weller authored
splitMeshRegions: handle flipping of faces for surface fields subsetMesh: subset dimensionedFields decomposePar: use run-time selection of decomposition constraints. Used to keep cells on particular processors. See the decomposeParDict in $FOAM_UTILITIES/parallel/decomposePar: - preserveBaffles: keep baffle faces on same processor - preserveFaceZones: keep faceZones owner and neighbour on same processor - preservePatches: keep owner and neighbour on same processor. Note: not suitable for cyclicAMI since these are not coupled on the patch level - singleProcessorFaceSets: keep complete faceSet on a single processor - refinementHistory: keep cells originating from a single cell on the same processor. decomposePar: clean up decomposition of refinement data from snappyHexMesh reconstructPar: reconstruct refinement data (refineHexMesh, snappyHexMesh) reconstructParMesh: reconstruct refinement data (refineHexMesh, snappyHexMesh) redistributePa...
-
- Apr 19, 2016
-
-
Henry Weller authored
-
- Apr 03, 2016
-
-
Henry Weller authored
-
- Feb 15, 2016
-
-
Henry Weller authored
-
- Dec 01, 2015
-
-
Henry Weller authored
Do not link the fvOptions library into the TurbulenceModels libraries due to cyclic dependency
-
- Nov 19, 2015
-
-
Andrew Heather authored
-
mattijs authored
- shm: have displacementMotionSolver as alternative mesh shrinker (instead of medialAxis). - updated iglooWithFridges tutorial to use displacementLaplacian - selectable interpolation from cells to points in the motion solvers using the 'interpolation' keyword: interpolation volPointInterpolation; // default or interpolation patchCorrected (lowerWall upperWall); - wrapped up mesh shrinkers (see above) for use as a displacementMotionSolver (i.e. the opposite of the displacementMotionSolver mesh shrinker)
-
mattijs authored
- shm: have displacementMotionSolver as alternative mesh shrinker (instead of medialAxis). - updated iglooWithFridges tutorial to use displacementLaplacian - selectable interpolation from cells to points in the motion solvers using the 'interpolation' keyword: interpolation volPointInterpolation; // default or interpolation patchCorrected (lowerWall upperWall); - wrapped up mesh shrinkers (see above) for use as a displacementMotionSolver (i.e. the opposite of the displacementMotionSolver mesh shrinker)
-
- Nov 10, 2015
-
-
mattijs authored
-
- Nov 02, 2015
-
-
mattijs authored
-
- Jan 21, 2015
-
-
Henry authored
The old separate incompressible and compressible libraries have been removed. Most of the commonly used RANS and LES models have been upgraded to the new framework but there are a few missing which will be added over the next few days, in particular the realizable k-epsilon model. Some of the less common incompressible RANS models have been introduced into the new library instantiated for incompressible flow only. If they prove to be generally useful they can be templated for compressible and multiphase application. The Spalart-Allmaras DDES and IDDES models have been thoroughly debugged, removing serious errors concerning the use of S rather than Omega. The compressible instances of the models have been augmented by a simple backward-compatible eddyDiffusivity model for thermal transport based on alphat and alphaEff. This will be replaced with a separate run-time selectable thermal transport model framework in a few wee...
-
- Dec 14, 2014
-
-
Henry authored
-
- Dec 08, 2013
-
-
Henry authored
-