From 0c646223410989f74e2c73dc9b27a4a642745a96 Mon Sep 17 00:00:00 2001 From: Hrvoje Jasak Date: Fri, 15 Sep 2017 12:02:25 +0100 Subject: [PATCH 01/65] Finite area port, Hrvoje Jasak - with sphereSurfactantFoam and sphereTransport test case --- .../finiteArea/liquidFilmFoam/Make/files | 3 + .../finiteArea/liquidFilmFoam/Make/options | 10 + .../liquidFilmFoam/calcFrictionFactor.H | 7 + .../liquidFilmFoam/capillaryCourantNo.H | 13 + .../liquidFilmFoam/createFaFields.H | 158 + .../liquidFilmFoam/createFvFields.H | 31 + .../liquidFilmFoam/liquidFilmFoam.C | 155 + .../liquidFilmFoam/readSolutionControls.H | 13 + .../liquidFilmFoam/readTransportProperties.H | 41 + .../liquidFilmFoam/surfaceCourantNo.H | 60 + .../sphereSurfactantFoam/Make/files | 3 + .../sphereSurfactantFoam/Make/options | 10 + .../sphereSurfactantFoam/createFaFields.H | 78 + .../sphereSurfactantFoam/createFaMesh.H | 2 + .../sphereSurfactantFoam/createVolFields.H | 36 + .../sphereSurfactantFoam/surfactantFoam.C | 86 + .../finiteArea/surfactantFoam/Make/files | 3 + .../finiteArea/surfactantFoam/Make/options | 10 + .../surfactantFoam/createFaFields.H | 63 + .../finiteArea/surfactantFoam/createFaMesh.H | 2 + .../surfactantFoam/createVolFields.H | 36 + .../surfactantFoam/surfactantFoam.C | 112 + .../finiteArea/checkFaMesh/Make/files | 3 + .../finiteArea/checkFaMesh/Make/options | 9 + .../finiteArea/checkFaMesh/checkFaMesh.C | 83 + .../finiteArea/makeFaMesh/Make/files | 3 + .../finiteArea/makeFaMesh/Make/options | 8 + .../finiteArea/makeFaMesh/makeFaMesh.C | 356 ++ .../decomposePar/Make/files | 2 + .../decomposePar/Make/options | 2 + .../decomposePar/decomposePar.C | 177 + .../decomposePar/faFieldDecomposer.C | 238 + .../decomposePar/faFieldDecomposer.H | 319 + .../faFieldDecomposerDecomposeFields.C | 237 + .../decomposePar/faMeshDecomposition.C | 1414 +++++ .../decomposePar/faMeshDecomposition.H | 178 + .../reconstructPar/Make/files | 2 + .../reconstructPar/Make/options | 2 + .../reconstructPar/faFieldReconstructor.C | 49 + .../reconstructPar/faFieldReconstructor.H | 205 + .../faFieldReconstructorReconstructFields.C | 642 +++ .../reconstructPar/processorFaMeshes.C | 260 + .../reconstructPar/processorFaMeshes.H | 142 + .../reconstructPar/reconstructPar.C | 46 + bin/tools/CleanFunctions | 6 + src/Allwmake | 2 + src/finiteArea/Make/files | 125 + src/finiteArea/Make/options | 5 + src/finiteArea/areaMesh/areaFaMesh.H | 90 + src/finiteArea/edgeMesh/edgeFaMesh.H | 90 + src/finiteArea/faMatrices/faMatrices.C | 48 + src/finiteArea/faMatrices/faMatrices.H | 65 + src/finiteArea/faMatrices/faMatrix/faMatrix.C | 1816 ++++++ src/finiteArea/faMatrices/faMatrix/faMatrix.H | 756 +++ .../faMatrices/faMatrix/faMatrixSolve.C | 233 + .../faScalarMatrix/faScalarMatrix.C | 167 + .../faScalarMatrix/faScalarMatrix.H | 84 + .../faMesh/faBoundaryMesh/faBoundaryMesh.C | 400 ++ .../faMesh/faBoundaryMesh/faBoundaryMesh.H | 171 + .../faGlobalMeshData/faGlobalMeshData.C | 140 + .../faGlobalMeshData/faGlobalMeshData.H | 143 + .../faGlobalMeshData/faProcessorTopology.H | 61 + src/finiteArea/faMesh/faMesh.C | 1387 +++++ src/finiteArea/faMesh/faMesh.H | 552 ++ .../faMesh/faMeshDemandDrivenData.C | 2028 +++++++ src/finiteArea/faMesh/faMeshLduAddressing.H | 158 + .../faMesh/faMeshMapper/faAreaMapper.C | 434 ++ .../faMesh/faMeshMapper/faAreaMapper.H | 200 + .../faMeshMapper/faBoundaryMeshMapper.H | 101 + .../faMesh/faMeshMapper/faEdgeMapper.C | 121 + .../faMesh/faMeshMapper/faEdgeMapper.H | 173 + .../faMesh/faMeshMapper/faMeshMapper.C | 66 + .../faMesh/faMeshMapper/faMeshMapper.H | 221 + .../faMesh/faMeshMapper/faPatchMapper.C | 162 + .../faMesh/faMeshMapper/faPatchMapper.H | 166 + src/finiteArea/faMesh/faMeshUpdate.C | 246 + .../faPatches/basic/coupled/coupledFaPatch.C | 132 + .../faPatches/basic/coupled/coupledFaPatch.H | 279 + .../constraint/cyclic/cyclicFaPatch.C | 356 ++ .../constraint/cyclic/cyclicFaPatch.H | 201 + .../faPatches/constraint/empty/emptyFaPatch.C | 63 + .../faPatches/constraint/empty/emptyFaPatch.H | 139 + .../constraint/processor/processorFaPatch.C | 534 ++ .../constraint/processor/processorFaPatch.H | 315 + .../constraint/symmetry/symmetryFaPatch.C | 92 + .../constraint/symmetry/symmetryFaPatch.H | 130 + .../faPatches/constraint/wedge/wedgeFaPatch.C | 134 + .../faPatches/constraint/wedge/wedgeFaPatch.H | 146 + .../faMesh/faPatches/faPatch/faPatch.C | 504 ++ .../faMesh/faPatches/faPatch/faPatch.H | 380 ++ .../faMesh/faPatches/faPatch/faPatchData.H | 79 + .../faPatch/faPatchFaMeshTemplates.C | 50 + .../faMesh/faPatches/faPatch/faPatchList.H | 57 + .../faPatches/faPatch/faPatchTemplates.C | 62 + .../faMesh/faPatches/faPatch/newFaPatch.C | 81 + src/finiteArea/faSolution/faSolution.H | 85 + src/finiteArea/fields/areaFields/areaFields.C | 77 + src/finiteArea/fields/areaFields/areaFields.H | 82 + .../fields/areaFields/areaFieldsFwd.H | 72 + src/finiteArea/fields/edgeFields/edgeFields.C | 58 + src/finiteArea/fields/edgeFields/edgeFields.H | 57 + .../fields/edgeFields/edgeFieldsFwd.H | 72 + .../basicSymmetry/basicSymmetryFaPatchField.C | 153 + .../basicSymmetry/basicSymmetryFaPatchField.H | 175 + .../basicSymmetryFaPatchFields.C | 46 + .../basicSymmetryFaPatchFields.H | 51 + .../basicSymmetryFaPatchScalarField.C | 61 + .../basic/calculated/calculatedFaPatchField.C | 236 + .../basic/calculated/calculatedFaPatchField.H | 184 + .../calculated/calculatedFaPatchFields.C | 48 + .../calculated/calculatedFaPatchFields.H | 60 + .../calculated/calculatedFaPatchFieldsFwd.H | 57 + .../basic/coupled/coupledFaPatchField.C | 190 + .../basic/coupled/coupledFaPatchField.H | 230 + .../basic/coupled/coupledFaPatchFields.C | 45 + .../basic/coupled/coupledFaPatchFields.H | 51 + .../basic/coupled/coupledFaPatchFieldsFwd.H | 52 + .../fixedGradient/fixedGradientFaPatchField.C | 199 + .../fixedGradient/fixedGradientFaPatchField.H | 221 + .../fixedGradientFaPatchFields.C | 48 + .../fixedGradientFaPatchFields.H | 60 + .../fixedGradientFaPatchFieldsFwd.H | 57 + .../basic/fixedValue/fixedValueFaPatchField.C | 146 + .../basic/fixedValue/fixedValueFaPatchField.H | 208 + .../fixedValue/fixedValueFaPatchFields.C | 46 + .../fixedValue/fixedValueFaPatchFields.H | 51 + .../fixedValue/fixedValueFaPatchFieldsFwd.H | 52 + .../basic/mixed/mixedFaPatchField.C | 232 + .../basic/mixed/mixedFaPatchField.H | 276 + .../basic/mixed/mixedFaPatchFields.C | 45 + .../basic/mixed/mixedFaPatchFields.H | 51 + .../basic/mixed/mixedFaPatchFieldsFwd.H | 52 + .../basic/transform/transformFaPatchField.C | 154 + .../basic/transform/transformFaPatchField.H | 170 + .../basic/transform/transformFaPatchFields.C | 47 + .../basic/transform/transformFaPatchFields.H | 59 + .../transform/transformFaPatchFieldsFwd.H | 61 + .../transform/transformFaPatchScalarField.C | 51 + .../zeroGradient/zeroGradientFaPatchField.C | 162 + .../zeroGradient/zeroGradientFaPatchField.H | 190 + .../zeroGradient/zeroGradientFaPatchFields.C | 48 + .../zeroGradient/zeroGradientFaPatchFields.H | 60 + .../zeroGradientFaPatchFieldsFwd.H | 57 + .../constraint/cyclic/cyclicFaPatchField.C | 267 + .../constraint/cyclic/cyclicFaPatchField.H | 240 + .../constraint/cyclic/cyclicFaPatchFields.C | 46 + .../constraint/cyclic/cyclicFaPatchFields.H | 51 + .../cyclic/cyclicFaPatchFieldsFwd.H | 53 + .../constraint/empty/emptyFaPatchField.C | 167 + .../constraint/empty/emptyFaPatchField.H | 206 + .../constraint/empty/emptyFaPatchFields.C | 47 + .../constraint/empty/emptyFaPatchFields.H | 60 + .../constraint/empty/emptyFaPatchFieldsFwd.H | 57 + .../processor/processorFaPatchField.C | 328 ++ .../processor/processorFaPatchField.H | 286 + .../processor/processorFaPatchFields.C | 46 + .../processor/processorFaPatchFields.H | 51 + .../processor/processorFaPatchFieldsFwd.H | 52 + .../processor/processorFaPatchScalarField.C | 103 + .../processor/processorFaPatchScalarField.H | 81 + .../symmetry/symmetryFaPatchField.C | 136 + .../symmetry/symmetryFaPatchField.H | 144 + .../symmetry/symmetryFaPatchFields.C | 45 + .../symmetry/symmetryFaPatchFields.H | 51 + .../symmetry/symmetryFaPatchFieldsFwd.H | 53 + .../constraint/wedge/wedgeFaPatchField.C | 192 + .../constraint/wedge/wedgeFaPatchField.H | 168 + .../constraint/wedge/wedgeFaPatchFields.C | 47 + .../constraint/wedge/wedgeFaPatchFields.H | 59 + .../constraint/wedge/wedgeFaPatchFieldsFwd.H | 61 + .../wedge/wedgeFaPatchScalarField.C | 65 + .../edgeNormalFixedValueFaPatchVectorField.C | 157 + .../edgeNormalFixedValueFaPatchVectorField.H | 179 + .../fixedValueOutflowFaPatchField.C | 148 + .../fixedValueOutflowFaPatchField.H | 208 + .../fixedValueOutflowFaPatchFields.C | 48 + .../fixedValueOutflowFaPatchFields.H | 60 + .../fixedValueOutflowFaPatchFieldsFwd.H | 57 + .../inletOutlet/inletOutletFaPatchField.C | 165 + .../inletOutlet/inletOutletFaPatchField.H | 173 + .../inletOutlet/inletOutletFaPatchFields.C | 46 + .../inletOutlet/inletOutletFaPatchFields.H | 51 + .../inletOutlet/inletOutletFaPatchFieldsFwd.H | 52 + .../derived/slip/slipFaPatchField.C | 98 + .../derived/slip/slipFaPatchField.H | 143 + .../derived/slip/slipFaPatchFields.C | 45 + .../derived/slip/slipFaPatchFields.H | 51 + .../derived/slip/slipFaPatchFieldsFwd.H | 53 + ...timeVaryingUniformFixedValueFaPatchField.C | 139 + ...timeVaryingUniformFixedValueFaPatchField.H | 188 + ...imeVaryingUniformFixedValueFaPatchFields.C | 45 + ...imeVaryingUniformFixedValueFaPatchFields.H | 51 + ...VaryingUniformFixedValueFaPatchFieldsFwd.H | 53 + .../faPatchFields/faPatchField/faPatchField.C | 442 ++ .../faPatchFields/faPatchField/faPatchField.H | 557 ++ .../faPatchField/faPatchFieldMapper.H | 68 + .../faPatchField/faPatchFieldMapperPatchRef.H | 100 + .../faPatchField/faPatchFields.C | 60 + .../faPatchField/faPatchFields.H | 38 + .../faPatchField/faPatchFieldsFwd.H | 56 + .../faPatchField/newFaPatchField.C | 198 + .../calculated/calculatedFaePatchField.C | 148 + .../calculated/calculatedFaePatchField.H | 159 + .../calculated/calculatedFaePatchFields.C | 45 + .../calculated/calculatedFaePatchFields.H | 51 + .../calculated/calculatedFaePatchFieldsFwd.H | 57 + .../basic/coupled/coupledFaePatchField.C | 120 + .../basic/coupled/coupledFaePatchField.H | 155 + .../basic/coupled/coupledFaePatchFields.C | 45 + .../basic/coupled/coupledFaePatchFields.H | 51 + .../basic/coupled/coupledFaePatchFieldsFwd.H | 55 + .../fixedValue/fixedValueFaePatchField.C | 110 + .../fixedValue/fixedValueFaePatchField.H | 183 + .../fixedValue/fixedValueFaePatchFields.C | 45 + .../fixedValue/fixedValueFaePatchFields.H | 51 + .../fixedValue/fixedValueFaePatchFieldsFwd.H | 52 + .../constraint/cyclic/cyclicFaePatchField.C | 137 + .../constraint/cyclic/cyclicFaePatchField.H | 149 + .../constraint/cyclic/cyclicFaePatchFields.C | 45 + .../constraint/cyclic/cyclicFaePatchFields.H | 51 + .../cyclic/cyclicFaePatchFieldsFwd.H | 53 + .../constraint/empty/emptyFaePatchField.C | 138 + .../constraint/empty/emptyFaePatchField.H | 163 + .../constraint/empty/emptyFaePatchFields.C | 47 + .../constraint/empty/emptyFaePatchFields.H | 51 + .../constraint/empty/emptyFaePatchFieldsFwd.H | 52 + .../processor/processorFaePatchField.C | 158 + .../processor/processorFaePatchField.H | 176 + .../processor/processorFaePatchFields.C | 45 + .../processor/processorFaePatchFields.H | 51 + .../processor/processorFaePatchFieldsFwd.H | 52 + .../symmetry/symmetryFaePatchField.C | 132 + .../symmetry/symmetryFaePatchField.H | 144 + .../symmetry/symmetryFaePatchFields.C | 45 + .../symmetry/symmetryFaePatchFields.H | 51 + .../symmetry/symmetryFaePatchFieldsFwd.H | 53 + .../constraint/wedge/wedgeFaePatchField.C | 132 + .../constraint/wedge/wedgeFaePatchField.H | 143 + .../constraint/wedge/wedgeFaePatchFields.C | 45 + .../constraint/wedge/wedgeFaePatchFields.H | 51 + .../constraint/wedge/wedgeFaePatchFieldsFwd.H | 52 + .../faePatchField/faePatchField.C | 411 ++ .../faePatchField/faePatchField.H | 439 ++ .../faePatchField/faePatchFields.C | 64 + .../faePatchField/faePatchFields.H | 44 + .../faePatchField/faePatchFieldsFwd.H | 62 + .../faePatchField/newFaePatchField.C | 205 + .../faConvectionScheme/faConvectionScheme.C | 117 + .../faConvectionScheme/faConvectionScheme.H | 201 + .../faConvectionScheme/faConvectionSchemes.C | 73 + .../gaussFaConvectionScheme.C | 139 + .../gaussFaConvectionScheme.H | 151 + .../gaussFaConvectionSchemes.C | 37 + .../EulerFaDdtScheme/EulerFaDdtScheme.C | 573 ++ .../EulerFaDdtScheme/EulerFaDdtScheme.H | 181 + .../EulerFaDdtScheme/EulerFaDdtSchemes.C | 37 + .../backwardFaDdtScheme/backwardFaDdtScheme.C | 796 +++ .../backwardFaDdtScheme/backwardFaDdtScheme.H | 192 + .../backwardFaDdtSchemes.C | 37 + .../boundedBackwardFaDdtScheme.C | 986 ++++ .../boundedBackwardFaDdtScheme.H | 197 + .../ddtSchemes/faDdtScheme/faDdtScheme.C | 108 + .../ddtSchemes/faDdtScheme/faDdtScheme.H | 250 + .../ddtSchemes/faDdtScheme/faDdtSchemes.C | 73 + .../steadyStateFaDdtScheme.C | 350 ++ .../steadyStateFaDdtScheme.H | 180 + .../steadyStateFaDdtSchemes.C | 37 + .../divSchemes/faDivScheme/faDivScheme.C | 113 + .../divSchemes/faDivScheme/faDivScheme.H | 196 + .../divSchemes/faDivScheme/faDivSchemes.C | 67 + .../gaussFaDivScheme/gaussFaDivScheme.C | 84 + .../gaussFaDivScheme/gaussFaDivScheme.H | 123 + .../gaussFaDivScheme/gaussFaDivSchemes.C | 37 + src/finiteArea/finiteArea/fa/fa.C | 40 + src/finiteArea/finiteArea/fa/fa.H | 53 + .../finiteArea/faSchemes/faSchemes.C | 554 ++ .../finiteArea/faSchemes/faSchemes.H | 208 + src/finiteArea/finiteArea/fac/fac.H | 55 + src/finiteArea/finiteArea/fac/facAverage.C | 139 + src/finiteArea/finiteArea/fac/facAverage.H | 100 + src/finiteArea/finiteArea/fac/facDdt.C | 121 + src/finiteArea/finiteArea/fac/facDdt.H | 102 + src/finiteArea/finiteArea/fac/facDiv.C | 353 ++ src/finiteArea/finiteArea/fac/facDiv.H | 189 + .../finiteArea/fac/facEdgeIntegrate.C | 196 + .../finiteArea/fac/facEdgeIntegrate.H | 98 + src/finiteArea/finiteArea/fac/facGrad.C | 207 + src/finiteArea/finiteArea/fac/facGrad.H | 133 + src/finiteArea/finiteArea/fac/facLaplacian.C | 583 ++ src/finiteArea/finiteArea/fac/facLaplacian.H | 318 + src/finiteArea/finiteArea/fac/facLnGrad.C | 112 + src/finiteArea/finiteArea/fac/facLnGrad.H | 97 + src/finiteArea/finiteArea/fac/facNDiv.C | 341 ++ src/finiteArea/finiteArea/fac/facNDiv.H | 189 + src/finiteArea/finiteArea/fac/facNGrad.C | 212 + src/finiteArea/finiteArea/fac/facNGrad.H | 133 + src/finiteArea/finiteArea/fam/fam.H | 54 + src/finiteArea/finiteArea/fam/famDdt.C | 106 + src/finiteArea/finiteArea/fam/famDdt.H | 90 + src/finiteArea/finiteArea/fam/famDiv.C | 134 + src/finiteArea/finiteArea/fam/famDiv.H | 106 + src/finiteArea/finiteArea/fam/famLaplacian.C | 376 ++ src/finiteArea/finiteArea/fam/famLaplacian.H | 219 + src/finiteArea/finiteArea/fam/famNDiv.C | 112 + src/finiteArea/finiteArea/fam/famNDiv.H | 102 + src/finiteArea/finiteArea/fam/famSup.C | 201 + src/finiteArea/finiteArea/fam/famSup.H | 128 + src/finiteArea/finiteArea/fam/vectorFamDiv.C | 71 + src/finiteArea/finiteArea/fam/vectorFamDiv.H | 76 + .../gradSchemes/faGradScheme/faGradScheme.C | 110 + .../gradSchemes/faGradScheme/faGradScheme.H | 182 + .../gradSchemes/faGradScheme/faGradSchemes.C | 73 + .../gradSchemes/gaussFaGrad/gaussFaGrad.C | 117 + .../gradSchemes/gaussFaGrad/gaussFaGrad.H | 161 + .../gradSchemes/gaussFaGrad/gaussFaGrads.C | 35 + .../leastSquaresFaGrad/leastSquaresFaGrad.C | 161 + .../leastSquaresFaGrad/leastSquaresFaGrad.H | 125 + .../leastSquaresFaGrad/leastSquaresFaGrads.C | 35 + .../leastSquaresFaVectors.C | 262 + .../leastSquaresFaVectors.H | 114 + .../edgeLimitedFaGrad/edgeLimitedFaGrad.H | 145 + .../edgeLimitedFaGrad/edgeLimitedFaGrads.C | 375 ++ .../faceLimitedFaGrad/faceLimitedFaGrad.H | 148 + .../faceLimitedFaGrad/faceLimitedFaGrads.C | 415 ++ .../faLaplacianScheme/faLaplacianScheme.C | 135 + .../faLaplacianScheme/faLaplacianScheme.H | 247 + .../faLaplacianScheme/faLaplacianSchemes.C | 73 + .../gaussFaLaplacianScheme.C | 161 + .../gaussFaLaplacianScheme.H | 131 + .../gaussFaLaplacianSchemes.C | 37 + .../correctedLnGrad/correctedLnGrad.C | 116 + .../correctedLnGrad/correctedLnGrad.H | 136 + .../correctedLnGrad/correctedLnGrads.C | 38 + .../lnGradSchemes/fourthLnGrad/fourthLnGrad.C | 133 + .../lnGradSchemes/fourthLnGrad/fourthLnGrad.H | 140 + .../fourthLnGrad/fourthLnGrads.C | 38 + .../limitedLnGrad/limitedLnGrad.C | 106 + .../limitedLnGrad/limitedLnGrad.H | 164 + .../limitedLnGrad/limitedLnGrads.C | 42 + .../lnGradSchemes/lnGradScheme/lnGradScheme.C | 206 + .../lnGradSchemes/lnGradScheme/lnGradScheme.H | 212 + .../lnGradScheme/lnGradSchemes.C | 59 + src/finiteArea/include/createFaMesh.H | 2 + src/finiteArea/include/faCFD.H | 24 + .../edgeInterpolation/edgeInterpolate.C | 328 ++ .../edgeInterpolation/edgeInterpolate.H | 190 + .../edgeInterpolation/edgeInterpolation.C | 758 +++ .../edgeInterpolation/edgeInterpolation.H | 215 + .../edgeInterpolationScheme.C | 559 ++ .../edgeInterpolationScheme.H | 253 + .../edgeInterpolationSchemes.C | 51 + .../edgeInterpolation/schemes/Gamma/Gamma.H | 128 + .../Gamma/GammaEdgeInterpolationMake.C | 42 + .../schemes/NVDscheme/faNVDscheme.C | 221 + .../schemes/NVDscheme/faNVDscheme.H | 196 + .../blended/blendedEdgeInterpolation.H | 157 + .../blended/blendedEdgeInterpolationMake.C | 41 + .../schemes/linear/linearEdgeInterpolation.H | 141 + .../linear/linearEdgeInterpolationMake.C | 41 + .../schemes/linearUpwind/linearUpwind.H | 106 + .../linearUpwindEdgeInterpolationMake.C | 42 + .../schemes/upwind/upwindEdgeInterpolation.H | 141 + .../upwind/upwindEdgeInterpolationMake.C | 41 + .../mapping/faFieldMappers/MapFaAreaField.H | 99 + .../mapping/faFieldMappers/MapFaEdgeField.H | 113 + .../mapping/faFieldMappers/MapFaFields.H | 42 + .../volSurfaceMapping/volSurfaceMapping.C | 119 + .../volSurfaceMapping/volSurfaceMapping.H | 131 + .../liquidFilmFoam/cylinder/.gitignore | 52 + .../finiteArea/liquidFilmFoam/cylinder/0/Us | 50 + .../finiteArea/liquidFilmFoam/cylinder/0/h | 51 + .../liquidFilmFoam/cylinder/0/manningField | 50 + .../liquidFilmFoam/cylinder/Allclean | 7 + .../finiteArea/liquidFilmFoam/cylinder/Allrun | 10 + .../cylinder/constant/faMesh/faBoundary | 292 + .../cylinder/constant/faMesh/faMeshDefinition | 59 + .../cylinder/constant/faMesh/faceLabels | 2024 +++++++ .../liquidFilmFoam/cylinder/constant/g | 22 + .../cylinder/constant/transportProperties | 29 + .../cylinder/system/blockMeshDict | 162 + .../cylinder/system/controlDict | 60 + .../liquidFilmFoam/cylinder/system/faSchemes | 53 + .../liquidFilmFoam/cylinder/system/faSolution | 45 + .../liquidFilmFoam/cylinder/system/fvSchemes | 49 + .../liquidFilmFoam/cylinder/system/fvSolution | 19 + tutorials/finiteArea/sphereTransport/0/Cs | 28 + tutorials/finiteArea/sphereTransport/0/Cvf | 637 ++ tutorials/finiteArea/sphereTransport/0/U | 637 ++ tutorials/finiteArea/sphereTransport/Allclean | 7 + tutorials/finiteArea/sphereTransport/Allrun | 8 + .../constant/faMesh/faMeshDefinition | 24 + .../constant/polyMesh/boundary | 29 + .../sphereTransport/constant/polyMesh/cells | 1623 ++++++ .../sphereTransport/constant/polyMesh/faces | 5123 +++++++++++++++++ .../constant/polyMesh/neighbour | 5123 +++++++++++++++++ .../sphereTransport/constant/polyMesh/owner | 5123 +++++++++++++++++ .../sphereTransport/constant/polyMesh/points | 1956 +++++++ .../sphereTransport/system/controlDict | 47 + .../sphereTransport/system/faSchemes | 52 + .../sphereTransport/system/faSolution | 53 + .../sphereTransport/system/fvSchemes | 43 + .../sphereTransport/system/fvSolution | 23 + .../surfactantFoam/planeTransport/0/Cs | 44 + .../surfactantFoam/planeTransport/0/Cvf | 53 + .../surfactantFoam/planeTransport/0/U | 53 + .../surfactantFoam/planeTransport/0/Us | 39 + .../surfactantFoam/planeTransport/Allclean | 7 + .../surfactantFoam/planeTransport/Allrun | 9 + .../planeTransport/constant/faMesh/faBoundary | 212 + .../constant/faMesh/faMeshDefinition | 42 + .../planeTransport/constant/faMesh/faceLabels | 1224 ++++ .../constant/polyMesh/blockMeshDict | 94 + .../planeTransport/constant/polyMesh/boundary | 53 + .../planeTransport/constant/polyMesh/faces | 4904 ++++++++++++++++ .../constant/polyMesh/neighbour | 2345 ++++++++ .../planeTransport/constant/polyMesh/owner | 4905 ++++++++++++++++ .../planeTransport/constant/polyMesh/points | 2586 +++++++++ .../constant/transportProperties | 21 + .../planeTransport/system/controlDict | 48 + .../planeTransport/system/decomposeParDict | 50 + .../planeTransport/system/faSchemes | 52 + .../planeTransport/system/faSolution | 53 + .../planeTransport/system/fvSchemes | 43 + .../planeTransport/system/fvSolution | 23 + 424 files changed, 96950 insertions(+) create mode 100755 applications/solvers/finiteArea/liquidFilmFoam/Make/files create mode 100755 applications/solvers/finiteArea/liquidFilmFoam/Make/options create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/calcFrictionFactor.H create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/capillaryCourantNo.H create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/createFvFields.H create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/readSolutionControls.H create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H create mode 100644 applications/solvers/finiteArea/liquidFilmFoam/surfaceCourantNo.H create mode 100644 applications/solvers/finiteArea/sphereSurfactantFoam/Make/files create mode 100644 applications/solvers/finiteArea/sphereSurfactantFoam/Make/options create mode 100644 applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H create mode 100644 applications/solvers/finiteArea/sphereSurfactantFoam/createFaMesh.H create mode 100644 applications/solvers/finiteArea/sphereSurfactantFoam/createVolFields.H create mode 100644 applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C create mode 100644 applications/solvers/finiteArea/surfactantFoam/Make/files create mode 100644 applications/solvers/finiteArea/surfactantFoam/Make/options create mode 100644 applications/solvers/finiteArea/surfactantFoam/createFaFields.H create mode 100644 applications/solvers/finiteArea/surfactantFoam/createFaMesh.H create mode 100644 applications/solvers/finiteArea/surfactantFoam/createVolFields.H create mode 100644 applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C create mode 100644 applications/utilities/finiteArea/checkFaMesh/Make/files create mode 100644 applications/utilities/finiteArea/checkFaMesh/Make/options create mode 100644 applications/utilities/finiteArea/checkFaMesh/checkFaMesh.C create mode 100644 applications/utilities/finiteArea/makeFaMesh/Make/files create mode 100644 applications/utilities/finiteArea/makeFaMesh/Make/options create mode 100644 applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C create mode 100644 applications/utilities/parallelProcessing/decomposePar/faFieldDecomposer.C create mode 100644 applications/utilities/parallelProcessing/decomposePar/faFieldDecomposer.H create mode 100644 applications/utilities/parallelProcessing/decomposePar/faFieldDecomposerDecomposeFields.C create mode 100644 applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C create mode 100644 applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.H create mode 100644 applications/utilities/parallelProcessing/reconstructPar/faFieldReconstructor.C create mode 100644 applications/utilities/parallelProcessing/reconstructPar/faFieldReconstructor.H create mode 100644 applications/utilities/parallelProcessing/reconstructPar/faFieldReconstructorReconstructFields.C create mode 100644 applications/utilities/parallelProcessing/reconstructPar/processorFaMeshes.C create mode 100644 applications/utilities/parallelProcessing/reconstructPar/processorFaMeshes.H create mode 100644 src/finiteArea/Make/files create mode 100644 src/finiteArea/Make/options create mode 100644 src/finiteArea/areaMesh/areaFaMesh.H create mode 100644 src/finiteArea/edgeMesh/edgeFaMesh.H create mode 100644 src/finiteArea/faMatrices/faMatrices.C create mode 100644 src/finiteArea/faMatrices/faMatrices.H create mode 100644 src/finiteArea/faMatrices/faMatrix/faMatrix.C create mode 100644 src/finiteArea/faMatrices/faMatrix/faMatrix.H create mode 100644 src/finiteArea/faMatrices/faMatrix/faMatrixSolve.C create mode 100644 src/finiteArea/faMatrices/faScalarMatrix/faScalarMatrix.C create mode 100644 src/finiteArea/faMatrices/faScalarMatrix/faScalarMatrix.H create mode 100644 src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C create mode 100644 src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H create mode 100644 src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.C create mode 100644 src/finiteArea/faMesh/faGlobalMeshData/faGlobalMeshData.H create mode 100644 src/finiteArea/faMesh/faGlobalMeshData/faProcessorTopology.H create mode 100644 src/finiteArea/faMesh/faMesh.C create mode 100644 src/finiteArea/faMesh/faMesh.H create mode 100644 src/finiteArea/faMesh/faMeshDemandDrivenData.C create mode 100644 src/finiteArea/faMesh/faMeshLduAddressing.H create mode 100644 src/finiteArea/faMesh/faMeshMapper/faAreaMapper.C create mode 100644 src/finiteArea/faMesh/faMeshMapper/faAreaMapper.H create mode 100644 src/finiteArea/faMesh/faMeshMapper/faBoundaryMeshMapper.H create mode 100644 src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.C create mode 100644 src/finiteArea/faMesh/faMeshMapper/faEdgeMapper.H create mode 100644 src/finiteArea/faMesh/faMeshMapper/faMeshMapper.C create mode 100644 src/finiteArea/faMesh/faMeshMapper/faMeshMapper.H create mode 100644 src/finiteArea/faMesh/faMeshMapper/faPatchMapper.C create mode 100644 src/finiteArea/faMesh/faMeshMapper/faPatchMapper.H create mode 100644 src/finiteArea/faMesh/faMeshUpdate.C create mode 100644 src/finiteArea/faMesh/faPatches/basic/coupled/coupledFaPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/basic/coupled/coupledFaPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/constraint/cyclic/cyclicFaPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/constraint/cyclic/cyclicFaPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/constraint/empty/emptyFaPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/constraint/empty/emptyFaPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/constraint/processor/processorFaPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/constraint/symmetry/symmetryFaPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/constraint/symmetry/symmetryFaPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/constraint/wedge/wedgeFaPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/constraint/wedge/wedgeFaPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/faPatch.C create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/faPatch.H create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/faPatchData.H create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/faPatchFaMeshTemplates.C create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/faPatchList.H create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/faPatchTemplates.C create mode 100644 src/finiteArea/faMesh/faPatches/faPatch/newFaPatch.C create mode 100644 src/finiteArea/faSolution/faSolution.H create mode 100644 src/finiteArea/fields/areaFields/areaFields.C create mode 100644 src/finiteArea/fields/areaFields/areaFields.H create mode 100644 src/finiteArea/fields/areaFields/areaFieldsFwd.H create mode 100644 src/finiteArea/fields/edgeFields/edgeFields.C create mode 100644 src/finiteArea/fields/edgeFields/edgeFields.H create mode 100644 src/finiteArea/fields/edgeFields/edgeFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/basicSymmetry/basicSymmetryFaPatchScalarField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/calculated/calculatedFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/coupled/coupledFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedGradient/fixedGradientFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/fixedValue/fixedValueFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/mixed/mixedFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/transform/transformFaPatchScalarField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/basic/zeroGradient/zeroGradientFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/cyclic/cyclicFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/empty/emptyFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchScalarField.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchScalarField.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/symmetry/symmetryFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/constraint/wedge/wedgeFaPatchScalarField.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/edgeNormalFixedValue/edgeNormalFixedValueFaPatchVectorField.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/fixedValueOutflow/fixedValueOutflowFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/inletOutlet/inletOutletFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/slip/slipFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFaPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchField.C create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchField.H create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldMapper.H create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldMapperPatchRef.H create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchFields.C create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchFields.H create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/faPatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faPatchFields/faPatchField/newFaPatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/calculated/calculatedFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/coupled/coupledFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/basic/fixedValue/fixedValueFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/cyclic/cyclicFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/empty/emptyFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/processor/processorFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/symmetry/symmetryFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/wedge/wedgeFaePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/wedge/wedgeFaePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/wedge/wedgeFaePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/constraint/wedge/wedgeFaePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/constraint/wedge/wedgeFaePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/faePatchField/faePatchField.C create mode 100644 src/finiteArea/fields/faePatchFields/faePatchField/faePatchField.H create mode 100644 src/finiteArea/fields/faePatchFields/faePatchField/faePatchFields.C create mode 100644 src/finiteArea/fields/faePatchFields/faePatchField/faePatchFields.H create mode 100644 src/finiteArea/fields/faePatchFields/faePatchField/faePatchFieldsFwd.H create mode 100644 src/finiteArea/fields/faePatchFields/faePatchField/newFaePatchField.C create mode 100644 src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionScheme.C create mode 100644 src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionScheme.H create mode 100644 src/finiteArea/finiteArea/convectionSchemes/faConvectionScheme/faConvectionSchemes.C create mode 100644 src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionScheme.C create mode 100644 src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionScheme.H create mode 100644 src/finiteArea/finiteArea/convectionSchemes/gaussFaConvectionScheme/gaussFaConvectionSchemes.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtScheme.H create mode 100644 src/finiteArea/finiteArea/ddtSchemes/EulerFaDdtScheme/EulerFaDdtSchemes.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtScheme.H create mode 100644 src/finiteArea/finiteArea/ddtSchemes/backwardFaDdtScheme/backwardFaDdtSchemes.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/boundedBackwardFaDdtScheme/boundedBackwardFaDdtScheme.H create mode 100644 src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtScheme.H create mode 100644 src/finiteArea/finiteArea/ddtSchemes/faDdtScheme/faDdtSchemes.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.C create mode 100644 src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtScheme.H create mode 100644 src/finiteArea/finiteArea/ddtSchemes/steadyStateFaDdtScheme/steadyStateFaDdtSchemes.C create mode 100644 src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.C create mode 100644 src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivScheme.H create mode 100644 src/finiteArea/finiteArea/divSchemes/faDivScheme/faDivSchemes.C create mode 100644 src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivScheme.C create mode 100644 src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivScheme.H create mode 100644 src/finiteArea/finiteArea/divSchemes/gaussFaDivScheme/gaussFaDivSchemes.C create mode 100644 src/finiteArea/finiteArea/fa/fa.C create mode 100644 src/finiteArea/finiteArea/fa/fa.H create mode 100644 src/finiteArea/finiteArea/faSchemes/faSchemes.C create mode 100644 src/finiteArea/finiteArea/faSchemes/faSchemes.H create mode 100644 src/finiteArea/finiteArea/fac/fac.H create mode 100644 src/finiteArea/finiteArea/fac/facAverage.C create mode 100644 src/finiteArea/finiteArea/fac/facAverage.H create mode 100644 src/finiteArea/finiteArea/fac/facDdt.C create mode 100644 src/finiteArea/finiteArea/fac/facDdt.H create mode 100644 src/finiteArea/finiteArea/fac/facDiv.C create mode 100644 src/finiteArea/finiteArea/fac/facDiv.H create mode 100644 src/finiteArea/finiteArea/fac/facEdgeIntegrate.C create mode 100644 src/finiteArea/finiteArea/fac/facEdgeIntegrate.H create mode 100644 src/finiteArea/finiteArea/fac/facGrad.C create mode 100644 src/finiteArea/finiteArea/fac/facGrad.H create mode 100644 src/finiteArea/finiteArea/fac/facLaplacian.C create mode 100644 src/finiteArea/finiteArea/fac/facLaplacian.H create mode 100644 src/finiteArea/finiteArea/fac/facLnGrad.C create mode 100644 src/finiteArea/finiteArea/fac/facLnGrad.H create mode 100644 src/finiteArea/finiteArea/fac/facNDiv.C create mode 100644 src/finiteArea/finiteArea/fac/facNDiv.H create mode 100644 src/finiteArea/finiteArea/fac/facNGrad.C create mode 100644 src/finiteArea/finiteArea/fac/facNGrad.H create mode 100644 src/finiteArea/finiteArea/fam/fam.H create mode 100644 src/finiteArea/finiteArea/fam/famDdt.C create mode 100644 src/finiteArea/finiteArea/fam/famDdt.H create mode 100644 src/finiteArea/finiteArea/fam/famDiv.C create mode 100644 src/finiteArea/finiteArea/fam/famDiv.H create mode 100644 src/finiteArea/finiteArea/fam/famLaplacian.C create mode 100644 src/finiteArea/finiteArea/fam/famLaplacian.H create mode 100644 src/finiteArea/finiteArea/fam/famNDiv.C create mode 100644 src/finiteArea/finiteArea/fam/famNDiv.H create mode 100644 src/finiteArea/finiteArea/fam/famSup.C create mode 100644 src/finiteArea/finiteArea/fam/famSup.H create mode 100644 src/finiteArea/finiteArea/fam/vectorFamDiv.C create mode 100644 src/finiteArea/finiteArea/fam/vectorFamDiv.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradScheme.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/faGradScheme/faGradSchemes.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrad.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/gaussFaGrad/gaussFaGrads.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrads.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaVectors.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrad.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/edgeLimitedFaGrad/edgeLimitedFaGrads.C create mode 100644 src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrad.H create mode 100644 src/finiteArea/finiteArea/gradSchemes/limitedGradSchemes/faceLimitedFaGrad/faceLimitedFaGrads.C create mode 100644 src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.C create mode 100644 src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianScheme.H create mode 100644 src/finiteArea/finiteArea/laplacianSchemes/faLaplacianScheme/faLaplacianSchemes.C create mode 100644 src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.C create mode 100644 src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianScheme.H create mode 100644 src/finiteArea/finiteArea/laplacianSchemes/gaussFaLaplacianScheme/gaussFaLaplacianSchemes.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrad.H create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/correctedLnGrad/correctedLnGrads.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrad.H create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/fourthLnGrad/fourthLnGrads.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrad.H create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/limitedLnGrad/limitedLnGrads.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.C create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradScheme.H create mode 100644 src/finiteArea/finiteArea/lnGradSchemes/lnGradScheme/lnGradSchemes.C create mode 100644 src/finiteArea/include/createFaMesh.H create mode 100644 src/finiteArea/include/faCFD.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolate.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolation.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationSchemes.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/Gamma/Gamma.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/Gamma/GammaEdgeInterpolationMake.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/NVDscheme/faNVDscheme.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/NVDscheme/faNVDscheme.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/blended/blendedEdgeInterpolation.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/blended/blendedEdgeInterpolationMake.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/linear/linearEdgeInterpolation.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/linear/linearEdgeInterpolationMake.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/linearUpwind/linearUpwind.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/linearUpwind/linearUpwindEdgeInterpolationMake.C create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/upwind/upwindEdgeInterpolation.H create mode 100644 src/finiteArea/interpolation/edgeInterpolation/schemes/upwind/upwindEdgeInterpolationMake.C create mode 100644 src/finiteArea/interpolation/mapping/faFieldMappers/MapFaAreaField.H create mode 100644 src/finiteArea/interpolation/mapping/faFieldMappers/MapFaEdgeField.H create mode 100644 src/finiteArea/interpolation/mapping/faFieldMappers/MapFaFields.H create mode 100644 src/finiteArea/interpolation/volSurfaceMapping/volSurfaceMapping.C create mode 100644 src/finiteArea/interpolation/volSurfaceMapping/volSurfaceMapping.H create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/.gitignore create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/0/Us create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/0/h create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/0/manningField create mode 100755 tutorials/finiteArea/liquidFilmFoam/cylinder/Allclean create mode 100755 tutorials/finiteArea/liquidFilmFoam/cylinder/Allrun create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/constant/faMesh/faBoundary create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/constant/faMesh/faMeshDefinition create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/constant/faMesh/faceLabels create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/constant/g create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/constant/transportProperties create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/system/blockMeshDict create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/system/controlDict create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/system/faSchemes create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/system/faSolution create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/system/fvSchemes create mode 100644 tutorials/finiteArea/liquidFilmFoam/cylinder/system/fvSolution create mode 100644 tutorials/finiteArea/sphereTransport/0/Cs create mode 100644 tutorials/finiteArea/sphereTransport/0/Cvf create mode 100644 tutorials/finiteArea/sphereTransport/0/U create mode 100755 tutorials/finiteArea/sphereTransport/Allclean create mode 100755 tutorials/finiteArea/sphereTransport/Allrun create mode 100644 tutorials/finiteArea/sphereTransport/constant/faMesh/faMeshDefinition create mode 100644 tutorials/finiteArea/sphereTransport/constant/polyMesh/boundary create mode 100644 tutorials/finiteArea/sphereTransport/constant/polyMesh/cells create mode 100644 tutorials/finiteArea/sphereTransport/constant/polyMesh/faces create mode 100644 tutorials/finiteArea/sphereTransport/constant/polyMesh/neighbour create mode 100644 tutorials/finiteArea/sphereTransport/constant/polyMesh/owner create mode 100644 tutorials/finiteArea/sphereTransport/constant/polyMesh/points create mode 100644 tutorials/finiteArea/sphereTransport/system/controlDict create mode 100644 tutorials/finiteArea/sphereTransport/system/faSchemes create mode 100644 tutorials/finiteArea/sphereTransport/system/faSolution create mode 100644 tutorials/finiteArea/sphereTransport/system/fvSchemes create mode 100644 tutorials/finiteArea/sphereTransport/system/fvSolution create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/0/Cs create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/0/Cvf create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/0/U create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/0/Us create mode 100755 tutorials/finiteArea/surfactantFoam/planeTransport/Allclean create mode 100755 tutorials/finiteArea/surfactantFoam/planeTransport/Allrun create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/faMesh/faBoundary create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/faMesh/faMeshDefinition create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/faMesh/faceLabels create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/polyMesh/blockMeshDict create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/polyMesh/boundary create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/polyMesh/faces create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/polyMesh/neighbour create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/polyMesh/owner create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/polyMesh/points create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/constant/transportProperties create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/system/controlDict create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/system/decomposeParDict create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/system/faSchemes create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/system/faSolution create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/system/fvSchemes create mode 100644 tutorials/finiteArea/surfactantFoam/planeTransport/system/fvSolution diff --git a/applications/solvers/finiteArea/liquidFilmFoam/Make/files b/applications/solvers/finiteArea/liquidFilmFoam/Make/files new file mode 100755 index 0000000000..39ee7f75e9 --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/Make/files @@ -0,0 +1,3 @@ +liquidFilmFoam.C + +EXE = $(FOAM_APPBIN)/liquidFilmFoam diff --git a/applications/solvers/finiteArea/liquidFilmFoam/Make/options b/applications/solvers/finiteArea/liquidFilmFoam/Make/options new file mode 100755 index 0000000000..02549914ff --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/Make/options @@ -0,0 +1,10 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteArea/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/cfdTools/general/lnInclude + +EXE_LIBS = \ + -lfiniteArea \ + -lfiniteVolume \ + -lmeshTools diff --git a/applications/solvers/finiteArea/liquidFilmFoam/calcFrictionFactor.H b/applications/solvers/finiteArea/liquidFilmFoam/calcFrictionFactor.H new file mode 100644 index 0000000000..701b4635a1 --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/calcFrictionFactor.H @@ -0,0 +1,7 @@ +{ + // Stabilisation of friction factor calculation + // Friction factor is defined with standard gravity + frictionFactor.primitiveFieldRef() = + mag(2*9.81*sqr(manningField.primitiveField())/ + pow(mag(h.primitiveField()) + 1e-7, 1.0/3.0)); +} diff --git a/applications/solvers/finiteArea/liquidFilmFoam/capillaryCourantNo.H b/applications/solvers/finiteArea/liquidFilmFoam/capillaryCourantNo.H new file mode 100644 index 0000000000..8e66fd171f --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/capillaryCourantNo.H @@ -0,0 +1,13 @@ +{ + scalar CoNumSigma = max + ( + sqrt + ( + 2*M_PI*sigma*sqr(aMesh.edgeInterpolation::deltaCoeffs()) + *aMesh.edgeInterpolation::deltaCoeffs() + /rhol + ) + ).value()*runTime.deltaT().value(); + + Info<< "Max Capillary Courant Number = " << CoNumSigma << '\n' << endl; +} diff --git a/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H b/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H new file mode 100644 index 0000000000..dba96b7fdc --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/createFaFields.H @@ -0,0 +1,158 @@ + Info<< "Reading field h" << endl; + areaScalarField h + ( + IOobject + ( + "h", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + aMesh + ); + + + Info<< "Reading field Us" << endl; + areaVectorField Us + ( + IOobject + ( + "Us", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + aMesh + ); + + + edgeScalarField phis + ( + IOobject + ( + "phis", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + fac::interpolate(Us) & aMesh.Le() + ); + + + edgeScalarField phi2s + ( + IOobject + ( + "phi2s", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + fac::interpolate(h*Us) & aMesh.Le() + ); + + + const areaVectorField& Ns = aMesh.faceAreaNormals(); + areaVectorField Gs = g - Ns*(Ns & g); + areaScalarField Gn = mag(g - Gs); + + // Mass source + areaScalarField Sm + ( + IOobject + ( + "Sm", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + aMesh, + dimensionedScalar("Sm", dimLength/dimTime, 0) + ); + + // Mass sink + areaScalarField Sd + ( + IOobject + ( + "Sd", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + aMesh, + dimensionedScalar("Sd", dimLength/dimTime, 0) + ); + + areaVectorField Ug + ( + IOobject + ( + "Sg", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + aMesh, + dimensionedVector("Ug", dimVelocity, vector::zero) + ); + + + // Surface pressure + areaScalarField ps + ( + IOobject + ( + "ps", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + rhol*Gn*h - sigma*fac::laplacian(h) + ); + + // Friction factor + areaScalarField dotProduct + ( + aMesh.faceAreaNormals() & (g/mag(g)) + ); + + Info<< "View factor: min = " << min(dotProduct.internalField()) + << " max = " << max(dotProduct.internalField()) << endl; + + areaScalarField manningField + ( + IOobject + ( + "manningField", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + aMesh + ); + + areaScalarField frictionFactor + ( + IOobject + ( + "frictionFactor", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + aMesh, + dimensionedScalar("one", dimless, 0.01) + ); + + aMesh.schemesDict().setFluxRequired("h"); diff --git a/applications/solvers/finiteArea/liquidFilmFoam/createFvFields.H b/applications/solvers/finiteArea/liquidFilmFoam/createFvFields.H new file mode 100644 index 0000000000..788b155588 --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/createFvFields.H @@ -0,0 +1,31 @@ +volVectorField U +( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedVector("0", dimVelocity, vector::zero) +); + + +volScalarField H +( + IOobject + ( + "H", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("0", dimLength, 0) +); + +// Create volume-to surface mapping object +volSurfaceMapping vsm(aMesh); diff --git a/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C b/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C new file mode 100644 index 0000000000..ce1b06fb8e --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/liquidFilmFoam.C @@ -0,0 +1,155 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | + \\/ M anipulation | +------------------------------------------------------------------------------- + | Copyright (C) 2016-2017 Wikki Ltd +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + liquidFilmFoam + +Description + Transient solver for incompressible, laminar flow of Newtonian fluids in + liquid film formulation. + +Author + Zeljko Tukovic, FMENA + Hrvoje Jasak, Wikki Ltd. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "faCFD.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "createFaMesh.H" + #include "readGravitationalAcceleration.H" + #include "readTransportProperties.H" + #include "createFaFields.H" + #include "createFvFields.H" + #include "createTimeControls.H" + + Info<< "\nStarting time loop\n" << endl; + + while (runTime.run()) + { + #include "readSolutionControls.H" + #include "readTimeControls.H" + #include "surfaceCourantNo.H" + #include "capillaryCourantNo.H" + #include "setDeltaT.H" + + runTime++; + + Info<< "Time = " << runTime.timeName() << nl << endl; + + while (runTime.loop()) + { + phi2s = fac::interpolate(h)*phis; + + #include "calcFrictionFactor.H" + + faVectorMatrix UsEqn + ( + fam::ddt(h, Us) + + fam::div(phi2s, Us) + + fam::Sp(0.0125*frictionFactor*mag(Us), Us) + == + Gs*h + - fam::Sp(Sd, Us) + ); + + UsEqn.relax(); + solve(UsEqn == - fac::grad(ps*h)/rhol + ps*fac::grad(h)/rhol); + + areaScalarField UsA = UsEqn.A(); + + Us = UsEqn.H()/UsA; + Us.correctBoundaryConditions(); + + phis = (fac::interpolate(Us) & aMesh.Le()) + - fac::interpolate(1.0/(rhol*UsA)) + *fac::lnGrad(ps*h)*aMesh.magLe() + + fac::interpolate(ps/(rhol*UsA)) + *fac::lnGrad(h)*aMesh.magLe(); + + faScalarMatrix hEqn + ( + fam::ddt(h) + + fam::div(phis, h) + == + Sm + - fam::Sp + ( + Sd/(h + dimensionedScalar("small", dimLength, SMALL)), + h + ) + ); + + hEqn.relax(); + hEqn.solve(); + + phi2s = hEqn.flux(); + + // Bound h + h.primitiveFieldRef() = max + ( + max + ( + h.primitiveField(), + fac::average(max(h, h0))().primitiveField() + *pos(h0.value() - h.primitiveField()) + ), + h0.value() + ); + + ps = rhol*Gn*h - sigma*fac::laplacian(h); + ps.correctBoundaryConditions(); + + Us -= (1.0/(rhol*UsA))*fac::grad(ps*h) + - (ps/(rhol*UsA))*fac::grad(h); + Us.correctBoundaryConditions(); + } + + if (runTime.outputTime()) + { + vsm.mapToVolume(h, H.boundaryFieldRef()); + vsm.mapToVolume(Us, U.boundaryFieldRef()); + + runTime.write(); + } + + Info<< "ExecutionTime = " + << scalar(runTime.elapsedCpuTime()) + << " s\n" << endl << endl; + } + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/solvers/finiteArea/liquidFilmFoam/readSolutionControls.H b/applications/solvers/finiteArea/liquidFilmFoam/readSolutionControls.H new file mode 100644 index 0000000000..dda7bf0d82 --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/readSolutionControls.H @@ -0,0 +1,13 @@ +int nCorr = 0; + +if (aMesh.solutionDict().found("nOuterCorrectors")) +{ + nCorr = + readInt(aMesh.solutionDict().lookup("nOuterCorrectors")); +} +else +{ + FatalErrorIn(args.executable()) + << "Cannot find number of correctors" + << abort(FatalError); +} diff --git a/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H b/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H new file mode 100644 index 0000000000..2f2c99ffda --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/readTransportProperties.H @@ -0,0 +1,41 @@ +IOdictionary transportProperties +( + IOobject + ( + "transportProperties", + runTime.constant(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ) +); + +dimensionedScalar mug +( + transportProperties.lookup("mug") +); + +dimensionedScalar mul +( + transportProperties.lookup("mul") +); + +dimensionedScalar sigma +( + transportProperties.lookup("sigma") +); + +dimensionedScalar rhol +( + transportProperties.lookup("rhol") +); + +dimensionedScalar rhog +( + transportProperties.lookup("rhog") +); + +dimensionedScalar h0 +( + transportProperties.lookup("h0") +); diff --git a/applications/solvers/finiteArea/liquidFilmFoam/surfaceCourantNo.H b/applications/solvers/finiteArea/liquidFilmFoam/surfaceCourantNo.H new file mode 100644 index 0000000000..b73cadb0b2 --- /dev/null +++ b/applications/solvers/finiteArea/liquidFilmFoam/surfaceCourantNo.H @@ -0,0 +1,60 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | + \\/ M anipulation | +------------------------------------------------------------------------------- + | Copyright (C) 2016-2017 Wikki Ltd +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Global + surfaceCourantNo + +Author + Hrvoje Jasak, Wikki Ltd. + +Description + Calculates and outputs the mean and maximum Courant Numbers for the + Finite Area method. + +\*---------------------------------------------------------------------------*/ + +scalar CoNum = 0.0; +scalar meanCoNum = 0.0; +scalar velMag = 0.0; + +if (aMesh.nInternalEdges()) +{ + edgeScalarField SfUfbyDelta = + aMesh.edgeInterpolation::deltaCoeffs()*mag(phis); + + CoNum = max(SfUfbyDelta/aMesh.magLe()) + .value()*runTime.deltaT().value(); + + meanCoNum = (sum(SfUfbyDelta)/sum(aMesh.magLe())) + .value()*runTime.deltaT().value(); + + velMag = max(mag(phis)/aMesh.magLe()).value(); +} + +Info<< "Courant Number mean: " << meanCoNum + << " max: " << CoNum + << " velocity magnitude: " << velMag << endl; + +// ************************************************************************* // diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files b/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files new file mode 100644 index 0000000000..574a497031 --- /dev/null +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/Make/files @@ -0,0 +1,3 @@ +surfactantFoam.C + +EXE = $(FOAM_USER_APPBIN)/sphereSurfactantFoam diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/Make/options b/applications/solvers/finiteArea/sphereSurfactantFoam/Make/options new file mode 100644 index 0000000000..02549914ff --- /dev/null +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/Make/options @@ -0,0 +1,10 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteArea/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/cfdTools/general/lnInclude + +EXE_LIBS = \ + -lfiniteArea \ + -lfiniteVolume \ + -lmeshTools diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H b/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H new file mode 100644 index 0000000000..4ec416f95b --- /dev/null +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/createFaFields.H @@ -0,0 +1,78 @@ +Info<< "Reading field Cs" << endl; +areaScalarField Cs +( + IOobject + ( + "Cs", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + aMesh +); + +dimensioned Cs0 +( + "Cs0", + dimensionSet(1, -2, 0, 0, 0, 0, 0), + 1.0 +); + +const areaVectorField& R = aMesh.areaCentres(); + +Cs = Cs0*(1.0 + R.component(vector::X)/mag(R)); + + +dimensioned Ds +( + "Ds", + dimensionSet(0, 2, -1, 0, 0, 0, 0), + 1.0 +); + + +areaVectorField Us +( + IOobject + ( + "Us", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + aMesh, + dimensioned("Us", dimVelocity, vector::zero) +); + +dimensioned Uinf("Uinf", dimVelocity, 1.0); + +forAll (Us, faceI) +{ + Us[faceI].x() = + Uinf.value()*(0.25*(3.0 + sqr(R[faceI].x()/mag(R[faceI]))) - 1.0); + + Us[faceI].y() = + Uinf.value()*0.25*R[faceI].x()*R[faceI].y()/sqr(mag(R[faceI])); + + Us[faceI].z() = + Uinf.value()*0.25*R[faceI].x()*R[faceI].z()/sqr(mag(R[faceI])); +} + +Us -= aMesh.faceAreaNormals()*(aMesh.faceAreaNormals() & Us); + + +edgeScalarField phis +( + IOobject + ( + "phis", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + linearEdgeInterpolate(Us) & aMesh.Le() +); + diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/createFaMesh.H b/applications/solvers/finiteArea/sphereSurfactantFoam/createFaMesh.H new file mode 100644 index 0000000000..905c8e7405 --- /dev/null +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/createFaMesh.H @@ -0,0 +1,2 @@ + // Create Finite Area mesh + faMesh aMesh(mesh); diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/createVolFields.H b/applications/solvers/finiteArea/sphereSurfactantFoam/createVolFields.H new file mode 100644 index 0000000000..fed56e0409 --- /dev/null +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/createVolFields.H @@ -0,0 +1,36 @@ + // Create volume-to surface mapping object + volSurfaceMapping vsm(aMesh); + + volScalarField Cvf + ( + IOobject + ( + "Cvf", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("0", dimless/dimLength, 0) + ); + + vsm.mapToVolume(Cs, Cvf.boundaryFieldRef()); + Cvf.write(); + + volVectorField U + ( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedVector("zero", dimVelocity, vector::zero) + ); + + vsm.mapToVolume(Us, U.boundaryFieldRef()); + U.write(); diff --git a/applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C b/applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C new file mode 100644 index 0000000000..e99f01b19a --- /dev/null +++ b/applications/solvers/finiteArea/sphereSurfactantFoam/surfactantFoam.C @@ -0,0 +1,86 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | + \\/ M anipulation | +------------------------------------------------------------------------------- + | Copyright (C) 2016-2017 Wikki Ltd +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + surfactantFoam for sphere transport + +Description + Passive scalar transport equation solver on a sphere + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "faCFD.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + + #include "createFaMesh.H" + #include "createFaFields.H" + #include "createVolFields.H" + + Info<< "Total mass of surfactant: " + << sum(Cs.internalField()*aMesh.S()) << endl; + + Info<< "\nStarting time loop\n" << endl; + + while (runTime.loop()) + { + Info<< "Time = " << runTime.value() << endl; + + faScalarMatrix CsEqn + ( + fam::ddt(Cs) + + fam::div(phis, Cs) + - fam::laplacian(Ds, Cs) + ); + + CsEqn.solve(); + + if (runTime.outputTime()) + { + vsm.mapToVolume(Cs, Cvf.boundaryFieldRef()); + + runTime.write(); + } + + Info<< "Total mass of surfactant: " + << sum(Cs.internalField()*aMesh.S()) << endl; + + Info<< "ExecutionTime = " + << scalar(runTime.elapsedCpuTime()) + << " s\n" << endl << endl; + } + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/solvers/finiteArea/surfactantFoam/Make/files b/applications/solvers/finiteArea/surfactantFoam/Make/files new file mode 100644 index 0000000000..b4086fd825 --- /dev/null +++ b/applications/solvers/finiteArea/surfactantFoam/Make/files @@ -0,0 +1,3 @@ +surfactantFoam.C + +EXE = $(FOAM_APPBIN)/surfactantFoam diff --git a/applications/solvers/finiteArea/surfactantFoam/Make/options b/applications/solvers/finiteArea/surfactantFoam/Make/options new file mode 100644 index 0000000000..02549914ff --- /dev/null +++ b/applications/solvers/finiteArea/surfactantFoam/Make/options @@ -0,0 +1,10 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteArea/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/cfdTools/general/lnInclude + +EXE_LIBS = \ + -lfiniteArea \ + -lfiniteVolume \ + -lmeshTools diff --git a/applications/solvers/finiteArea/surfactantFoam/createFaFields.H b/applications/solvers/finiteArea/surfactantFoam/createFaFields.H new file mode 100644 index 0000000000..a285b21cee --- /dev/null +++ b/applications/solvers/finiteArea/surfactantFoam/createFaFields.H @@ -0,0 +1,63 @@ +Info<< "Reading field Cs" << endl; +areaScalarField Cs +( + IOobject + ( + "Cs", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + aMesh +); + +Info<< "Reading transportProperties\n" << endl; + +IOdictionary transportProperties +( + IOobject + ( + "transportProperties", + runTime.constant(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ) +); + + +Info<< "Reading diffusivity D\n" << endl; + +dimensionedScalar Ds +( + transportProperties.lookup("Ds") +); + +areaVectorField Us +( + IOobject + ( + "Us", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ), + aMesh +); + + +edgeScalarField phis +( + IOobject + ( + "phis", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + linearEdgeInterpolate(Us) & aMesh.Le() +); + diff --git a/applications/solvers/finiteArea/surfactantFoam/createFaMesh.H b/applications/solvers/finiteArea/surfactantFoam/createFaMesh.H new file mode 100644 index 0000000000..905c8e7405 --- /dev/null +++ b/applications/solvers/finiteArea/surfactantFoam/createFaMesh.H @@ -0,0 +1,2 @@ + // Create Finite Area mesh + faMesh aMesh(mesh); diff --git a/applications/solvers/finiteArea/surfactantFoam/createVolFields.H b/applications/solvers/finiteArea/surfactantFoam/createVolFields.H new file mode 100644 index 0000000000..fed56e0409 --- /dev/null +++ b/applications/solvers/finiteArea/surfactantFoam/createVolFields.H @@ -0,0 +1,36 @@ + // Create volume-to surface mapping object + volSurfaceMapping vsm(aMesh); + + volScalarField Cvf + ( + IOobject + ( + "Cvf", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("0", dimless/dimLength, 0) + ); + + vsm.mapToVolume(Cs, Cvf.boundaryFieldRef()); + Cvf.write(); + + volVectorField U + ( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedVector("zero", dimVelocity, vector::zero) + ); + + vsm.mapToVolume(Us, U.boundaryFieldRef()); + U.write(); diff --git a/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C b/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C new file mode 100644 index 0000000000..c72984127c --- /dev/null +++ b/applications/solvers/finiteArea/surfactantFoam/surfactantFoam.C @@ -0,0 +1,112 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | + \\/ M anipulation | +------------------------------------------------------------------------------- + | Copyright (C) 2016-2017 Wikki Ltd +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + surfactantFoam + +Group + grpBasicSolvers + +Description + Passive scalar transport equation solver. + + \heading Solver details + The equation is given by: + + \f[ + \ddt{Cs} + \div \left(\vec{U} Cs\right) - \div \left(D_T \grad Cs \right) + = 0 + \f] + + Where: + \vartable + Cs | Passive scalar + Ds | Diffusion coefficient + \endvartable + + \heading Required fields + \plaintable + Cs | Passive scalar + Us | Velocity [m/s] + \endplaintable + +Author + Zeljko Tukovic, FMENA + Hrvoje Jasak, Wikki Ltd. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "faCFD.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "createFaMesh.H" + #include "createFaFields.H" + #include "createVolFields.H" + + Info<< "Total mass of surfactant: " + << sum(Cs.internalField()*aMesh.S()) << endl; + + Info<< "\nStarting time loop\n" << endl; + + while (runTime.loop()) + { + Info<< "Time = " << runTime.value() << endl; + + faScalarMatrix CsEqn + ( + fam::ddt(Cs) + + fam::div(phis, Cs) + - fam::laplacian(Ds, Cs) + ); + + CsEqn.solve(); + + if (runTime.outputTime()) + { + vsm.mapToVolume(Cs, Cvf.boundaryFieldRef()); + + runTime.write(); + } + + Info<< "Total mass of surfactant: " + << sum(Cs.internalField()*aMesh.S()) << endl; + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/utilities/finiteArea/checkFaMesh/Make/files b/applications/utilities/finiteArea/checkFaMesh/Make/files new file mode 100644 index 0000000000..14a2b16396 --- /dev/null +++ b/applications/utilities/finiteArea/checkFaMesh/Make/files @@ -0,0 +1,3 @@ +checkFaMesh.C + +EXE = $(FOAM_APPBIN)/checkFaMesh diff --git a/applications/utilities/finiteArea/checkFaMesh/Make/options b/applications/utilities/finiteArea/checkFaMesh/Make/options new file mode 100644 index 0000000000..7ab09dc4b6 --- /dev/null +++ b/applications/utilities/finiteArea/checkFaMesh/Make/options @@ -0,0 +1,9 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteArea/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + +EXE_LIBS = \ + -lfiniteVolume \ + -lmeshTools \ + -lfiniteArea diff --git a/applications/utilities/finiteArea/checkFaMesh/checkFaMesh.C b/applications/utilities/finiteArea/checkFaMesh/checkFaMesh.C new file mode 100644 index 0000000000..27b8990e5e --- /dev/null +++ b/applications/utilities/finiteArea/checkFaMesh/checkFaMesh.C @@ -0,0 +1,83 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | + \\/ M anipulation | +------------------------------------------------------------------------------- + | Copyright (C) 2016-2017 Wikki Ltd +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + makeFaMesh + +Description + Check a Finite Area mesh + +Author + Zeljko Tukovic, FAMENA + Hrvoje Jasak, Wikki Ltd. + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "faCFD.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ +# include "addRegionOption.H" + +# include "setRootCase.H" +# include "createTime.H" +# include "createNamedMesh.H" +# include "createFaMesh.H" + + Info<< "Time = " << runTime.timeName() << nl << endl; + + // General mesh statistics + Info<< "Number of points: " << aMesh.nPoints() << nl + << "Number of internal edges: " << aMesh.nInternalEdges() << nl + << "Number of edges: " << aMesh.nEdges() << nl + << "Number of faces: " << aMesh.nFaces() << nl + << endl; + + // Check geometry + Info<< "Face area: min = " << min(aMesh.S().field()) + << " max = " << max(aMesh.S().field()) << nl + << "Internal edge length: min = " + << min(aMesh.magLe().internalField()) << nl + << " max = " << max(aMesh.magLe().internalField()) << nl + << "Edge length: min = " + << min(aMesh.magLe()).value() << nl + << " max = " << max(aMesh.magLe()).value() << nl + << "Face area normals: min = " << min(aMesh.faceAreaNormals().field()) + << " max = " << max(aMesh.faceAreaNormals().field()) << nl + << endl; + + + return(0); +} + + +// ************************************************************************* // diff --git a/applications/utilities/finiteArea/makeFaMesh/Make/files b/applications/utilities/finiteArea/makeFaMesh/Make/files new file mode 100644 index 0000000000..fbd0f40cd0 --- /dev/null +++ b/applications/utilities/finiteArea/makeFaMesh/Make/files @@ -0,0 +1,3 @@ +makeFaMesh.C + +EXE = $(FOAM_APPBIN)/makeFaMesh diff --git a/applications/utilities/finiteArea/makeFaMesh/Make/options b/applications/utilities/finiteArea/makeFaMesh/Make/options new file mode 100644 index 0000000000..98ba4f7225 --- /dev/null +++ b/applications/utilities/finiteArea/makeFaMesh/Make/options @@ -0,0 +1,8 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteArea/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/cfdTools/general/lnInclude + +EXE_LIBS = \ + -lfiniteArea \ + -lfiniteVolume diff --git a/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C b/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C new file mode 100644 index 0000000000..5440932530 --- /dev/null +++ b/applications/utilities/finiteArea/makeFaMesh/makeFaMesh.C @@ -0,0 +1,356 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | + \\/ M anipulation | +------------------------------------------------------------------------------- + | Copyright (C) 2016-2017 Wikki Ltd +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Application + makeFaMesh + +Description + A mesh generator for finite area mesh. + +Author + Zeljko Tukovic, FAMENA + Hrvoje Jasak, Wikki Ltd. + +\*---------------------------------------------------------------------------*/ + +#include "objectRegistry.H" +#include "Time.H" +#include "argList.H" +#include "OSspecific.H" +#include "faMesh.H" +#include "fvMesh.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +class faPatchData +{ +public: + word name_; + word type_; + dictionary dict_; + label ownPolyPatchID_; + label ngbPolyPatchID_; + labelList edgeLabels_; + faPatchData() + : + name_(word::null), + type_(word::null), + ownPolyPatchID_(-1), + ngbPolyPatchID_(-1) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ +# include "addRegionOption.H" + +# include "setRootCase.H" +# include "createTime.H" +# include "createNamedMesh.H" + + // Reading faMeshDefinition dictionary + IOdictionary faMeshDefinition + ( + IOobject + ( + "faMeshDefinition", + runTime.constant(), + "faMesh", + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ) + ); + + wordList polyMeshPatches + ( + faMeshDefinition.lookup("polyMeshPatches") + ); + + dictionary bndDict = faMeshDefinition.subDict("boundary"); + + wordList faPatchNames = bndDict.toc(); + + List faPatches(faPatchNames.size()+1); + + forAll (faPatchNames, patchI) + { + dictionary curPatchDict = + bndDict.subDict(faPatchNames[patchI]); + + faPatches[patchI].name_ = faPatchNames[patchI]; + + faPatches[patchI].type_ = + word(curPatchDict.lookup("type")); + + word ownName = curPatchDict.lookup("ownerPolyPatch"); + + faPatches[patchI].ownPolyPatchID_ = + mesh.boundaryMesh().findPatchID(ownName); + + if ( faPatches[patchI].ownPolyPatchID_ < 0 ) + { + FatalErrorIn("makeFaMesh:") + << "neighbourPolyPatch " << ownName << " does not exist" + << exit(FatalError); + } + + word neiName = curPatchDict.lookup("neighbourPolyPatch"); + + faPatches[patchI].ngbPolyPatchID_ = + mesh.boundaryMesh().findPatchID(neiName); + + if ( faPatches[patchI].ngbPolyPatchID_ < 0 ) + { + FatalErrorIn("makeFaMesh:") + << "neighbourPolyPatch " << neiName << " does not exist" + << exit(FatalError); + } + } + + // Setting faceLabels list size + label size = 0; + + labelList patchIDs(polyMeshPatches.size(), -1); + + forAll (polyMeshPatches, patchI) + { + patchIDs[patchI] = + mesh.boundaryMesh().findPatchID(polyMeshPatches[patchI]); + + if ( patchIDs[patchI] < 0 ) + { + FatalErrorIn("makeFaMesh:") + << "Patch " << polyMeshPatches[patchI] << " does not exist" + << exit(FatalError); + } + + size += mesh.boundaryMesh()[patchIDs[patchI]].size(); + } + + labelList faceLabels(size, -1); + + sort(patchIDs); + + + // Filling of faceLabels list + label faceI = -1; + + forAll (polyMeshPatches, patchI) + { + label start = mesh.boundaryMesh()[patchIDs[patchI]].start(); + + label size = mesh.boundaryMesh()[patchIDs[patchI]].size(); + + for(label i = 0; i < size; i++) + { + faceLabels[++faceI] = start + i; + } + } + + // Creating faMesh + Info << "Create faMesh ... "; + + faMesh areaMesh + ( + mesh, + faceLabels + ); + Info << "Done" << endl; + + + // Determination of faPatch ID for each boundary edge. + // Result is in the bndEdgeFaPatchIDs list + const indirectPrimitivePatch& patch = areaMesh.patch(); + + labelList faceCells(faceLabels.size(), -1); + + forAll (faceCells, faceI) + { + label faceID = faceLabels[faceI]; + + faceCells[faceI] = mesh.faceOwner()[faceID]; + } + + labelList meshEdges = + patch.meshEdges + ( + mesh.edges(), + mesh.cellEdges(), + faceCells + ); + + const labelListList& edgeFaces = mesh.edgeFaces(); + + const label nTotalEdges = patch.nEdges(); + const label nInternalEdges = patch.nInternalEdges(); + + labelList bndEdgeFaPatchIDs(nTotalEdges - nInternalEdges, -1); + + for (label edgeI = nInternalEdges; edgeI < nTotalEdges; edgeI++) + { + label curMeshEdge = meshEdges[edgeI]; + + labelList curEdgePatchIDs(2, -1); + + label patchI = -1; + + forAll (edgeFaces[curMeshEdge], faceI) + { + label curFace = edgeFaces[curMeshEdge][faceI]; + + label curPatchID = mesh.boundaryMesh().whichPatch(curFace); + + if (curPatchID != -1) + { + curEdgePatchIDs[++patchI] = curPatchID; + } + } + + for(label pI = 0; pI < faPatches.size() - 1; pI++) + { + if + ( + ( + curEdgePatchIDs[0] == faPatches[pI].ownPolyPatchID_ + && curEdgePatchIDs[1] == faPatches[pI].ngbPolyPatchID_ + ) + || + ( + curEdgePatchIDs[1] == faPatches[pI].ownPolyPatchID_ + && curEdgePatchIDs[0] == faPatches[pI].ngbPolyPatchID_ + ) + ) + { + bndEdgeFaPatchIDs[edgeI - nInternalEdges] = pI; + break; + } + } + } + + + // Set edgeLabels for each faPatch + for(label pI=0; pI<(faPatches.size()-1); pI++) + { + SLList