diff --git a/.gitignore b/.gitignore index f32722697ba7b4bdea39dc723724f1978c728072..4a7188cdfbaaa032b0025983cdc81649a20f8aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ *.la *.so *.jar + +# ignore derived files lex.yy.c # Corefiles @@ -32,9 +34,10 @@ linux*Gcc* # reinstate wmake/rules that look like build folders !wmake/rules/linux* -# but do ignore the derived files in there -wmake/rules/linux*/dirToString -wmake/rules/linux*/wmkdep + +# but do continue to ignore the derived wmake files +wmake/rules/*/dirToString +wmake/rules/*/wmkdep # doxygen generated documentation doc/[Dd]oxygen/html diff --git a/applications/utilities/mesh/conversion/polyDualMesh/Make/files b/applications/utilities/mesh/conversion/polyDualMesh/Make/files index de69b15edfcfc37273d21c3c670ccf885c87d43b..c43f79e8e148201c61e6d3d41f6fff50a540b4d7 100644 --- a/applications/utilities/mesh/conversion/polyDualMesh/Make/files +++ b/applications/utilities/mesh/conversion/polyDualMesh/Make/files @@ -1,4 +1,3 @@ -polyDualMesh.C polyDualMeshApp.C EXE = $(FOAM_APPBIN)/polyDualMesh diff --git a/applications/utilities/mesh/conversion/polyDualMesh/Make/options b/applications/utilities/mesh/conversion/polyDualMesh/Make/options index 54c035b8f55d183c1ad02bc372398feceaf31718..6dc63a7a989641aba7de693a1920eec74912cb02 100644 --- a/applications/utilities/mesh/conversion/polyDualMesh/Make/options +++ b/applications/utilities/mesh/conversion/polyDualMesh/Make/options @@ -1,5 +1,6 @@ EXE_INC = \ - -I$(LIB_SRC)/meshTools/lnInclude + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/conversion/lnInclude EXE_LIBS = \ - -lmeshTools + -lmeshTools -lconversion diff --git a/applications/utilities/mesh/manipulation/setSet/setSet.C b/applications/utilities/mesh/manipulation/setSet/setSet.C index 488d22aa2aa5b8f78e3a4a5dcbdc5f022fa96c6e..2d70f797c7004c14742683f3f4efed4e61995870 100644 --- a/applications/utilities/mesh/manipulation/setSet/setSet.C +++ b/applications/utilities/mesh/manipulation/setSet/setSet.C @@ -344,7 +344,7 @@ bool doCommand / (10*Pstream::nProcs()); - bool error = false; + bool ok = true; // Set to work on autoPtr<topoSet> currentSetPtr(NULL); @@ -388,7 +388,7 @@ bool doCommand Pout<< " Cannot construct/load set " << topoSet::localPath(mesh, setName) << endl; - error = true; + ok = false; } else { @@ -518,7 +518,7 @@ bool doCommand } catch (Foam::IOerror& fIOErr) { - error = true; + ok = false; Pout<< fIOErr.message().c_str() << endl; @@ -529,7 +529,7 @@ bool doCommand } catch (Foam::error& fErr) { - error = true; + ok = false; Pout<< fErr.message().c_str() << endl; @@ -539,15 +539,16 @@ bool doCommand } } - return !error; + return ok; } +// Status returned from parsing the first token of the line enum commandStatus { - QUIT, - INVALID, - VALID + QUIT, // quit program + INVALID, // token is not a valid set manipulation command + VALID // ,, is a valid ,, }; @@ -841,7 +842,7 @@ int main(int argc, char *argv[]) } } - ok = false; + ok = true; if (stat == QUIT) { diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index 0c820006c72b9955e899b38cad0560f8cbec6a86..02f0523f71828b5b4f851b99c331dc48c37f730c 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -50,6 +50,14 @@ Usage Remove any existing @a processor subdirectories before decomposing the geometry. + @param -ifRequired \n + Only decompose the geometry if the number of domains has changed from a + previous decomposition. No @a processor subdirectories will be removed + unless the @a -force option is also specified. This option can be used + to avoid redundant geometry decomposition (eg, in scripts), but should + be used with caution when the underlying (serial) geometry or the + decomposition method etc. have been changed between decompositions. + \*---------------------------------------------------------------------------*/ #include "OSspecific.H" @@ -80,6 +88,7 @@ int main(int argc, char *argv[]) argList::validOptions.insert("fields", ""); argList::validOptions.insert("filterPatches", ""); argList::validOptions.insert("force", ""); + argList::validOptions.insert("ifRequired", ""); # include "setRootCase.H" @@ -88,6 +97,7 @@ int main(int argc, char *argv[]) bool decomposeFieldsOnly(args.options().found("fields")); bool filterPatches(args.options().found("filterPatches")); bool forceOverwrite(args.options().found("force")); + bool ifRequiredDecomposition(args.options().found("ifRequired")); # include "createTime.H" @@ -100,47 +110,84 @@ int main(int argc, char *argv[]) ++nProcs; } - // Check for previously decomposed case first + // get requested numberOfSubdomains + label nDomains = 0; + { + IOdictionary decompDict + ( + IOobject + ( + "decomposeParDict", + runTime.time().system(), + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE, + false + ) + ); + + decompDict.lookup("numberOfSubdomains") >> nDomains; + } + if (decomposeFieldsOnly) { - if (!nProcs) + // Sanity check on previously decomposed case + if (nProcs != nDomains) { FatalErrorIn(args.executable()) - << "Specifying -fields requires a decomposed geometry!" + << "Specified -fields, but the case was decomposed with " + << nProcs << " domains" + << nl + << "instead of " << nDomains + << " domains as specified in decomposeParDict" << nl << exit(FatalError); } } - else + else if (nProcs) { - if (nProcs) + bool procDirsProblem = true; + + if (ifRequiredDecomposition && nProcs == nDomains) { - if (forceOverwrite) - { - Info<< "Removing " << nProcs - << " existing processor directories" << endl; + // we can reuse the decomposition + decomposeFieldsOnly = true; + procDirsProblem = false; + forceOverwrite = false; - // remove existing processor dirs - for (label procI = nProcs-1; procI >= 0; --procI) - { - fileName procDir - ( - runTime.path()/(word("processor") + name(procI)) - ); + Info<< "Using existing processor directories" << nl; + } - rmDir(procDir); - } - } - else + if (forceOverwrite) + { + Info<< "Removing " << nProcs + << " existing processor directories" << endl; + + // remove existing processor dirs + // reverse order to avoid gaps if someone interrupts the process + for (label procI = nProcs-1; procI >= 0; --procI) { - FatalErrorIn(args.executable()) - << "Case is already decomposed, " - "use the -force option or manually remove" << nl - << "processor directories before decomposing. e.g.," << nl - << " rm -rf " << runTime.path().c_str() << "/processor*" - << nl - << exit(FatalError); + fileName procDir + ( + runTime.path()/(word("processor") + name(procI)) + ); + + rmDir(procDir); } + + procDirsProblem = false; + } + + if (procDirsProblem) + { + FatalErrorIn(args.executable()) + << "Case is already decomposed with " << nProcs + << " domains, use the -force option or manually" << nl + << "remove processor directories before decomposing. e.g.," + << nl + << " rm -rf " << runTime.path().c_str() << "/processor*" + << nl + << exit(FatalError); } } diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict index b9ee4eaeb126871f082cf1e42a8e8357571f1529..c7317b464faeaa114f70cc6cb55f7fade8bbcd08 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict +++ b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict @@ -1,61 +1,61 @@ -// Mesh decomposition control dictionary - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - +/*-------------------------------*- C++ -*---------------------------------*\ +| ========= | +| \\ / OpenFOAM | +| \\ / | +| \\ / The Open Source CFD Toolbox | +| \\/ http://www.OpenFOAM.org | +\*-------------------------------------------------------------------------*/ FoamFile { - version 0.5; - format ascii; - - root "ROOT"; - case "CASE"; - instance "system"; - local ""; - - class dictionary; - - object decompositionDict; + version 2.0; + format ascii; + class dictionary; + note "mesh decomposition control dictionary"; + location "system"; + object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 4; +numberOfSubdomains 4; -//preservePatches (inlet); -//preserveFaceZones (heater solid1 solid3); +// preservePatches (inlet); +// preserveFaceZones (heater solid1 solid3); -method simple; -//method hierarchical; -//method metis; -//method manual; +method simple; +// method hierarchical; +// method metis; +// method manual; simpleCoeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + delta 0.001; } hierarchicalCoeffs { - n (2 2 1); - delta 0.001; - order xyz; + n (2 2 1); + delta 0.001; + order xyz; } metisCoeffs { - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); + /* + processorWeights + ( + 1 + 1 + 1 + 1 + ); + */ } manualCoeffs { - dataFile "decompositionData"; + dataFile "decompositionData"; } // ************************************************************************* // diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C index 51f4951906a6341279f4e83f425ac3fd90050d38..f650dab04cee2860d8ce30222bcbe1c3b714f6e7 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/vtkMesh.C @@ -70,6 +70,7 @@ Foam::polyMesh::readUpdateState Foam::vtkMesh::readUpdate() // the subset even if only movement. topoPtr_.clear(); + pointMeshPtr_.clear(); if (setName_.size() > 0) { diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean new file mode 100755 index 0000000000000000000000000000000000000000..0993c14cee915610b0aac195b75341855b7990bd --- /dev/null +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/Allwclean @@ -0,0 +1,7 @@ +#!/bin/sh +set -x + +rm -r PV3FoamReader/Make + +wclean libso vtkPV3Foam + diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx index 091af74399993b30dbb6ff1388b2d2b26c5ccff6..3e576a77db08c0662d91100f4bb7494e843c6393 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/PV3FoamReader/vtkPV3FoamReader.cxx @@ -54,7 +54,7 @@ vtkPV3FoamReader::vtkPV3FoamReader() { Debug = 0; vtkDebugMacro(<<"Constructor"); - + SetNumberOfInputPorts(0); FileName = NULL; @@ -115,7 +115,6 @@ vtkPV3FoamReader::vtkPV3FoamReader() vtkPV3FoamReader::~vtkPV3FoamReader() { vtkDebugMacro(<<"Deconstructor"); - cout << "Destroy ~vtkPV3FoamReader\n"; if (foamData_) { @@ -152,23 +151,30 @@ int vtkPV3FoamReader::RequestInformation ) { vtkDebugMacro(<<"RequestInformation"); - cout<<"REQUEST_INFORMATION\n"; + + + if (Foam::vtkPV3Foam::debug) + { + cout<<"REQUEST_INFORMATION\n"; + } if (!FileName) { vtkErrorMacro("FileName has to be specified!"); return 0; } - + + if (Foam::vtkPV3Foam::debug) { vtkInformation* outputInfo = this->GetOutputPortInformation(0); - outputInfo->Print(cout); - + vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast ( outputInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - if (output) + + outputInfo->Print(cout); + if (output) { output->Print(cout); } @@ -177,21 +183,19 @@ int vtkPV3FoamReader::RequestInformation cout << "no output\n"; } - cout << "GetExecutive:\n"; - this->GetExecutive()->GetOutputInformation(0)->Print(cout); - } - - { + int nInfo = outputVector->GetNumberOfInformationObjects(); - cout<<"requestInfo with " << nInfo << " items\n"; + + cout<< "requestInfo with " << nInfo << " items:\n"; + for (int i=0; i<nInfo; i++) { vtkInformation *info = outputVector->GetInformationObject(i); info->Print(cout); } } - + vtkInformation *outInfo = outputVector->GetInformationObject(0); if (!foamData_) @@ -207,15 +211,12 @@ int vtkPV3FoamReader::RequestInformation else { vtkDebugMacro("RequestInformation: updating information"); - foamData_->UpdateInformation(); } int nTimeSteps = 0; double* timeSteps = foamData_->timeSteps(nTimeSteps); - cout<<"Have nTimeSteps: " << nTimeSteps << "\n"; - outInfo->Set ( vtkStreamingDemandDrivenPipeline::TIME_STEPS(), @@ -229,13 +230,16 @@ int vtkPV3FoamReader::RequestInformation timeRange[0] = timeSteps[0]; timeRange[1] = timeSteps[nTimeSteps-1]; - cout<<"nTimeSteps " << nTimeSteps << "\n"; - cout<<"timeRange " << timeRange[0] << " -> " << timeRange[1] << "\n"; + if (Foam::vtkPV3Foam::debug) + { + cout<<"nTimeSteps " << nTimeSteps << "\n"; + cout<<"timeRange " << timeRange[0] << " to " << timeRange[1] << "\n"; -// for (int i = 0; i < nTimeSteps; ++i) -// { -// cout<<"step[" << i << "] = " << timeSteps[i] << "\n"; -// } + for (int i = 0; i < nTimeSteps; ++i) + { + cout<< "step[" << i << "] = " << timeSteps[i] << "\n"; + } + } outInfo->Set ( @@ -247,7 +251,6 @@ int vtkPV3FoamReader::RequestInformation delete timeSteps; - cout<<"done RequestInformation\n"; return 1; } @@ -261,21 +264,27 @@ int vtkPV3FoamReader::RequestData ) { vtkDebugMacro(<<"RequestData"); - cout<<"REQUEST_DATA\n"; if (!FileName) { vtkErrorMacro("FileName has to be specified!"); return 0; } - + { int nInfo = outputVector->GetNumberOfInformationObjects(); - cout<<"requestData with " << nInfo << " items\n"; + if (Foam::vtkPV3Foam::debug) + { + cout<<"requestData with " << nInfo << " items\n"; + } for (int i=0; i<nInfo; i++) { vtkInformation *info = outputVector->GetInformationObject(i); - info->Print(cout); + + if (Foam::vtkPV3Foam::debug) + { + info->Print(cout); + } } } @@ -284,38 +293,38 @@ int vtkPV3FoamReader::RequestData ( outInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - -#if 1 + + if (Foam::vtkPV3Foam::debug) { vtkInformation* outputInfo = this->GetOutputPortInformation(0); outputInfo->Print(cout); - + vtkMultiBlockDataSet* output = vtkMultiBlockDataSet::SafeDownCast ( outputInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - if (output) + if (output) { output->Print(cout); } else { - cout << "no output\n"; + cout<< "no output\n"; } - + vtkInformation* execInfo = this->GetExecutive()->GetOutputInformation(0); execInfo->Print(cout); - + outInfo->Print(cout); - + vtkMultiBlockDataSet* dobj = vtkMultiBlockDataSet::SafeDownCast ( outInfo->Get(vtkMultiBlockDataSet::DATA_OBJECT()) ); - if (dobj) + if (dobj) { dobj->Print(cout); - + vtkInformation* dobjInfo = dobj->GetInformation(); dobjInfo->Print(cout); } @@ -323,16 +332,16 @@ int vtkPV3FoamReader::RequestData { cout << "no data_object\n"; } - - } -#endif if (outInfo->Has(vtkStreamingDemandDrivenPipeline::UPDATE_TIME_STEPS())) { - cout<<"Has UPDATE_TIME_STEPS\n"; - cout<<"output->GetNumberOfBlocks() " << output->GetNumberOfBlocks() << - "\n"; + if (Foam::vtkPV3Foam::debug) + { + cout<<"Has UPDATE_TIME_STEPS\n"; + cout<<"output->GetNumberOfBlocks() = " + << output->GetNumberOfBlocks() << "\n"; + } // Get the requested time step. // We only supprt requests of a single time step @@ -370,10 +379,6 @@ int vtkPV3FoamReader::RequestData } UpdateGUIOld = GetUpdateGUI(); - cout<<"done RequestData\n"; - cout<<"done output->GetNumberOfBlocks() " - << output->GetNumberOfBlocks() << "\n"; - return 1; } diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C index e019e299d0c040de44e919658a69e0efbeab9f00..678ae8e9588981fadb579da34f89849d20eda948 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.C @@ -87,10 +87,13 @@ void Foam::vtkPV3Foam::AddToBlock if (block) { - Info<< "block[" << blockNo << "] has " - << block->GetNumberOfBlocks() - << " datasets prior to adding set " << datasetNo - << " with name: " << blockName << endl; + if (debug) + { + Info<< "block[" << blockNo << "] has " + << block->GetNumberOfBlocks() + << " datasets prior to adding set " << datasetNo + << " with name: " << blockName << endl; + } // when assigning dataset 0, also name the parent block if (!datasetNo && selector.name()) @@ -481,8 +484,11 @@ Foam::vtkPV3Foam::vtkPV3Foam dbPtr_().functionObjects().off(); - cout<<"constructed with output: "; - output_->Print(cout), + if (debug) + { + cout<< "constructed with output: "; + output_->Print(cout); + } resetCounters(); @@ -579,8 +585,8 @@ void Foam::vtkPV3Foam::Update { if (debug) { - Info<< "entered Foam::vtkPV3Foam::Update" << endl; - cout<<"Update\n"; + cout<< "entered Foam::vtkPV3Foam::Update" << nl + <<"Update\n"; output->Print(cout); cout<<"Internally:\n"; @@ -765,7 +771,10 @@ void Foam::vtkPV3Foam::addPatchNames(vtkRenderer* renderer) true ); - Info<<"patches: " << selectedPatches <<endl; + if (debug) + { + Info<<"patches: " << selectedPatches <<endl; + } // Find the total number of zones // Each zone will take the patch name diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H index f5aadcd0512c9df0c25c43d543d1718c23e0dc44..a1d374cc9d2d5dff2ec71bfc5bcd15ba79cdf0cd 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H @@ -172,6 +172,7 @@ public: } }; + private: // Private data @@ -645,85 +646,6 @@ public: }; -// * * * * * * * * * * * * * Template Specialisations * * * * * * * * * * * // - -template<> -void vtkPV3Foam::convertVolField -( - const GeometricField<scalar, fvPatchField, volMesh>& sf, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo, - labelList& superCells -); - - -template<> -void vtkPV3Foam::convertPatchFaceField -( - const word& name, - const Field<scalar>&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - -template<> -void vtkPV3Foam::convertFaceField -( - const GeometricField<scalar, fvPatchField, volMesh>&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo, - const fvMesh&, - const labelList& faceLabels -); - - -template<> -void vtkPV3Foam::convertFaceField -( - const GeometricField<scalar, fvPatchField, volMesh>&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo, - const fvMesh&, - const faceSet& -); - - -template<> -void vtkPV3Foam::convertPointField -( - const GeometricField<scalar, pointPatchField, pointMesh>&, - const GeometricField<scalar, fvPatchField, volMesh>&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - - -template<> -void vtkPV3Foam::convertPatchPointField -( - const word& name, - const Field<scalar>&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - - -template<> -void vtkPV3Foam::convertLagrangianField -( - const IOField<scalar>&, - vtkMultiBlockDataSet* output, - const selectionInfo&, - const label datasetNo -); - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H index c6b3e51d4783220abcb61e1208c6e103a8251dce..114aab667a5f9347b799b53e8274f0495ede37c4 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertFaceField.H @@ -48,6 +48,8 @@ void Foam::vtkPV3Foam::convertFaceField const labelList& faceLabels ) { + const label nComp = pTraits<Type>::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -59,33 +61,30 @@ void Foam::vtkPV3Foam::convertFaceField vtkFloatArray *cellData = vtkFloatArray::New(); cellData->SetNumberOfTuples(faceLabels.size()); - cellData->SetNumberOfComponents(Type::nComponents); - cellData->Allocate(Type::nComponents*faceLabels.size()); + cellData->SetNumberOfComponents(nComp); + cellData->Allocate(nComp*faceLabels.size()); cellData->SetName(tf.name().c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(faceLabels, faceI) { const label faceNo = faceLabels[faceI]; if (faceNo < nInternalFaces) { - Type t = 0.5 * - ( - tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]] - ); + Type t = 0.5*(tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]); - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } } else { const Type& t = tf[faceOwner[faceNo]]; - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } } @@ -108,6 +107,8 @@ void Foam::vtkPV3Foam::convertFaceField const faceSet& fSet ) { + const label nComp = pTraits<Type>::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -119,11 +120,11 @@ void Foam::vtkPV3Foam::convertFaceField vtkFloatArray *cellData = vtkFloatArray::New(); cellData->SetNumberOfTuples(fSet.size()); - cellData->SetNumberOfComponents(Type::nComponents); - cellData->Allocate(Type::nComponents*fSet.size()); + cellData->SetNumberOfComponents(nComp); + cellData->Allocate(nComp*fSet.size()); cellData->SetName(tf.name().c_str()); - float vec[Type::nComponents]; + float vec[nComp]; label faceI = 0; forAllConstIter(faceSet, fSet, iter) @@ -132,22 +133,19 @@ void Foam::vtkPV3Foam::convertFaceField if (faceNo < nInternalFaces) { - Type t = 0.5 * - ( - tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]] - ); + Type t = 0.5*(tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]); - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } } else { const Type& t = tf[faceOwner[faceNo]]; - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } } @@ -160,125 +158,6 @@ void Foam::vtkPV3Foam::convertFaceField } -template<> -void Foam::vtkPV3Foam::convertFaceField -( - const GeometricField<scalar, fvPatchField, volMesh>& tf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo, - const fvMesh& mesh, - const labelList& faceLabels -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - const label nInternalFaces = mesh.nInternalFaces(); - const labelList& faceOwner = mesh.faceOwner(); - const labelList& faceNeigh = mesh.faceNeighbour(); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(faceLabels.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(faceLabels.size()); - cellData->SetName(tf.name().c_str()); - - forAll(faceLabels, faceI) - { - const label faceNo = faceLabels[faceI]; - if (faceNo < nInternalFaces) - { - cellData->InsertComponent - ( - faceI, - 0, - 0.5 * (tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]) - ); - } - else - { - cellData->InsertComponent - ( - faceI, 0, tf[faceOwner[faceNo]] - ); - } - - } - - vtkmesh->GetCellData()->AddArray(cellData); - - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - -template<> -void Foam::vtkPV3Foam::convertFaceField -( - const GeometricField<scalar, fvPatchField, volMesh>& tf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo, - const fvMesh& mesh, - const faceSet& fSet -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - const label nInternalFaces = mesh.nInternalFaces(); - const labelList& faceOwner = mesh.faceOwner(); - const labelList& faceNeigh = mesh.faceNeighbour(); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(fSet.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(fSet.size()); - cellData->SetName(tf.name().c_str()); - - label faceI = 0; - forAllConstIter(faceSet, fSet, iter) - { - const label faceNo = iter.key(); - if (faceNo < nInternalFaces) - { - cellData->InsertComponent - ( - faceI, - 0, - 0.5 * (tf[faceOwner[faceNo]] + tf[faceNeigh[faceNo]]) - ); - } - else - { - cellData->InsertComponent - ( - faceI, 0, tf[faceOwner[faceNo]] - ); - } - ++faceI; - } - - vtkmesh->GetCellData()->AddArray(cellData); - - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H index 7f99944008460041075523cdf90b7b6f2bb0362f..0ccc3f81a04536a507caf3d6cccc59c368a3dde0 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertLagrangianFields.H @@ -95,6 +95,8 @@ void Foam::vtkPV3Foam::convertLagrangianField const label datasetNo ) { + const label nComp = pTraits<Type>::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -102,24 +104,24 @@ void Foam::vtkPV3Foam::convertLagrangianField vtkFloatArray *pointData = vtkFloatArray::New(); pointData->SetNumberOfTuples(tf.size()); - pointData->SetNumberOfComponents(Type::nComponents); - pointData->Allocate(Type::nComponents*tf.size()); + pointData->SetNumberOfComponents(nComp); + pointData->Allocate(nComp*tf.size()); pointData->SetName(tf.name().c_str()); if (debug) { Info<< "converting Lagrangian <Type>Field: " << tf.name() << nl << "tf.size() = " << tf.size() << nl - << "nComps = " << Type::nComponents << endl; + << "nComp = " << nComp << endl; } - float vec[Type::nComponents]; + float vec[nComp]; forAll(tf, i) { - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = tf[i][d]; + vec[d] = component(tf[i], d); } pointData->InsertTuple(i, vec); @@ -130,48 +132,6 @@ void Foam::vtkPV3Foam::convertLagrangianField } -template<> -void Foam::vtkPV3Foam::convertLagrangianField -( - const IOField<scalar>& sf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *pointData = vtkFloatArray::New(); - pointData->SetNumberOfTuples(sf.size()); - pointData->SetNumberOfComponents(1); - pointData->Allocate(sf.size()); - pointData->SetName(sf.name().c_str()); - - if (debug) - { - Info<< "converting Lagrangian scalarField: " << sf.name() << nl - << "sf.size() = " << sf.size() << nl - << "nComps = 1" << endl; - } - - for (int i=0; i<sf.size(); i++) - { - pointData->InsertComponent(i, 0, sf[i]); - } - - vtkmesh->GetPointData()->AddArray(pointData); - if (!vtkmesh->GetPointData()->GetScalars()) - { - vtkmesh->GetPointData()->SetScalars(pointData); - } - - pointData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H index 11954235ea5de5866a05ced9268b4f99af772935..af0fde5e21db913a599b06f0438ab3edb555fd4c 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchFaceField.H @@ -48,6 +48,8 @@ void Foam::vtkPV3Foam::convertPatchFaceField const label datasetNo ) { + const label nComp = pTraits<Type>::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -55,18 +57,18 @@ void Foam::vtkPV3Foam::convertPatchFaceField vtkFloatArray *cellData = vtkFloatArray::New(); cellData->SetNumberOfTuples(ptf.size()); - cellData->SetNumberOfComponents(Type::nComponents); - cellData->Allocate(Type::nComponents*ptf.size()); + cellData->SetNumberOfComponents(nComp); + cellData->Allocate(nComp*ptf.size()); cellData->SetName(name.c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(ptf, i) { const Type& t = ptf[i]; - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } cellData->InsertTuple(i, vec); @@ -77,43 +79,6 @@ void Foam::vtkPV3Foam::convertPatchFaceField } -template<> -void Foam::vtkPV3Foam::convertPatchFaceField -( - const word& name, - const Field<scalar>& psf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(psf.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(psf.size()); - cellData->SetName(name.c_str()); - - forAll(psf, i) - { - cellData->InsertComponent(i, 0, psf[i]); - } - - vtkmesh->GetCellData()->AddArray(cellData); - - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H index c0a3a92f9ab47c08ef82fad16107ebc5fd8c3f4a..a793958218a2084299fc9a4fd50b85bb9d9078f4 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPatchPointField.H @@ -45,6 +45,8 @@ void Foam::vtkPV3Foam::convertPatchPointField const label datasetNo ) { + const label nComp = pTraits<Type>::nComponents; + vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -52,17 +54,17 @@ void Foam::vtkPV3Foam::convertPatchPointField vtkFloatArray *pointData = vtkFloatArray::New(); pointData->SetNumberOfTuples(pptf.size()); - pointData->SetNumberOfComponents(Type::nComponents); - pointData->Allocate(Type::nComponents*pptf.size()); + pointData->SetNumberOfComponents(nComp); + pointData->Allocate(nComp*pptf.size()); pointData->SetName(name.c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(pptf, i) { - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = pptf[i][d]; + vec[d] = component(pptf[i], d); } pointData->InsertTuple(i, vec); @@ -73,42 +75,6 @@ void Foam::vtkPV3Foam::convertPatchPointField } -template<> -void Foam::vtkPV3Foam::convertPatchPointField -( - const word& name, - const Field<scalar>& ppsf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkPolyData* vtkmesh = vtkPolyData::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *pointData = vtkFloatArray::New(); - pointData->SetNumberOfTuples(ppsf.size()); - pointData->SetNumberOfComponents(1); - pointData->Allocate(ppsf.size()); - pointData->SetName(name.c_str()); - - for (int i=0; i<ppsf.size(); i++) - { - pointData->InsertComponent(i, 0, ppsf[i]); - } - - vtkmesh->GetPointData()->AddArray(pointData); - if (!vtkmesh->GetPointData()->GetScalars()) - { - vtkmesh->GetPointData()->SetScalars(pointData); - } - - pointData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H index fc16caca71954e3f033848581442a16966ee1cf5..28d7fdfe5d0a8f2ab1bdbc9bc7c4769015c11592 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertPointFields.H @@ -33,8 +33,6 @@ InClass // Foam includes #include "interpolatePointToCell.H" -// VTK includes - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<class Type> @@ -145,6 +143,8 @@ void Foam::vtkPV3Foam::convertPointField const label datasetNo ) { + const label nComp = pTraits<Type>::nComponents; + vtkUnstructuredGrid* internalMesh = vtkUnstructuredGrid::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -152,17 +152,17 @@ void Foam::vtkPV3Foam::convertPointField vtkFloatArray *pointData = vtkFloatArray::New(); pointData->SetNumberOfTuples(ptf.size() + addPointCellLabels_.size()); - pointData->SetNumberOfComponents(Type::nComponents); - pointData->Allocate(Type::nComponents*ptf.size()); + pointData->SetNumberOfComponents(nComp); + pointData->Allocate(nComp*ptf.size()); pointData->SetName(tf.name().c_str()); - float vec[Type::nComponents]; + float vec[nComp]; forAll(ptf, i) { - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = ptf[i][d]; + vec[d] = component(ptf[i], d); } pointData->InsertTuple(i, vec); @@ -176,9 +176,9 @@ void Foam::vtkPV3Foam::convertPointField { Type t = tf[addPointCellLabels_[api]]; - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } pointData->InsertTuple(i++, vec); @@ -190,9 +190,9 @@ void Foam::vtkPV3Foam::convertPointField { Type t = interpolatePointToCell(ptf, addPointCellLabels_[api]); - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } pointData->InsertTuple(i++, vec); @@ -204,69 +204,6 @@ void Foam::vtkPV3Foam::convertPointField } -template<> -void Foam::vtkPV3Foam::convertPointField -( - const GeometricField<scalar, pointPatchField, pointMesh>& psf, - const GeometricField<scalar, fvPatchField, volMesh>& sf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo -) -{ - vtkUnstructuredGrid* internalMesh = vtkUnstructuredGrid::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *pointData = vtkFloatArray::New(); - pointData->SetNumberOfTuples(psf.size() + addPointCellLabels_.size()); - pointData->SetNumberOfComponents(1); - pointData->Allocate(psf.size()); - pointData->SetName(sf.name().c_str()); - - for (int i=0; i<psf.size(); i++) - { - pointData->InsertComponent(i, 0, psf[i]); - } - - label i = psf.size(); - - if (&sf != &GeometricField<scalar, fvPatchField, volMesh>::null()) - { - forAll(addPointCellLabels_, api) - { - pointData->InsertComponent - ( - i++, - 0, - sf[addPointCellLabels_[api]] - ); - } - } - else - { - forAll(addPointCellLabels_, api) - { - pointData->InsertComponent - ( - i++, - 0, - interpolatePointToCell(psf, addPointCellLabels_[api]) - ); - } - } - - internalMesh->GetPointData()->AddArray(pointData); - if (!internalMesh->GetPointData()->GetScalars()) - { - internalMesh->GetPointData()->SetScalars(pointData); - } - - pointData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H index 4fcdd1725e2e7bb63169f5edb290fa0f06da31fc..ff2a1d8bcef1fb5614cb0a26b4ee639ec2ad83f5 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamConvertVolFields.H @@ -372,6 +372,8 @@ void Foam::vtkPV3Foam::convertVolField labelList& superCells ) { + const label nComp = pTraits<Type>::nComponents; + vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::SafeDownCast ( GetDataSetFromBlock(output, selector, datasetNo) @@ -379,8 +381,8 @@ void Foam::vtkPV3Foam::convertVolField vtkFloatArray* celldata = vtkFloatArray::New(); celldata->SetNumberOfTuples(superCells.size()); - celldata->SetNumberOfComponents(Type::nComponents); - celldata->Allocate(Type::nComponents*superCells.size()); + celldata->SetNumberOfComponents(nComp); + celldata->Allocate(nComp*superCells.size()); celldata->SetName(tf.name().c_str()); if (debug) @@ -388,17 +390,17 @@ void Foam::vtkPV3Foam::convertVolField Info<< "converting vol<Type>Field: " << tf.name() << nl << "field size = " << tf.size() << nl << "nTuples = " << superCells.size() << nl - << "nComps = " << Type::nComponents << endl; + << "nComp = " << nComp << endl; } - float vec[Type::nComponents]; + float vec[nComp]; forAll(superCells, scI) { const Type& t = tf[superCells[scI]]; - for (direction d=0; d<Type::nComponents; d++) + for (direction d=0; d<nComp; d++) { - vec[d] = t[d]; + vec[d] = component(t, d); } celldata->InsertTuple(scI, vec); @@ -409,50 +411,6 @@ void Foam::vtkPV3Foam::convertVolField } -template<> -void Foam::vtkPV3Foam::convertVolField -( - const GeometricField<scalar, fvPatchField, volMesh>& sf, - vtkMultiBlockDataSet* output, - const selectionInfo& selector, - const label datasetNo, - labelList& superCells -) -{ - vtkUnstructuredGrid* vtkmesh = vtkUnstructuredGrid::SafeDownCast - ( - GetDataSetFromBlock(output, selector, datasetNo) - ); - - vtkFloatArray *cellData = vtkFloatArray::New(); - cellData->SetNumberOfTuples(superCells.size()); - cellData->SetNumberOfComponents(1); - cellData->Allocate(superCells.size()); - cellData->SetName(sf.name().c_str()); - - if (debug) - { - Info<< "converting volScalarField: " << sf.name() << nl - << "field size = " << sf.size() << nl - << "nTuples = " << superCells.size() << nl - << "nComps = 1" << endl; - } - - forAll(superCells, scI) - { - cellData->InsertComponent(scI, 0, sf[superCells[scI]]); - } - - vtkmesh->GetCellData()->AddArray(cellData); - if (!vtkmesh->GetCellData()->GetScalars()) - { - vtkmesh->GetCellData()->SetScalars(cellData); - } - - cellData->Delete(); -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C index c1babdcdc989d454c716ab400f6e0775ff2276e9..e7e4ac9106610c84edfe456ab19b65c29d1c71df 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdate.C @@ -114,6 +114,12 @@ void Foam::vtkPV3Foam::updateVolFields } volPointInterpolation pInterp(mesh, pMesh); +/* + convertVolFields<Foam::label> + ( + mesh, pInterp, objects, arraySelection, output + ); +*/ convertVolFields<Foam::scalar> ( mesh, pInterp, objects, arraySelection, output @@ -159,7 +165,12 @@ void Foam::vtkPV3Foam::updatePointFields { Info<< "converting Foam point fields" << endl; } - +/* + convertPointFields<Foam::label> + ( + mesh, objects, arraySelection, output + ); +*/ convertPointFields<Foam::scalar> ( mesh, objects, arraySelection, output @@ -213,6 +224,11 @@ void Foam::vtkPV3Foam::updateLagrangianFields Info<< "converting Foam Lagrangian fields" << endl; } + convertLagrangianFields<Foam::label> + ( + mesh, objects, arraySelection, output + ); + convertLagrangianFields<Foam::scalar> ( mesh, objects, arraySelection, output diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C index c6a520f6734e8e69eb6051db06e477960cba3912..d86a8a90dc56ba33a316e1051393c0103ffbd2cf 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformation.C @@ -108,15 +108,13 @@ void Foam::vtkPV3Foam::updateInformationLagrangian() { if (debug) { - Info<< "entered Foam::vtkPV3Foam::updateInformationLagrangian at timePath " - << dbPtr_->timePath()/"lagrangian" << endl; + Info<< "entered Foam::vtkPV3Foam::updateInformationLagrangian " + << "at timePath " << dbPtr_->timePath()/"lagrangian" << endl; } vtkDataArraySelection* arraySelection = reader_->GetRegionSelection(); // Search for list of lagrangian objects for this time - // IOobjectList lagrangianObjects(dbPtr(), dbPtr_().timeName(), "lagrangian"); - fileNameList cloudDirs ( readDir(dbPtr_->timePath()/"lagrangian", fileName::DIRECTORY) @@ -144,7 +142,11 @@ void Foam::vtkPV3Foam::updateInformationLagrangian() } else { - Info<<"no cloudDirs @ " << dbPtr_->timePath()/"lagrangian" << endl; + if (debug) + { + Info<<"no clouds identified in " + << dbPtr_->timePath()/"lagrangian" << endl; + } } } @@ -159,7 +161,7 @@ void Foam::vtkPV3Foam::updateInformationPatches() vtkDataArraySelection *arraySelection = reader_->GetRegionSelection(); - //- Read patches + // Read patches polyBoundaryMeshEntries patchEntries ( IOobject @@ -182,7 +184,7 @@ void Foam::vtkPV3Foam::updateInformationPatches() { label nFaces(readLabel(patchEntries[entryI].dict().lookup("nFaces"))); - //- Valid patch if nFace > 0 + // Valid patch if nFace > 0 if (nFaces) { // Add patch to GUI region list @@ -208,7 +210,7 @@ void Foam::vtkPV3Foam::updateInformationZones() vtkDataArraySelection *arraySelection = reader_->GetRegionSelection(); - //- Read cell zone information + // Read cell zone information { zonesEntries zones ( @@ -240,7 +242,7 @@ void Foam::vtkPV3Foam::updateInformationZones() superCellZonesCells_.setSize(selectInfoCellZones_.size()); } - //- Read face zone information + // Read face zone information { zonesEntries zones ( @@ -270,7 +272,7 @@ void Foam::vtkPV3Foam::updateInformationZones() } } - //- Read point zone information + // Read point zone information { zonesEntries zones ( @@ -373,6 +375,11 @@ void Foam::vtkPV3Foam::updateInformationLagrangianFields() "lagrangian"/cloudName_ ); + addFields<IOField<label> > + ( + arraySelection, + objects + ); addFields<IOField<scalar> > ( arraySelection, diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H index d93a88012899ef51f853d005f0904605bacd83f1..91571ca5f4b276f869b7baecb73d3c936acf6cd6 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInformationFields.H @@ -55,6 +55,13 @@ void Foam::vtkPV3Foam::updateInformationFields // Populate the GUI volume/point field arrays //- Add volume fields to GUI +/* + addFields<GeometricField<label, patchType, meshType> > + ( + arraySelection, + objects + ); +*/ addFields<GeometricField<scalar, patchType, meshType> > ( arraySelection, diff --git a/bin/paraFoam b/bin/paraFoam index e32dd57964de94c498089cfc8c7c95cda26b683e..93fb4cf03b12210d8c008ca805eaccb4dceeec7c 100755 --- a/bin/paraFoam +++ b/bin/paraFoam @@ -77,8 +77,8 @@ do [ -s "$parentDir/$check" ] || usage "file does not exist: '$parentDir/$check'" done -caseFile="$caseName.foam" -# caseFile="$caseName.OpenFOAM" +#caseFile="$caseName.foam" +caseFile="$caseName.OpenFOAM" case "$ParaView_VERSION" in 2*) diff --git a/doc/Doxygen/Doxyfile b/doc/Doxygen/Doxyfile index a0d244d89a31b621c2fef9281724cd8b1075615d..f5ab1204243274fe5fd6471ea8031c14dee007ac 100644 --- a/doc/Doxygen/Doxyfile +++ b/doc/Doxygen/Doxyfile @@ -1244,7 +1244,7 @@ DOTFILE_DIRS = # The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the number +# visualized by representing a node as a red box. Note that if the number # of direct children of the root node in a graph is already larger than # MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. diff --git a/src/Allwmake b/src/Allwmake index f7b68983c6fa2882aa2a5c6c16f2e2c43597a597..08bb914b740eff477bdfe8019cf9bb665b0f4493 100755 --- a/src/Allwmake +++ b/src/Allwmake @@ -31,6 +31,7 @@ wmake libso randomProcesses ( cd turbulenceModels && ./Allwmake ) ( cd lagrangian && ./Allwmake ) ( cd postProcessing && ./Allwmake ) +( cd conversion && ./Allwmake ) wmake libso autoMesh wmake libso errorEstimation diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C index 7ec434aac811bbe755afdf7d1cd14b1d923ad7dd..8a38ff9ba24ca1092d4563f1ef62338eb5d0afa1 100644 --- a/src/OpenFOAM/db/dictionary/dictionary.C +++ b/src/OpenFOAM/db/dictionary/dictionary.C @@ -210,7 +210,7 @@ const Foam::entry& Foam::dictionary::lookupEntry ( "dictionary::lookupEntry(const word& keyword) const", *this - ) << " keyword " << keyword << " is undefined in dictionary " + ) << "keyword " << keyword << " is undefined in dictionary " << name() << exit(FatalIOError); } @@ -268,7 +268,7 @@ const Foam::dictionary& Foam::dictionary::subDict(const word& keyword) const ( "dictionary::subDict(const word& keyword) const", *this - ) << " keyword " << keyword << " is undefined in dictionary " + ) << "keyword " << keyword << " is undefined in dictionary " << name() << exit(FatalIOError); } @@ -285,7 +285,7 @@ Foam::dictionary& Foam::dictionary::subDict(const word& keyword) ( "dictionary::subDict(const word& keyword)", *this - ) << " keyword " << keyword << " is undefined in dictionary " + ) << "keyword " << keyword << " is undefined in dictionary " << name() << exit(FatalIOError); } @@ -479,7 +479,7 @@ bool Foam::dictionary::changeKeyword } else { - WarningIn("dictionary::changeKeyword(const word& old, const word& new)") + WarningIn("dictionary::changeKeyword(const word&, const word&)") << "cannot rename keyword "<< oldKeyword << " to existing keyword " << newKeyword << " in dictionary " << name() << endl; diff --git a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C index b2074123a94bc6afbeb464c3e3459d08dc6df042..2ce7ada7ea1ce5445da016c0e5f064d13322df43 100644 --- a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C +++ b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.C @@ -28,8 +28,6 @@ License #include "Time.H" #include "IFstream.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class Type> @@ -57,8 +55,7 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField<Type>(ptf, p, iF, mapper), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -73,8 +70,7 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField<Type>(p, iF), - timeDataFile_(dict.lookup("timeDataFile")), - timeSeries_(word(dict.lookup("timeBounding"))) + timeSeries_(this->db(), dict) { updateCoeffs(); } @@ -89,8 +85,7 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField<Type>(ptf), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -104,67 +99,12 @@ timeVaryingUniformFixedValuePointPatchField ) : fixedValuePointPatchField<Type>(ptf, iF), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template<class Type> -Type -Foam::timeVaryingUniformFixedValuePointPatchField<Type>:: -currentValue() -{ - if (timeSeries_.size() == 0) - { - fileName fName(timeDataFile_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValuePointPatchField" - "::currentValue()" - ) << "timeDataFile not specified for Patch " - << this->patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = this->db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> timeSeries_; - timeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - timeSeries_.check(); - } - - if (timeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValuePointPatchField" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return timeSeries_(this->db().time().timeOutputValue()); -} - - template<class Type> void Foam::timeVaryingUniformFixedValuePointPatchField<Type>::updateCoeffs() { @@ -173,7 +113,7 @@ void Foam::timeVaryingUniformFixedValuePointPatchField<Type>::updateCoeffs() return; } - this->operator==(currentValue()); + this->operator==(timeSeries_(this->db().time().timeOutputValue())); fixedValuePointPatchField<Type>::updateCoeffs(); } @@ -182,13 +122,8 @@ template<class Type> void Foam::timeVaryingUniformFixedValuePointPatchField<Type>::write(Ostream& os) const { fixedValuePointPatchField<Type>::write(os); - os.writeKeyword("timeDataFile") - << timeDataFile_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; + timeSeries_.write(os); } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - // ************************************************************************* // diff --git a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H index eee6a444399932592fdf42e9008a065b5e4640a7..e13150034d2be93b6c38efff58bd52dd7b870fb6 100644 --- a/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H +++ b/src/OpenFOAM/fields/pointPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValuePointPatchField.H @@ -40,7 +40,7 @@ SourceFiles #define timeVaryingUniformFixedValuePointPatchField_H #include "fixedValuePointPatchField.H" -#include "timeSeries.H" +#include "interpolationTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,14 +58,9 @@ class timeVaryingUniformFixedValuePointPatchField { // Private data - //- file containing time/uniformFixedValue - fileName timeDataFile_; - //- the time series being used, including the bounding treatment - timeSeries<Type> timeSeries_; + interpolationTable<Type> timeSeries_; - //- interpolate the value at the current time - Type currentValue(); public: @@ -138,14 +133,8 @@ public: // Access - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return timeSeries_.bounding(); - } - //- Return the time series used - const timeSeries<Type>& timeData() const + const interpolationTable<Type>& timeSeries() const { return timeSeries_; } diff --git a/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C new file mode 100644 index 0000000000000000000000000000000000000000..e2f1f92e7775e837a9822f475258a001a9305332 --- /dev/null +++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.C @@ -0,0 +1,482 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "interpolationTable.H" +#include "IFstream.H" +#include "objectRegistry.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class Type> +Foam::interpolationTable<Type>::interpolationTable() +: + List<Tuple2<scalar, Type> >(), + dict_(dictionary::null), + boundAction_(interpolationTable::WARN), + fileName_("undefined_fileName") +{} + + +template<class Type> +Foam::interpolationTable<Type>::interpolationTable +( + const objectRegistry& obr, + const dictionary& dict +) +: + List<Tuple2<scalar, Type> >(), + dict_(dict), + boundAction_(wordToBoundAction(dict.lookup("boundAction"))), + fileName_(dict.lookup("fileName")) +{ + fileName_.expand(); + + // Correct for relative path + if (fileName_[0] != '/') + { + fileName_ = obr.db().path()/fileName_; + } + + // Read data from file + IFstream(fileName_)() >> *this; + + // Check that the data is okay + check(); + + if (this->size() == 0) + { + FatalErrorIn + ( + "Foam::interpolationTable<Type>::interpolationTable" + "(const dictionary& dict)" + ) << "table is empty" << nl + << exit(FatalError); + } +} + + +template<class Type> +Foam::interpolationTable<Type>::interpolationTable +( + const interpolationTable& interpTable +) +: + List<Tuple2<scalar, Type> >(interpTable), + dict_(interpTable.dict_), + boundAction_(interpTable.boundAction_), + fileName_(interpTable.fileName_) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +template<class Type> +Foam::interpolationTable<Type>::~interpolationTable() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class Type> +Foam::word Foam::interpolationTable<Type>::boundActionToWord +( + const boundActions& bound +) const +{ + word enumName("warn"); + + switch (bound) + { + case interpolationTable::ERROR: + { + enumName = "error"; + break; + } + case interpolationTable::WARN: + { + enumName = "warn"; + break; + } + case interpolationTable::CLAMP: + { + enumName = "clamp"; + break; + } + case interpolationTable::REPEAT: + { + enumName = "repeat"; + break; + } + } + + return enumName; +} + + +template<class Type> +typename Foam::interpolationTable<Type>::boundActions +Foam::interpolationTable<Type>::wordToBoundAction +( + const word& bound +) const +{ + if (bound == "error") + { + return interpolationTable::ERROR; + } + else if (bound == "warn") + { + return interpolationTable::WARN; + } + else if (bound == "clamp") + { + return interpolationTable::CLAMP; + } + else if (bound == "repeat") + { + return interpolationTable::REPEAT; + } + else + { + WarningIn + ( + "Foam::interpolationTable<Type>::wordToBoundAction(const word&)" + ) << "bad bounding specifier " << bound << " using 'warn'" << endl; + + return interpolationTable::WARN; + } +} + + +template<class Type> +void Foam::interpolationTable<Type>::check() const +{ + label n = size(); + scalar prevValue = List<Tuple2<scalar, Type> >::operator[](0).first(); + + for (label i=1; i<n; ++i) + { + const scalar currValue = + List<Tuple2<scalar, Type> >::operator[](i).first(); + + // avoid duplicate values (divide-by-zero error) + if (currValue <= prevValue) + { + FatalErrorIn + ( + "Foam::interpolationTable<Type>::checkOrder() const" + ) << "out-of-order value: " + << currValue << " at index " << i << nl + << exit(FatalError); + } + prevValue = currValue; + } +} + + +template<class Type> +typename Foam::interpolationTable<Type>::boundActions +Foam::interpolationTable<Type>::boundAction +( + const boundActions& bound +) +{ + boundActions prev = boundAction_; + boundAction_ = bound; + return prev; +} + + +template<class Type> +void Foam::interpolationTable<Type>::write(Ostream& os) const +{ + os.writeKeyword("fileName") + << fileName_ << token::END_STATEMENT << nl; + os.writeKeyword("boundAction") + << boundActionToWord(boundAction_) << token::END_STATEMENT << nl; +} + + +// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // + +template<class Type> +const Foam::Tuple2<Foam::scalar, Type>& +Foam::interpolationTable<Type>::operator[](const label i) const +{ + label ii = i; + label n = size(); + + if (n <= 1) + { + ii = 0; + } + else if (ii < 0) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const label) const" + ) << "index (" << ii << ") underflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const label) const" + ) << "index (" << ii << ") underflow" << nl + << " Continuing with the first entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + ii = 0; + break; + } + case interpolationTable::REPEAT: + { + while (ii < 0) + { + ii += n; + } + break; + } + } + } + else if (ii >= n) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const label) const" + ) << "index (" << ii << ") overflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const label) const" + ) << "index (" << ii << ") overflow" << nl + << " Continuing with the last entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + ii = n - 1; + break; + } + case interpolationTable::REPEAT: + { + while (ii >= n) + { + ii -= n; + } + break; + } + } + } + + return List<Tuple2<scalar, Type> >::operator[](ii); +} + + +template<class Type> +Type Foam::interpolationTable<Type>::operator()(const scalar value) const +{ + label n = size(); + + if (n <= 1) + { + return List<Tuple2<scalar, Type> >::operator[](0).second(); + } + + scalar minLimit = List<Tuple2<scalar, Type> >::operator[](0).first(); + scalar maxLimit = List<Tuple2<scalar, Type> >::operator[](n-1).first(); + scalar lookupValue = value; + + if (lookupValue < minLimit) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const scalar) const" + ) << "value (" << lookupValue << ") underflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const scalar) const" + ) << "value (" << lookupValue << ") underflow" << nl + << " Continuing with the first entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + return List<Tuple2<scalar, Type> >::operator[](0).second(); + break; + } + case interpolationTable::REPEAT: + { + // adjust lookupValue to >= 0 + while (lookupValue < 0) + { + lookupValue += maxLimit; + } + break; + } + } + } + else if (lookupValue >= maxLimit) + { + switch (boundAction_) + { + case interpolationTable::ERROR: + { + FatalErrorIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const label) const" + ) << "value (" << lookupValue << ") overflow" << nl + << exit(FatalError); + break; + } + case interpolationTable::WARN: + { + WarningIn + ( + "Foam::interpolationTable<Type>::operator[]" + "(const label) const" + ) << "value (" << lookupValue << ") overflow" << nl + << " Continuing with the last entry" + << endl; + // fall-through to 'CLAMP' + } + case interpolationTable::CLAMP: + { + return List<Tuple2<scalar, Type> >::operator[](n-1).second(); + break; + } + case interpolationTable::REPEAT: + { + // adjust lookupValue <= maxLimit + while (lookupValue > maxLimit) + { + lookupValue -= maxLimit; + } + break; + } + } + } + + label lo = 0; + label hi = 0; + + // look for the correct range + for (label i = 0; i < n; ++i) + { + if (lookupValue >= List<Tuple2<scalar, Type> >::operator[](i).first()) + { + lo = hi = i; + } + else + { + hi = i; + break; + } + } + + if (lo == hi) + { + // we are at the end of the table - or there is only a single entry + return List<Tuple2<scalar, Type> >::operator[](hi).second(); + } + else if (hi == 0) + { + // this treatment should should only occur under these conditions: + // -> the 'REPEAT' treatment + // -> (0 <= value <= minLimit) + // -> minLimit > 0 + // Use the value at maxLimit as the value for value=0 + lo = n - 1; + + return + ( + List<Tuple2<scalar, Type> >::operator[](lo).second() + + ( + List<Tuple2<scalar, Type> >::operator[](hi).second() + - List<Tuple2<scalar, Type> >::operator[](lo).second() + ) + *(lookupValue / minLimit) + ); + } + else + { + // normal interpolation + return + ( + List<Tuple2<scalar, Type> >::operator[](lo).second() + + ( + List<Tuple2<scalar, Type> >::operator[](hi).second() + - List<Tuple2<scalar, Type> >::operator[](lo).second() + ) + *( + lookupValue + - List<Tuple2<scalar, Type> >::operator[](lo).first() + ) + /( + List<Tuple2<scalar, Type> >::operator[](hi).first() + - List<Tuple2<scalar, Type> >::operator[](lo).first() + ) + ); + } +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/interpolations/timeSeries/timeSeries.H b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H similarity index 57% rename from src/OpenFOAM/interpolations/timeSeries/timeSeries.H rename to src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H index 09433e3ff996492995e3324e46522c501c609652..207e19f91cc34ac8abebadac796e36492069e2a2 100644 --- a/src/OpenFOAM/interpolations/timeSeries/timeSeries.H +++ b/src/OpenFOAM/interpolations/interpolationTable/interpolationTable.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::timeSeries + Foam::interpolationTable Description A list of times and values. @@ -40,12 +40,12 @@ Note - Accessing a list with a single element will always return the same value. SourceFiles - timeSeries.C + interpolationTable.C \*---------------------------------------------------------------------------*/ -#ifndef timeSeries_H -#define timeSeries_H +#ifndef interpolationTable_H +#define interpolationTable_H #include "List.H" #include "Tuple2.H" @@ -55,21 +55,23 @@ SourceFiles namespace Foam { +class objectRegistry; + /*---------------------------------------------------------------------------*\ - Class timeSeries Declaration + Class interpolationTable Declaration \*---------------------------------------------------------------------------*/ -template<class T> -class timeSeries +template<class Type> +class interpolationTable : - public List<Tuple2<scalar, T> > + public List<Tuple2<scalar, Type> > { public: // Public data types - //- Enumeration for handling out-of-bound times - enum bounds + //- Enumeration for handling out-of-bound values + enum boundActions { ERROR, /*!< Exit with a FatalError */ WARN, /*!< Issue warning and clamp value (default) */ @@ -77,86 +79,96 @@ public: REPEAT /*!< Treat as a repeating list */ }; + private: // Private data - //- Enumeration for handling out-of-bound times - bounds bounding_; + //- Parent dictionary + const dictionary& dict_; + + //- Enumeration for handling out-of-bound values + boundActions boundAction_; + + //- File name + fileName fileName_; + public: // Constructors - //- Construct null, optionally with a given bounding - timeSeries(const bounds = timeSeries::WARN); + //- Construct null + interpolationTable(); - //- Construct null with a given bounding - timeSeries(const word&); + //- Construct from objectRegistry and dictionary + interpolationTable(const objectRegistry& obr, const dictionary& dict); - //- Construct from Istream, optionally with a given bounding - timeSeries(Istream&, const bounds = timeSeries::WARN); + //- Construct copy + interpolationTable(const interpolationTable& interpTable); - //- Construct from Istream with a given bounding - timeSeries(Istream&, const word&); - // Destructor + //- Destructor + ~interpolationTable(); - ~timeSeries(); // Member Functions - // Access + // Access - //- Return the size - label size() const - { - return List<Tuple2<scalar, T> >::size(); - } + //- Return the size + label size() const + { + return List<Tuple2<scalar, Type> >::size(); + } - //- Return the out-of-bounds treatment as a word - word bounding() const; + //- Return the out-of-bounds treatment as a word + word boundActionToWord(const boundActions& bound) const; - // Check + //- Return the out-of-bounds treatment as an enumeration + boundActions wordToBoundAction(const word& bound) const; - //- Check that list is monotonically increasing - // Exit with a FatalError if there is a problem - void check() const; - // Edit + // Check + + //- Check that list is monotonically increasing + // Exit with a FatalError if there is a problem + void check() const; - //- Set the out-of-bounds treatment from enum, return previous setting - bounds bounding(const bounds& bound) - { - bounds prev = bounding_; - bounding_ = bound; - return prev; - } - //- Set the out-of-bounds treatment from word - void bounding(const word& bound); + // Edit - // Member Operators + //- Set the out-of-bounds treatment from enum, return previous + // setting + boundActions boundAction(const boundActions& bound); - //- Return an element of constant Tuple2<scalar, T> - const Tuple2<scalar, T>& operator[](const label) const; - //- Return an interpolated value - T operator()(const scalar) const; + // Member Operators + //- Return an element of constant Tuple2<scalar, Type> + const Tuple2<scalar, Type>& operator[](const label) const; + + //- Return an interpolated value + Type operator()(const scalar) const; + + + // I-O + + //- Write + void write(Ostream& os) const; }; + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #ifdef NoRepository -# include "timeSeries.C" +# include "interpolationTable.C" #endif #endif + // ************************************************************************* // diff --git a/src/OpenFOAM/interpolations/timeSeries/timeSeries.C b/src/OpenFOAM/interpolations/timeSeries/timeSeries.C deleted file mode 100644 index a886251c677b9cb85b7d49182d818d792c24485e..0000000000000000000000000000000000000000 --- a/src/OpenFOAM/interpolations/timeSeries/timeSeries.C +++ /dev/null @@ -1,402 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "timeSeries.H" -#include "Istream.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<typename T> -Foam::timeSeries<T>::timeSeries(const bounds bound) -: - List<Tuple2<scalar, T> >(), - bounding_(bound) -{} - - -template<typename T> -Foam::timeSeries<T>::timeSeries(const word& bound) -: - List<Tuple2<scalar, T> >(), - bounding_(timeSeries::WARN) -{ - bounding(bound); -} - - -template<typename T> -Foam::timeSeries<T>::timeSeries(Istream& is, const bounds bound) -: - List<Tuple2<scalar, T> >(is), - bounding_(bound) -{} - - -template<typename T> -Foam::timeSeries<T>::timeSeries(Istream& is, const word& bound) -: - List<Tuple2<scalar, T> >(is), - bounding_(timeSeries::WARN) -{ - bounding(bound); -} - - -// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<typename T> -Foam::timeSeries<T>::~timeSeries() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<typename T> -Foam::word Foam::timeSeries<T>::bounding() const -{ - word enumName("warn"); - - switch (bounding_) - { - case timeSeries::ERROR: - enumName = "error"; - break; - - case timeSeries::WARN: - enumName = "warn"; - break; - - case timeSeries::CLAMP: - enumName = "clamp"; - break; - - case timeSeries::REPEAT: - enumName = "repeat"; - break; - } - - return enumName; -} - - -template<typename T> -void Foam::timeSeries<T>::bounding(const word& bound) -{ - if (bound == "error") - { - bounding_ = timeSeries::ERROR; - } - else if (bound == "warn") - { - bounding_ = timeSeries::WARN; - } - else if (bound == "clamp") - { - bounding_ = timeSeries::CLAMP; - } - else if (bound == "repeat") - { - bounding_ = timeSeries::REPEAT; - } - else - { - WarningIn("Foam::timeSeries<T>::boundingEnum(const word&)") - << "bad bounding specifier " << bound << " using 'warn'" << endl; - - bounding_ = timeSeries::WARN; - } -} - - -template<typename T> -void Foam::timeSeries<T>::check() const -{ - label n = size(); - scalar prevTime = List<Tuple2<scalar, T> >::operator[](0).first(); - - for (label i = 1; i < n; ++i) - { - const scalar currTime = List<Tuple2<scalar, T> >::operator[](i).first(); - - // avoid duplicate times (divide-by-zero error) - if (currTime <= prevTime) - { - FatalErrorIn - ( - "Foam::timeSeries<T>::checkOrder() const" - ) << "out-of-order time: " - << currTime << " at index " << i << nl - << exit(FatalError); - } - prevTime = currTime; - } -} - - -// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // - - -template<typename T> -const Foam::Tuple2<Foam::scalar, T>& -Foam::timeSeries<T>::operator[](const label i) const -{ - label ii = i; - label n = size(); - - if (n <= 1) - { - ii = 0; - } - else if (ii < 0) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries<T>::operator[](const label) const" - ) << "index (" << ii << ") underflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries<T>::operator[](const label) const" - ) << "index (" << ii << ") underflow" << nl - << " Continuing with the first entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - ii = 0; - break; - - case timeSeries::REPEAT: - while (ii < 0) - { - ii += n; - } - break; - } - } - else if (ii >= n) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries<T>::operator[](const label) const" - ) << "index (" << ii << ") overflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries<T>::operator[](const label) const" - ) << "index (" << ii << ") overflow" << nl - << " Continuing with the last entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - ii = n - 1; - break; - - case timeSeries::REPEAT: - while (ii >= n) - { - ii -= n; - } - break; - } - } - - return List<Tuple2<scalar, T> >::operator[](ii); -} - - -template<typename T> -T Foam::timeSeries<T>::operator()(const scalar timeValue) const -{ - label n = size(); - - if (n <= 1) - { - return List<Tuple2<scalar, T> >::operator[](0).second(); - } - - scalar minTime = List<Tuple2<scalar, T> >::operator[](0).first(); - scalar maxTime = List<Tuple2<scalar, T> >::operator[](n-1).first(); - scalar lookupTime = timeValue; - - if (lookupTime < minTime) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries<T>::operator[](const scalar) const" - ) << "time (" << lookupTime << ") underflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries<T>::operator[](const scalar) const" - ) << "time (" << lookupTime << ") underflow" << nl - << " Continuing with the first entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - return List<Tuple2<scalar, T> >::operator[](0).second(); - break; - - case timeSeries::REPEAT: - // adjust lookupTime to >= 0 - while (lookupTime < 0) - { - lookupTime += maxTime; - } - break; - } - } - else if (lookupTime >= maxTime) - { - switch (bounding_) - { - case timeSeries::ERROR: - FatalErrorIn - ( - "Foam::timeSeries<T>::operator[](const label) const" - ) << "time (" << lookupTime << ") overflow" << nl - << exit(FatalError); - break; - - case timeSeries::WARN: - WarningIn - ( - "Foam::timeSeries<T>::operator[](const label) const" - ) << "time (" << lookupTime << ") overflow" << nl - << " Continuing with the last entry" - << endl; - // fall-through to 'CLAMP' - - case timeSeries::CLAMP: - return List<Tuple2<scalar, T> >::operator[](n-1).second(); - break; - - case timeSeries::REPEAT: - // adjust lookupTime <= maxTime - while (lookupTime > maxTime) - { - lookupTime -= maxTime; - } - break; - } - } - - label lo = 0; - label hi = 0; - - // look for the correct range - for (label i = 0; i < n; ++i) - { - if (lookupTime >= List<Tuple2<scalar, T> >::operator[](i).first()) - { - lo = hi = i; - } - else - { - hi = i; - break; - } - } - - if (lo == hi) - { - // we are at the end of the table - or there is only a single entry - return List<Tuple2<scalar, T> >::operator[](hi).second(); - } - else if (hi == 0) - { - // this treatment should should only occur under these condition: - // -> the 'REPEAT' treatment - // -> (0 <= time <= minTime) - // -> minTime > 0 - // Use the value at maxTime as the value for time=0 - lo = n - 1; - - return - ( - List<Tuple2<scalar, T> >::operator[](lo).second() - + - ( - List<Tuple2<scalar, T> >::operator[](hi).second() - - List<Tuple2<scalar, T> >::operator[](lo).second() - ) - * (lookupTime / minTime) - ); - } - else - { - // normal interpolation - return - ( - List<Tuple2<scalar, T> >::operator[](lo).second() - + - ( - List<Tuple2<scalar, T> >::operator[](hi).second() - - List<Tuple2<scalar, T> >::operator[](lo).second() - ) - * - ( - lookupTime - - List<Tuple2<scalar, T> >::operator[](lo).first() - ) - / - ( - List<Tuple2<scalar, T> >::operator[](hi).first() - - List<Tuple2<scalar, T> >::operator[](lo).first() - ) - ); - } -} - - -// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/label/label.H b/src/OpenFOAM/primitives/label/label.H index de4a67fc14f5d7198eaab6b4535e2da1b89231bf..ee18f569ade2a5e52a29e1bdcfe1f95826cdb06e 100644 --- a/src/OpenFOAM/primitives/label/label.H +++ b/src/OpenFOAM/primitives/label/label.H @@ -119,6 +119,7 @@ namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "pTraits.H" +#include "direction.H" namespace Foam { @@ -202,6 +203,16 @@ MAXMIN(long, int, long) MAXMIN(long long, int, long long) MAXMIN(long long, long long, int) +inline label& setComponent(label& l, const direction) +{ + return l; +} + +inline label component(const label l, const direction) +{ + return l; +} + inline label mag(const label l) { return ::abs(l); diff --git a/src/conversion/Allwmake b/src/conversion/Allwmake new file mode 100755 index 0000000000000000000000000000000000000000..72e9c2b141c710000251e401749d7e614ff76963 --- /dev/null +++ b/src/conversion/Allwmake @@ -0,0 +1,4 @@ +#!/bin/sh +set -x + +wmake libso diff --git a/src/conversion/Make/files b/src/conversion/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..435c341cd3c800a2db6c43d24d560631c58afb43 --- /dev/null +++ b/src/conversion/Make/files @@ -0,0 +1,3 @@ +polyDualMesh/polyDualMesh.C + +LIB = $(FOAM_LIBBIN)/libconversion diff --git a/src/conversion/Make/options b/src/conversion/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..4b2f0a059fbac055ee17d31b510b95445907d34c --- /dev/null +++ b/src/conversion/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/meshTools/lnInclude + +LIB_LIBS = \ + -lmeshTools diff --git a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.C b/src/conversion/polyDualMesh/polyDualMesh.C similarity index 100% rename from applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.C rename to src/conversion/polyDualMesh/polyDualMesh.C diff --git a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.H b/src/conversion/polyDualMesh/polyDualMesh.H similarity index 100% rename from applications/utilities/mesh/conversion/polyDualMesh/polyDualMesh.H rename to src/conversion/polyDualMesh/polyDualMesh.H diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C index 6a6eb7f57b0d26b074eb89d97f639210bebd9138..d99e56209dcb23db76a5654c4c0b7c1130f041c5 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C @@ -50,15 +50,15 @@ namespace Foam { defineTypeNameAndDebug(hexRef8, 0); - // Reduction class. If x and y are not equal assign value. + //- Reduction class. If x and y are not equal assign value. template< int value > class ifEqEqOp { public: void operator()( label& x, const label& y ) const { - x = (x==y) ? x:value; - } + x = (x==y) ? x:value; + } }; } diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index d0e560c73b995f7119c7741ef86f4c906ff0c1a9..d4a3e0ff78e55c5fa2cdfdeccfdd6682511565eb 100644 --- a/src/finiteVolume/Make/files +++ b/src/finiteVolume/Make/files @@ -78,7 +78,7 @@ $(derivedFvPatchFields)/freestream/freestreamFvPatchFields.C $(derivedFvPatchFields)/freestreamPressure/freestreamPressureFvPatchScalarField.C $(derivedFvPatchFields)/inletOutlet/inletOutletFvPatchFields.C $(derivedFvPatchFields)/inletOutletTotalTemperature/inletOutletTotalTemperatureFvPatchScalarField.C -$(derivedFvPatchFields)/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C +$(derivedFvPatchFields)/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C $(derivedFvPatchFields)/movingWallVelocity/movingWallVelocityFvPatchVectorField.C $(derivedFvPatchFields)/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C $(derivedFvPatchFields)/outletInlet/outletInletFvPatchFields.C @@ -96,7 +96,7 @@ $(derivedFvPatchFields)/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVe $(derivedFvPatchFields)/syringePressure/syringePressureFvPatchScalarField.C $(derivedFvPatchFields)/timeVaryingMappedFixedValue/AverageIOFields.C $(derivedFvPatchFields)/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchFields.C -$(derivedFvPatchFields)/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C +$(derivedFvPatchFields)/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C $(derivedFvPatchFields)/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchFields.C $(derivedFvPatchFields)/totalPressure/totalPressureFvPatchScalarField.C $(derivedFvPatchFields)/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C diff --git a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C similarity index 75% rename from src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C rename to src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C index 393cac55d0b994fe33c4e4a25e0112dffe79159d..c3427b4bded0a4c28ae931f79021ee374d885ddd 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ -#include "massFlowRateInletVelocityFvPatchVectorField.H" +#include "flowRateInletVelocityFvPatchVectorField.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" @@ -33,38 +33,40 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( const fvPatch& p, const DimensionedField<vector, volMesh>& iF ) : fixedValueFvPatchField<vector>(p, iF), - massFlowRate_(0), + flowRate_(0), phiName_("phi"), rhoName_("rho") {} + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& ptf, + const flowRateInletVelocityFvPatchVectorField& ptf, const fvPatch& p, const DimensionedField<vector, volMesh>& iF, const fvPatchFieldMapper& mapper ) : fixedValueFvPatchField<vector>(ptf, p, iF, mapper), - massFlowRate_(ptf.massFlowRate_), + flowRate_(ptf.flowRate_), phiName_(ptf.phiName_), rhoName_(ptf.rhoName_) {} + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( const fvPatch& p, const DimensionedField<vector, volMesh>& iF, @@ -72,7 +74,7 @@ massFlowRateInletVelocityFvPatchVectorField ) : fixedValueFvPatchField<vector>(p, iF, dict), - massFlowRate_(readScalar(dict.lookup("massFlowRate"))), + flowRate_(readScalar(dict.lookup("flowRate"))), phiName_("phi"), rhoName_("rho") { @@ -87,29 +89,31 @@ massFlowRateInletVelocityFvPatchVectorField } } + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& ptf + const flowRateInletVelocityFvPatchVectorField& ptf ) : fixedValueFvPatchField<vector>(ptf), - massFlowRate_(ptf.massFlowRate_), + flowRate_(ptf.flowRate_), phiName_(ptf.phiName_), rhoName_(ptf.rhoName_) {} + Foam:: -massFlowRateInletVelocityFvPatchVectorField:: -massFlowRateInletVelocityFvPatchVectorField +flowRateInletVelocityFvPatchVectorField:: +flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& ptf, + const flowRateInletVelocityFvPatchVectorField& ptf, const DimensionedField<vector, volMesh>& iF ) : fixedValueFvPatchField<vector>(ptf, iF), - massFlowRate_(ptf.massFlowRate_), + flowRate_(ptf.flowRate_), phiName_(ptf.phiName_), rhoName_(ptf.rhoName_) {} @@ -117,7 +121,7 @@ massFlowRateInletVelocityFvPatchVectorField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::massFlowRateInletVelocityFvPatchVectorField::updateCoeffs() +void Foam::flowRateInletVelocityFvPatchVectorField::updateCoeffs() { if (updated()) { @@ -125,7 +129,7 @@ void Foam::massFlowRateInletVelocityFvPatchVectorField::updateCoeffs() } // a simpler way of doing this would be nice - scalar avgU = -massFlowRate_/gSum(patch().magSf()); + scalar avgU = -flowRate_/gSum(patch().magSf()); vectorField n = patch().nf(); @@ -151,23 +155,23 @@ void Foam::massFlowRateInletVelocityFvPatchVectorField::updateCoeffs() { FatalErrorIn ( - "massFlowRateInletVelocityFvPatchVectorField::updateCoeffs()" + "flowRateInletVelocityFvPatchVectorField::updateCoeffs()" ) << "dimensions of phi are incorrect" << "\n on patch " << this->patch().name() << " of field " << this->dimensionedInternalField().name() << " in file " << this->dimensionedInternalField().objectPath() - << exit(FatalError); + << nl << exit(FatalError); } fixedValueFvPatchField<vector>::updateCoeffs(); } -void Foam::massFlowRateInletVelocityFvPatchVectorField::write(Ostream& os) const +void Foam::flowRateInletVelocityFvPatchVectorField::write(Ostream& os) const { fvPatchField<vector>::write(os); - os.writeKeyword("massFlowRate") << massFlowRate_ + os.writeKeyword("flowRate") << flowRate_ << token::END_STATEMENT << nl; if (phiName_ != "phi") @@ -191,7 +195,7 @@ namespace Foam makePatchTypeField ( fvPatchVectorField, - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H similarity index 70% rename from src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H rename to src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H index 8171e24db6a204f4e3c65dd717066f9f0ad9b507..b0c8de9b2f018be80b6060eb2d87eba3214d2060 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/massFlowRateInletVelocity/massFlowRateInletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H @@ -23,19 +23,22 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::massFlowRateInletVelocityFvPatchVectorField + Foam::flowRateInletVelocityFvPatchVectorField Description - Describes an massflow normal vector boundary condition by its magnitude - as an integral over its area. - The current density is used to correct the velocity. + Describes an volumetric/mass flow normal vector boundary condition by its + magnitude as an integral over its area. + The basis of the patch (volumetric or mass) is determined by the + dimensions of the flux, phi. + The current density is used to correct the velocity when applying the mass + basis. Example of the boundary condition specification: @verbatim inlet { - type massFlowRateInletVelocity; - massFlowRate 0.2; // Mass flow rate [kg/s] + type flowRateInletVelocity; + flowRate 0.2; // Volumetric/mass flow rate [m3/s or kg/s] value uniform (0 0 0); // placeholder } @endverbatim @@ -46,12 +49,12 @@ Note - Strange behaviour with potentialFoam since the U equation is not solved SourceFiles - massFlowRateInletVelocityFvPatchVectorField.C + flowRateInletVelocityFvPatchVectorField.C \*---------------------------------------------------------------------------*/ -#ifndef massFlowRateInletVelocityFvPatchVectorField_H -#define massFlowRateInletVelocityFvPatchVectorField_H +#ifndef flowRateInletVelocityFvPatchVectorField_H +#define flowRateInletVelocityFvPatchVectorField_H #include "fixedValueFvPatchFields.H" @@ -60,17 +63,17 @@ SourceFiles namespace Foam { /*---------------------------------------------------------------------------*\ - Class massFlowRateInletVelocityFvPatch Declaration + Class flowRateInletVelocityFvPatch Declaration \*---------------------------------------------------------------------------*/ -class massFlowRateInletVelocityFvPatchVectorField +class flowRateInletVelocityFvPatchVectorField : public fixedValueFvPatchVectorField { // Private data - //- Inlet integral mass flow rate - scalar massFlowRate_; + //- Inlet integral flow rate + scalar flowRate_; //- Name of the flux transporting the field word phiName_; @@ -82,20 +85,20 @@ class massFlowRateInletVelocityFvPatchVectorField public: //- Runtime type information - TypeName("massFlowRateInletVelocity"); + TypeName("flowRateInletVelocity"); // Constructors //- Construct from patch and internal field - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField<vector, volMesh>& ); //- Construct from patch, internal field and dictionary - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField<vector, volMesh>&, @@ -103,20 +106,20 @@ public: ); //- Construct by mapping given - // massFlowRateInletVelocityFvPatchVectorField + // flowRateInletVelocityFvPatchVectorField // onto a new patch - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField&, + const flowRateInletVelocityFvPatchVectorField&, const fvPatch&, const DimensionedField<vector, volMesh>&, const fvPatchFieldMapper& ); //- Construct as copy - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField& + const flowRateInletVelocityFvPatchVectorField& ); //- Construct and return a clone @@ -124,14 +127,14 @@ public: { return tmp<fvPatchVectorField> ( - new massFlowRateInletVelocityFvPatchVectorField(*this) + new flowRateInletVelocityFvPatchVectorField(*this) ); } //- Construct as copy setting internal field reference - massFlowRateInletVelocityFvPatchVectorField + flowRateInletVelocityFvPatchVectorField ( - const massFlowRateInletVelocityFvPatchVectorField&, + const flowRateInletVelocityFvPatchVectorField&, const DimensionedField<vector, volMesh>& ); @@ -143,7 +146,7 @@ public: { return tmp<fvPatchVectorField> ( - new massFlowRateInletVelocityFvPatchVectorField(*this, iF) + new flowRateInletVelocityFvPatchVectorField(*this, iF) ); } @@ -152,16 +155,16 @@ public: // Access - //- Return the mass flux - scalar massFlowRate() const + //- Return the flux + scalar flowRate() const { - return massFlowRate_; + return flowRate_; } - //- Return reference to the mass flux to allow adjustment - scalar& massFlowRate() + //- Return reference to the flux to allow adjustment + scalar& flowRate() { - return massFlowRate_; + return flowRate_; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C new file mode 100644 index 0000000000000000000000000000000000000000..f492d86c7769ee68c63572ab43e2de15b62d7ec7 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.C @@ -0,0 +1,141 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "timeVaryingFlowRateInletVelocityFvPatchVectorField.H" +#include "volFields.H" +#include "addToRunTimeSelectionTable.H" +#include "fvPatchFieldMapper.H" +#include "surfaceFields.H" +#include "Time.H" +#include "IFstream.H" + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const fvPatch& p, + const DimensionedField<vector, volMesh>& iF +) +: + flowRateInletVelocityFvPatchVectorField(p, iF), + timeSeries_() +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf, + const fvPatch& p, + const DimensionedField<vector, volMesh>& iF, + const fvPatchFieldMapper& mapper +) +: + flowRateInletVelocityFvPatchVectorField(ptf, p, iF, mapper), + timeSeries_(ptf.timeSeries_) +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const fvPatch& p, + const DimensionedField<vector, volMesh>& iF, + const dictionary& dict +) +: + flowRateInletVelocityFvPatchVectorField(p, iF, dict), + timeSeries_(this->db(), dict) +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf +) +: + flowRateInletVelocityFvPatchVectorField(ptf), + timeSeries_(ptf.timeSeries_) +{} + + +Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +timeVaryingFlowRateInletVelocityFvPatchVectorField +( + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ptf, + const DimensionedField<vector, volMesh>& iF +) +: + flowRateInletVelocityFvPatchVectorField(ptf, iF), + timeSeries_(ptf.timeSeries_) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +updateCoeffs() +{ + if (updated()) + { + return; + } + + flowRate() = timeSeries_(this->db().time().timeOutputValue()); + flowRateInletVelocityFvPatchVectorField::updateCoeffs(); +} + + +void Foam:: +timeVaryingFlowRateInletVelocityFvPatchVectorField:: +write(Ostream& os) const +{ + flowRateInletVelocityFvPatchVectorField::write(os); + timeSeries_.write(os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + makePatchTypeField + ( + fvPatchVectorField, + timeVaryingFlowRateInletVelocityFvPatchVectorField + ); +} + + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H similarity index 65% rename from src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H rename to src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H index f400c9ce4a33e888384c0d68598c9f8581083c13..cbacacb4c545b205afe14eeffc82412729b7ad38 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingFlowRateInletVelocity/timeVaryingFlowRateInletVelocityFvPatchVectorField.H @@ -23,20 +23,20 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::timeVaryingMassFlowRateInletVelocityFvPatchVectorField + Foam::timeVaryingFlowRateInletVelocityFvPatchVectorField Description - A time-varying form of a massflow normal vector boundary condition. + A time-varying form of a flow normal vector boundary condition. Example of the boundary condition specification: @verbatim inlet { - type timeVaryingMassFlowRateInletVelocity; - massFlowRate 0.2; // Massflow rate [kg/s] + type timeVaryingFlowRateInletVelocity; + flowRate 0.2; // Volumetric/mass flow rate [m3/s or kg/s] value uniform (0 0 0); // placeholder - timeDataFile "time-series"; - timeBounding repeat; // (error|warn|clamp|repeat) + fileName "time-series"; + boundAction repeat; // (error|warn|clamp|repeat) } @endverbatim @@ -46,58 +46,54 @@ Note - strange behaviour with potentialFoam since the U equation is not solved See Also - Foam::timeSeries and Foam::massFlowRateInletVelocityFvPatchVectorField + Foam::timeSeries and Foam::flowRateInletVelocityFvPatchVectorField SourceFiles - timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C + timeVaryingFlowRateInletVelocityFvPatchVectorField.C \*---------------------------------------------------------------------------*/ -#ifndef timeVaryingMassFlowRateInletVelocityFvPatchVectorField_H -#define timeVaryingMassFlowRateInletVelocityFvPatchVectorField_H +#ifndef timeVaryingFlowRateInletVelocityFvPatchVectorField_H +#define timeVaryingFlowRateInletVelocityFvPatchVectorField_H + +#include "flowRateInletVelocityFvPatchVectorField.H" +#include "interpolationTable.H" -#include "massFlowRateInletVelocityFvPatchVectorField.H" -#include "timeSeries.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ - Class timeVaryingMassFlowRateInletVelocityFvPatch Declaration + Class timeVaryingFlowRateInletVelocityFvPatch Declaration \*---------------------------------------------------------------------------*/ -class timeVaryingMassFlowRateInletVelocityFvPatchVectorField +class timeVaryingFlowRateInletVelocityFvPatchVectorField : - public massFlowRateInletVelocityFvPatchVectorField + public flowRateInletVelocityFvPatchVectorField { // Private data - //- file containing time/massFlowRate - fileName timeDataFile_; - //- the time series being used, including the bounding treatment - timeSeries<scalar> timeSeries_; + interpolationTable<scalar> timeSeries_; - //- interpolate the value at the current time - scalar currentValue(); public: //- Runtime type information - TypeName("timeVaryingMassFlowRateInletVelocity"); + TypeName("timeVaryingFlowRateInletVelocity"); // Constructors //- Construct from patch and internal field - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField<vector, volMesh>& ); //- Construct from patch, internal field and dictionary - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( const fvPatch&, const DimensionedField<vector, volMesh>&, @@ -105,18 +101,18 @@ public: ); //- Construct by mapping given patch field onto a new patch - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField&, + const timeVaryingFlowRateInletVelocityFvPatchVectorField&, const fvPatch&, const DimensionedField<vector, volMesh>&, const fvPatchFieldMapper& ); //- Construct as copy - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& + const timeVaryingFlowRateInletVelocityFvPatchVectorField& ); //- Construct and return a clone @@ -124,14 +120,14 @@ public: { return tmp<fvPatchVectorField> ( - new timeVaryingMassFlowRateInletVelocityFvPatchVectorField(*this) + new timeVaryingFlowRateInletVelocityFvPatchVectorField(*this) ); } //- Construct as copy setting internal field reference - timeVaryingMassFlowRateInletVelocityFvPatchVectorField + timeVaryingFlowRateInletVelocityFvPatchVectorField ( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField&, + const timeVaryingFlowRateInletVelocityFvPatchVectorField&, const DimensionedField<vector, volMesh>& ); @@ -143,34 +139,34 @@ public: { return tmp<fvPatchVectorField> ( - new timeVaryingMassFlowRateInletVelocityFvPatchVectorField(*this, iF) + new timeVaryingFlowRateInletVelocityFvPatchVectorField + ( + *this, + iF + ) ); } + // Member functions // Access - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return timeSeries_.bounding(); - } - //- Return the time series used - const timeSeries<scalar>& timeData() const + const interpolationTable<scalar>& timeSeries() const { return timeSeries_; } + // Evaluation functions //- Update the coefficients associated with the patch field virtual void updateCoeffs(); + //- Write virtual void write(Ostream&) const; - }; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C deleted file mode 100644 index 9526998a5710126e905f8b47fc8e0bd3618ddc6a..0000000000000000000000000000000000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMassFlowRateInletVelocity/timeVaryingMassFlowRateInletVelocityFvPatchVectorField.C +++ /dev/null @@ -1,200 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "timeVaryingMassFlowRateInletVelocityFvPatchVectorField.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "surfaceFields.H" -#include "Time.H" -#include "IFstream.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const fvPatch& p, - const DimensionedField<vector, volMesh>& iF -) -: - massFlowRateInletVelocityFvPatchVectorField(p, iF) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& ptf, - const fvPatch& p, - const DimensionedField<vector, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - massFlowRateInletVelocityFvPatchVectorField(ptf, p, iF, mapper), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const fvPatch& p, - const DimensionedField<vector, volMesh>& iF, - const dictionary& dict -) -: - massFlowRateInletVelocityFvPatchVectorField(p, iF, dict), - timeDataFile_(dict.lookup("timeDataFile")), - timeSeries_(word(dict.lookup("timeBounding"))) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& ptf -) -: - massFlowRateInletVelocityFvPatchVectorField(ptf), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) -{} - - -Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField -( - const timeVaryingMassFlowRateInletVelocityFvPatchVectorField& ptf, - const DimensionedField<vector, volMesh>& iF -) -: - massFlowRateInletVelocityFvPatchVectorField(ptf, iF), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::scalar -Foam::timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -currentValue() -{ - if (timeSeries_.size() == 0) - { - fileName fName(timeDataFile_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingMassFlowRateInletVelocity" - "::currentValue()" - ) << "timeDataFile not specified for Patch " - << this->patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = this->db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> timeSeries_; - timeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - timeSeries_.check(); - } - - if (timeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingMassFlowRateInletVelocity" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return timeSeries_(this->db().time().timeOutputValue()); -} - - -void Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -updateCoeffs() -{ - if (updated()) - { - return; - } - - massFlowRate() = currentValue(); - massFlowRateInletVelocityFvPatchVectorField::updateCoeffs(); -} - - -void Foam:: -timeVaryingMassFlowRateInletVelocityFvPatchVectorField:: -write(Ostream& os) const -{ - massFlowRateInletVelocityFvPatchVectorField::write(os); - os.writeKeyword("timeDataFile") - << timeDataFile_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchTypeField - ( - fvPatchVectorField, - timeVaryingMassFlowRateInletVelocityFvPatchVectorField - ); -} - - -// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C index 646ee136d54b8993d81e1b133c11d317225c4469..dc09d678b2257f5b5151228a9614e62833ffbe2a 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.C @@ -38,7 +38,8 @@ timeVaryingUniformFixedValueFvPatchField const DimensionedField<Type, volMesh>& iF ) : - fixedValueFvPatchField<Type>(p, iF) + fixedValueFvPatchField<Type>(p, iF), + timeSeries_() {} @@ -52,8 +53,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField<Type>(p, iF), - timeDataFile_(dict.lookup("timeDataFile")), - timeSeries_(word(dict.lookup("timeBounding"))) + timeSeries_(this->db(), dict) { if (dict.found("value")) { @@ -77,8 +77,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField<Type>(ptf, p, iF, mapper), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -90,8 +89,7 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField<Type>(ptf), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} @@ -104,66 +102,12 @@ timeVaryingUniformFixedValueFvPatchField ) : fixedValueFvPatchField<Type>(ptf, iF), - timeDataFile_(ptf.timeDataFile_), - timeSeries_(ptf.timeBounding()) + timeSeries_(ptf.timeSeries_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -template<class Type> -Type Foam::timeVaryingUniformFixedValueFvPatchField<Type>:: -currentValue() -{ - if (timeSeries_.size() == 0) - { - fileName fName(timeDataFile_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField" - "::currentValue()" - ) << "timeDataFile not specified for Patch " - << this->patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = this->db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> timeSeries_; - timeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - timeSeries_.check(); - } - - if (timeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return timeSeries_(this->db().time().timeOutputValue()); -} - - template<class Type> void Foam::timeVaryingUniformFixedValueFvPatchField<Type>::updateCoeffs() { @@ -172,7 +116,10 @@ void Foam::timeVaryingUniformFixedValueFvPatchField<Type>::updateCoeffs() return; } - fvPatchField<Type>::operator==(currentValue()); + fvPatchField<Type>::operator== + ( + timeSeries_(this->db().time().timeOutputValue()) + ); fixedValueFvPatchField<Type>::updateCoeffs(); } @@ -184,10 +131,7 @@ void Foam::timeVaryingUniformFixedValueFvPatchField<Type>::write ) const { fvPatchField<Type>::write(os); - os.writeKeyword("timeDataFile") - << timeDataFile_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; + timeSeries_.write(os); this->writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H index 36f4b02e48c62f648ca80dd58ada622a62765866..bd073c24b1ce638b8c4d8307f4ccba9609bb3a07 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformFixedValue/timeVaryingUniformFixedValueFvPatchField.H @@ -33,8 +33,8 @@ Description inlet { type timeVaryingUniformFixedValue; - timeDataFile "time-series"; - timeBounding clamp; // (error|warn|clamp|repeat) + fileName "time-series"; + boundAction clamp; // (error|warn|clamp|repeat) } @endverbatim @@ -54,7 +54,7 @@ SourceFiles #define timeVaryingUniformFixedValueFvPatchField_H #include "fixedValueFvPatchField.H" -#include "timeSeries.H" +#include "interpolationTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -72,14 +72,8 @@ class timeVaryingUniformFixedValueFvPatchField { // Private data - //- File containing time/uniformFixedValue - fileName timeDataFile_; - //- The time series being used, including the bounding treatment - timeSeries<Type> timeSeries_; - - //- Interpolate the value at the current time - Type currentValue(); + interpolationTable<Type> timeSeries_; public: @@ -153,14 +147,8 @@ public: // Access - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return timeSeries_.bounding(); - } - //- Return the time series used - const timeSeries<Type>& timeData() const + const interpolationTable<Type>& timeSeries() const { return timeSeries_; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C index c7407adf982252a4539352bd1ea83ec0965ab8ad..711fccdbc629b4ccdfa26f552bbd938e6e571286 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.C @@ -46,8 +46,8 @@ timeVaryingUniformTotalPressureFvPatchScalarField rhoName_("undefined"), psiName_("undefined"), gamma_(0.0), - p0_(0.0) - + p0_(0.0), + totalPressureTimeSeries_() {} @@ -66,8 +66,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(dict.lookup("psi")), gamma_(readScalar(dict.lookup("gamma"))), p0_(readScalar(dict.lookup("p0"))), - totalPressureDataFileName_(dict.lookup("totalPressureDataFileName")), - totalPressureTimeSeries_(word(dict.lookup("timeBounding"))) + totalPressureTimeSeries_(this->db(), dict) { if (dict.found("value")) { @@ -99,8 +98,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(ptf.psiName_), gamma_(ptf.gamma_), p0_(ptf.p0_), - totalPressureDataFileName_(ptf.totalPressureDataFileName_), - totalPressureTimeSeries_(ptf.timeBounding()) + totalPressureTimeSeries_(ptf.totalPressureTimeSeries_) {} @@ -117,8 +115,7 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(tppsf.psiName_), gamma_(tppsf.gamma_), p0_(tppsf.p0_), - totalPressureDataFileName_(tppsf.totalPressureDataFileName_), - totalPressureTimeSeries_(tppsf.timeBounding()) + totalPressureTimeSeries_(tppsf.totalPressureTimeSeries_) {} @@ -136,64 +133,12 @@ timeVaryingUniformTotalPressureFvPatchScalarField psiName_(tppsf.psiName_), gamma_(tppsf.gamma_), p0_(tppsf.p0_), - totalPressureDataFileName_(tppsf.totalPressureDataFileName_), - totalPressureTimeSeries_(tppsf.timeBounding()) + totalPressureTimeSeries_(tppsf.totalPressureTimeSeries_) {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -Foam::scalar Foam::timeVaryingUniformTotalPressureFvPatchScalarField:: -currentValue() -{ - if (totalPressureTimeSeries_.size() == 0) - { - fileName fName(totalPressureDataFileName_); - fName.expand(); - - if (fName.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField::currentValue()" - ) << "timeDataFile not specified for Patch " - << patch().name() - << exit(FatalError); - } - else - { - // relative path - if (fName[0] != '/') - { - fName = db().path()/fName; - } - - // just in case we change the interface to timeSeries - word boundType = timeBounding(); - - IFstream(fName)() >> totalPressureTimeSeries_; - totalPressureTimeSeries_.bounding(boundType); - - // be a bit paranoid and check that the list is okay - totalPressureTimeSeries_.check(); - } - - if (totalPressureTimeSeries_.size() == 0) - { - FatalErrorIn - ( - "timeVaryingUniformFixedValueFvPatchField" - "::currentValue()" - ) << "empty time series for Patch " - << this->patch().name() - << exit(FatalError); - } - } - - return totalPressureTimeSeries_(this->db().time().timeOutputValue()); -} - - void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::updateCoeffs ( const vectorField& Up @@ -204,7 +149,7 @@ void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::updateCoeffs return; } - p0_ = currentValue(); + p0_ = totalPressureTimeSeries_(this->db().time().timeOutputValue()); const fvsPatchField<scalar>& phip = patch().lookupPatchField<surfaceScalarField, scalar>(phiName_); @@ -279,10 +224,7 @@ void Foam::timeVaryingUniformTotalPressureFvPatchScalarField::write(Ostream& os) os.writeKeyword("psi") << psiName_ << token::END_STATEMENT << nl; os.writeKeyword("gamma") << gamma_ << token::END_STATEMENT << nl; os.writeKeyword("p0") << p0_ << token::END_STATEMENT << endl; - os.writeKeyword("totalPressureDataFileName") - << totalPressureDataFileName_ << token::END_STATEMENT << nl; - os.writeKeyword("timeBounding") - << timeBounding() << token::END_STATEMENT << nl; + totalPressureTimeSeries_.write(os); writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H index 48d4b9996126f67ba44008c9ea4222fa6cca5260..4bfead28d1cbd105ca4cbf6753f8a463e8147be7 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingUniformTotalPressure/timeVaryingUniformTotalPressureFvPatchScalarField.H @@ -38,7 +38,7 @@ SourceFiles #define timeVaryingUniformTotalPressureFvPatchScalarField_H #include "fixedValueFvPatchFields.H" -#include "timeSeries.H" +#include "interpolationTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -74,11 +74,8 @@ class timeVaryingUniformTotalPressureFvPatchScalarField //- Total pressure scalar p0_; - fileName totalPressureDataFileName_; - timeSeries<scalar> totalPressureTimeSeries_; - - //- Interpolate the value at the current time - scalar currentValue(); + //- Table of time vs total pressure + interpolationTable<scalar> totalPressureTimeSeries_; public: @@ -189,14 +186,8 @@ public: return p0_; } - //- Return the out-of-bounds treatment as a word - word timeBounding() const - { - return totalPressureTimeSeries_.bounding(); - } - //- Return the time series used - const timeSeries<scalar>& totalPressureTimeSeries() const + const interpolationTable<scalar>& totalPressureTimeSeries() const { return totalPressureTimeSeries_; } diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C index 97dfc106f62e4e85711626cf3f692566e3b5a1c5..54e7985d0d8e65d7f2496a425f36efbc6f92fd61 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresVectors.C @@ -134,7 +134,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const const unallocLabelList& faceCells = p.patch().faceCells(); // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] @@ -198,7 +198,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const const unallocLabelList& faceCells = p.faceCells(); // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] @@ -239,6 +239,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const // For 3D meshes check the determinant of the dd tensor and switch to // Gauss if it is less than 3 + /* Currently the det(dd[celli]) criterion is incorrect: dd is weighted by Sf if (mesh.nGeometricD() == 3) { label nBadCells = 0; @@ -279,7 +280,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const if (mesh.boundary()[patchi].size()) { - label patchFacei = + label patchFacei = facei - mesh.boundaryMesh()[patchi].start(); if (mesh.boundary()[patchi].coupled()) @@ -294,14 +295,14 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const 0.2 ); - lsP.boundaryField()[patchi][patchFacei] = + lsP.boundaryField()[patchi][patchFacei] = (1 - wf) *Sf.boundaryField()[patchi][patchFacei] /V[celli]; } else { - lsP.boundaryField()[patchi][patchFacei] = + lsP.boundaryField()[patchi][patchFacei] = Sf.boundaryField()[patchi][patchFacei] /V[celli]; } @@ -318,7 +319,7 @@ void Foam::leastSquaresVectors::makeLeastSquaresVectors() const << endl; } } - + */ if (debug) { diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index 5055e5502fd41ab9e5601c37e3e095b12b1fe4a6..dff0859c538020a96e52ccdc488f875fdd98deb2 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -27,6 +27,7 @@ Class Description Templated base class for kinematic cloud + - Kinematic only - Dispersion model - Drag model diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H index e25318d9c1b399752239e4d808288f38af7dd18f..2063f9e673a436b9fdfa41416bc1d7e8d12e195d 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H @@ -27,7 +27,9 @@ Class Description Kinematic parcel class with one/two-way coupling with the continuous - phase. Sub-models include: + phase. + + Sub-models include: - drag - break-up - wall interactions diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H index be42e0c0dd26b05516ffd5bc144aab8d81687403..98c017adcd05446aa31c24ab0a0988da7f2b3440 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.H @@ -27,6 +27,7 @@ Class Description Cone injection + - User specifies - time of start of injection - injector position diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C index 88b6a8813bb284416ef282f0b4197c90e7a8a446..ea7d52771c2e08b511e7474b1ab43abaf4e38ae8 100644 --- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C +++ b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C @@ -54,7 +54,7 @@ bool molecule::move(molecule::trackData& td) U_ += 0.5*deltaT*A_; } - while (td.keepParticle && !td.switchProcessor && tEnd > (SMALL*SMALL)) + while (td.keepParticle && !td.switchProcessor && tEnd > ROOTVSMALL) { // set the lagrangian time-step scalar dt = min(dtMax, tEnd); diff --git a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H index 09e1030cdb5f45843c79a2ebfec07b34a1864707..445e19da0b69c1370f19c3866a553fffd330a3fa 100644 --- a/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H +++ b/src/meshTools/edgeFaceCirculator/edgeFaceCirculator.H @@ -26,15 +26,15 @@ Class Foam::edgeFaceCirculator Description - Walks from starting face around edge. Implicit - description of edge: + Walks from starting face around edge. + + Implicit description of edge: - face - index in face. edge is always between f[index] and f[index+1] - direction (cell to walk into) - Use as: - - 1) in-place: + -# Use in-place: \n + @code edgeFaceCirculator circ(..); // Optionally rotate to beginning: circ.setCanonical(); @@ -45,9 +45,10 @@ Description ++circ; } while (circ != circ.end()); + @endcode - 2) like STL iterator: - + -# Use like STL iterator: \n + @code edgeFaceCirculator circ(..); for ( @@ -58,6 +59,7 @@ Description { Info<< "face:" << iter.face() << endl; } + @endcode SourceFiles diff --git a/src/turbulenceModels/LES/compressible/LESModel/LESModel.H b/src/turbulenceModels/LES/compressible/LESModel/LESModel.H index 905b7df7e3f67dc4aa9f179dbf1e1425f164031e..ecef2d8f7716a9e6ea5baf43f5b6c5f591240329 100644 --- a/src/turbulenceModels/LES/compressible/LESModel/LESModel.H +++ b/src/turbulenceModels/LES/compressible/LESModel/LESModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::compressible + Foam::compressible::LESModels Description Namespace for compressible LES models. diff --git a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H index 2a1d5e480141357007bc730c8f5701d152ae7ad0..57576bf5e57e280af8f8023a3f6112417f301098 100644 --- a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H +++ b/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::DeardorffDiffStress + Foam::incompressible::LESModels::DeardorffDiffStress Description Differential SGS Stress Equation Model for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H index f465c2d413fa1b0096a00948ac9ea8f5a4388dc2..388606f284a8f0dc068ff9801ad95597b79ff1f3 100644 --- a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H +++ b/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::GenEddyVisc + Foam::incompressible::LESModels::GenEddyVisc Description General base class for all incompressible models that can be implemented diff --git a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H index 93305ea411228173f50e28101ce9f27ae99f7785..eb6cc7e9065b0ab437d580637568838d4cb50269 100644 --- a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H +++ b/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::GenSGSStress + Foam::incompressible::LESModels::GenSGSStress Description General base class for all incompressible models that directly diff --git a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H b/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H index 302efc5cf169d7d3a2205a28b0a8dd6c26ce7a2b..e1374ed2864557fb5bb89cd29fd107d3e471c1d9 100644 --- a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H +++ b/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::incompressible + Foam::incompressible::LESModels Description Namespace for incompressible LES models. diff --git a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H b/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H index 4d10fd99f6d10696da21c16f95f4cff158bd8b8b..f58b6e224be01a91cedeb5dd6167bee296168ced 100644 --- a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H +++ b/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::LRRDiffStress + Foam::incompressible::LESModels::LRRDiffStress Description Differential SGS Stress Equation Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H index 3a5f09eeaaf1d37222730ff091dbf4131eec624e..f86578934e7a7fda63efe644062c51229c29676d 100644 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::Smagorinsky + Foam::incompressible::LESModels::Smagorinsky Description The Isochoric Smagorinsky Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H b/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H index 886a5be4cdbafc091e7d859d05deed3dd2e62aab..7c780da1e1a1fda398e7f0c084fda71666368100 100644 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H +++ b/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::Smagorinsky2 + Foam::incompressible::LESModels::Smagorinsky2 Description The Isochoric Smagorinsky Model for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H index a6a9d12ca631765795e315a6d92a551d93e8e381..523da4611c665213e53fb11d44d8781f07919055 100644 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::SpalartAllmaras + Foam::incompressible::LESModels::SpalartAllmaras Description SpalartAllmaras for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H b/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H index ced250056fe8214bfeb2b01b729180857cc920f6..223487b7d0239a9b541f0e8c251ee6e4a9f9f502 100644 --- a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::dynMixedSmagorinsky + Foam::incompressible::LESModels::dynMixedSmagorinsky Description The Mixed Isochoric Smagorinsky Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H index 24484a23c5ebfa852120330b279a9fdb42b40499..b680174e69f6a14d4e0e6d345caf338761deb716 100644 --- a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H +++ b/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::dynOneEqEddy + Foam::incompressible::LESModels::dynOneEqEddy Description One Equation Eddy Viscosity Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H b/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H index 601381e80d40c8bf2cef546977aa5d82770f3dba..d155d45a581455c74f225654c99688e848f0a02b 100644 --- a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::dynSmagorinsky + Foam::incompressible::LESModels::dynSmagorinsky Description The Isochoric dynamic Smagorinsky Model for incompressible flows. @@ -56,7 +56,7 @@ Description m = delta^2*(4*||F(D)||^2 - F(||D||^2)) L = dev(F(U*U) - F(U)*F(U)) M = delta^2*(F(||D||*dev(D)) - 4*||F(D)||*F(dev(D))) - @verbatim + @endverbatim SourceFiles dynSmagorinsky.C diff --git a/src/turbulenceModels/LES/incompressible/laminar/laminar.H b/src/turbulenceModels/LES/incompressible/laminar/laminar.H index 86c2ba342a1dd256bcd0a7660f0af3358d4cfca6..648e0b8229185547eca155dd742ef310e40ce100 100644 --- a/src/turbulenceModels/LES/incompressible/laminar/laminar.H +++ b/src/turbulenceModels/LES/incompressible/laminar/laminar.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::laminar + Foam::incompressible::LESModels::laminar Description LES model for laminar incompressible flow. diff --git a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H b/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H index f698747d16030a348ee74e24ba5b4d4ae3a1a9c8..960b6f185e4019d64f08766d88525351ee2fc7eb 100644 --- a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H +++ b/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::locDynOneEqEddy + Foam::incompressible::LESModels::locDynOneEqEddy Description Localised Dynamic One Equation Eddy Viscosity Model for incompressible diff --git a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H b/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H index 9a18dcb00a39380c33d7c2eabd145ea658ac0c88..7fa3f0c9ecc81d585959fb89807c9fd7443bd66b 100644 --- a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H +++ b/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::mixedSmagorinsky + Foam::incompressible::LESModels::mixedSmagorinsky Description The mixed Isochoric Smagorinsky Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H index 1e3802b72388ae98eebad7e95109582c56f1fd7d..632530b2056d632729aba907bbfb51a68f4d69f2 100644 --- a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H +++ b/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::oneEqEddy + Foam::incompressible::LESModels::oneEqEddy Description One Equation Eddy Viscosity Model for incompressible flows diff --git a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H b/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H index 6e8b151872ca8355c103143532257870c5a7132c..079d38a4a2fdd327f39d4046ef144fd0c30a7cd5 100644 --- a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H +++ b/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::scaleSimilarity + Foam::incompressible::LESModels::scaleSimilarity Description General base class for all scale similarity models diff --git a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H b/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H index 1053cb272c3f7d5664d1bd1089b8c8eb6591418b..dd6b4e68b02c246168c4edbd20c765b5dbb2acf8 100644 --- a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H +++ b/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::spectEddyVisc + Foam::incompressible::LESModels::spectEddyVisc Description The Isochoric spectral Eddy Viscosity Model for incompressible flows. diff --git a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H b/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H index f488b823fb4118a0e7498cf0c1a88bbf9ef5d628..6903765f6b367fca1a4d346330875057e8df7e98 100644 --- a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H +++ b/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::vanDriestDelta + Foam::incompressible::LESModels::vanDriestDelta Description Simple cube-root of cell volume delta used in incompressible LES models. diff --git a/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H b/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H index 2008b7bfc17aed22beb27290cf6a877f0d01d2c3..687e30a6a6f36781eab3ae033ec1f7925aa3be76 100644 --- a/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/LES/incompressible/wallFunc/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::LES::nuSgsWallFunctionFvPatchScalarField + Foam::incompressible::LESModels::nuSgsWallFunctionFvPatchScalarField Description wall function boundary condition for incompressible flows diff --git a/src/turbulenceModels/RAS/compressible/LRR/LRR.H b/src/turbulenceModels/RAS/compressible/LRR/LRR.H index b479b7ee3c02ae08f30ff5d25de954864bace06a..553b11be96e5b338f4b42fe59aabc03e40f4c5ca 100644 --- a/src/turbulenceModels/RAS/compressible/LRR/LRR.H +++ b/src/turbulenceModels/RAS/compressible/LRR/LRR.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::LRR + Foam::compressible::RASModels::LRR Description Launder, Reece and Rodi Reynolds-stress turbulence model for diff --git a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H index dbe974a1d1b7979ba3a851c5dc5839e4ec27b269..2be69e96b5be6497406a8f07d8d1ed1a3964f327 100644 --- a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H +++ b/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::LaunderGibsonRSTM + Foam::compressible::RASModels::LaunderGibsonRSTM Description Launder-Gibson Reynolds stress turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H index 7c7372e07d36dd66c270eccab4ea71f35a0a58c2..731e0cdb02a3fc2c658c7ee1a29db9e56de98b69 100644 --- a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H +++ b/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::LaunderSharmaKE + Foam::compressible::RASModels::LaunderSharmaKE Description Launder and Sharma low-Reynolds k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H b/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H index 2e98a4359e87f5c9f4c599818afac2c9ffacac5d..47feaebe18b19c66781f0bdace398c40386be4ad 100644 --- a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H +++ b/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::compressible::RAS + Foam::compressible::RASModels Description Namespace for compressible RAS turbulence models. diff --git a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H index a1d2148dd7f63a8928e6dbf3d88b0ac4bb3bc29e..5063615ccbe5a19fe87b52f8dda97713d8fc03be 100644 --- a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H +++ b/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::RNGkEpsilon + Foam::compressible::RASModels::RNGkEpsilon Description Renormalisation group k-epsilon turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H index 9b6880eff13c5ad76a0f6d2e597faae179cecb5c..da3aa6fc2e51115bc9621aca8049299cddd26f5d 100644 --- a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::SpalartAllmaras + Foam::compressible::RASModels::SpalartAllmaras Description Spalart-Allmaras one-eqn mixing-length model for compressible diff --git a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H b/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H index b6b2b1dab7b5ac82f78ee28128cb9711a1e3968d..d42bc73a6666767d0bb9ebc67765b7fe8cd21315 100644 --- a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H +++ b/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::kEpsilon + Foam::compressible::RASModels::kEpsilon Description Standard k-epsilon turbulence model for compressible flows diff --git a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H index fe65b3fad265566f4bce47a41f659e602a61b13a..4836d02611c1fc0853d1bf3a086803ecf227a0b8 100644 --- a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::kOmegaSST + Foam::compressible::RASModels::kOmegaSST Description Implementation of the k-omega-SST turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/laminar/laminar.H b/src/turbulenceModels/RAS/compressible/laminar/laminar.H index dd965be3d8efd7ccfedcb6170368088119adf7f0..dda7f731179ae1603b68f89da8ca5225558f36fb 100644 --- a/src/turbulenceModels/RAS/compressible/laminar/laminar.H +++ b/src/turbulenceModels/RAS/compressible/laminar/laminar.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::laminar + Foam::compressible::RASModels::laminar Description Dummy turbulence model for laminar compressible flow. diff --git a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H b/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H index 676c7becc2e58e689467c7cbff94272b173d08ad..0eb770f0832b6ca8462551cab38f0d69a901aedc 100644 --- a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H +++ b/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::realizableKE + Foam::compressible::RASModels::realizableKE Description Realizable k-epsilon turbulence model for compressible flows. diff --git a/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H index 759bd5c4fd6ef3d04ce31ac85a506c59bbbc8344..7c8e5617934d4bc886069c5cf4fa7a6425fe3ecb 100644 --- a/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/compressible/wallFunctions/mutWallFunctions/mutStandardRoughWallFunction/mutStandardRoughWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::compressible::RAS::mutStandardRoughWallFunctionFvPatchScalarField + Foam::compressible::RASModels::mutStandardRoughWallFunctionFvPatchScalarField Description Wall function boundary condition for rough walls diff --git a/src/turbulenceModels/RAS/incompressible/LRR/LRR.H b/src/turbulenceModels/RAS/incompressible/LRR/LRR.H index 28a032bdc0fcd016b41e68aac57a82ae2289306a..45b3df83e86952b448edea7110e171c086f5e5f7 100644 --- a/src/turbulenceModels/RAS/incompressible/LRR/LRR.H +++ b/src/turbulenceModels/RAS/incompressible/LRR/LRR.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LRR + Foam::incompressible::RASModels::LRR Description Launder, Reece and Rodi Reynolds-stress turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H b/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H index 8a9fe369e69c18b7e516fc85a8dc95fdb5f1eefe..f0e8a0ba591eb69444cf1ae356104e586bcff0a8 100644 --- a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H +++ b/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LamBremhorstKE + Foam::incompressible::RASModels::LamBremhorstKE Description Lam and Bremhorst low-Reynolds number k-epsilon turbulence model diff --git a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H index 96a2daec835d52f234381b3c99ae56609f5ee1be..73169b389ffec861cf6f35234e69a877d539b11c 100644 --- a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H +++ b/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LaunderGibsonRSTM + Foam::incompressible::RASModels::LaunderGibsonRSTM Description Launder-Gibson Reynolds stress turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H index 14412157690ee05e5e3a0aad1c2de0bee27f05c2..a16a1d8f3a2e561a3c56f9a311b9b15fa2fee079 100644 --- a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H +++ b/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LaunderSharmaKE + Foam::incompressible::RASModels::LaunderSharmaKE Description Launder and Sharma low-Reynolds k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H b/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H index 1a9bbde798f42b910914d42603639f1329952b33..005c8257751e255d007557c6210cd3b5abf3ee8f 100644 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H +++ b/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LienCubicKE + Foam::incompressible::RASModels::LienCubicKE Description Lien cubic non-linear k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H index e86e555ece19ba25ed9f85133f1dfce4b781b342..3fac316cdf1b1af73498f59c5b5166436c6328e8 100644 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H +++ b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LienCubicKELowRe + Foam::incompressible::RASModels::LienCubicKELowRe Description Lien cubic non-linear low-Reynolds k-epsilon turbulence models for diff --git a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H index c7bbf5e51a336791c986595ce1391ec27f783183..59efb82c9820719d99d153b86034d7362f30982a 100644 --- a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H +++ b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::LienLeschzinerLowRe + Foam::incompressible::RASModels::LienLeschzinerLowRe Description Lien and Leschziner low-Reynolds k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H b/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H index 7f25e712efb96663a58b741efdf456a0336b867b..7f8f6ebc8ff50819d1c04ac86bb742853690c907 100644 --- a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H +++ b/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::NonlinearKEShih + Foam::incompressible::RASModels::NonlinearKEShih Description Shih's quadratic non-linear k-epsilon turbulence model for diff --git a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H b/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H index dcfd584c61a081daff1888ab8bd4dea0be13c10d..8c675a8fc1fae2182be7eae4bfb2a8e80a85a911 100644 --- a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H +++ b/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::QZeta + Foam::incompressible::RASModels::QZeta Description Gibson and Dafa'Alla's q-zeta two-equation low-Re turbulence model diff --git a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H b/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H index 8ba1fedcbc706d812ba04e6dda4baa53a0b7bb25..345565fbab458a5437791e18680d3f17f8f32685 100644 --- a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H +++ b/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Namespace - Foam::incompressible + Foam::incompressible::RASModels Description Namespace for incompressible RAS turbulence models. diff --git a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H index f028ea8041ec61be5bdcb2712606bdcc40f789c4..960d0a344d740f510cfb03f00f6f9428e34f4b81 100644 --- a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H +++ b/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::RNGkEpsilon + Foam::incompressible::RASModels::RNGkEpsilon Description Renormalisation group k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H index 5266de28eb0f5279525c04a54607c26b832184b8..39cb3977e0c0dcd2d2db539c1d9293c067675b6e 100644 --- a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H +++ b/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::SpalartAllmaras + Foam::incompressible::RASModels::SpalartAllmaras Description Spalart-Allmaras 1-eqn mixing-length model for incompressible external diff --git a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H b/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H index 4fe07f367951c48726d87353951663139807f734..5ac0d5a4614f037a02c374aa93fca67e41492c08 100644 --- a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H +++ b/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::kEpsilon + Foam::incompressible::RASModels::kEpsilon Description Standard k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H index f106b028005949618bc73c68d4dd2597c93539a5..ef44b6a9ac0812cc1198bb4d4200389c5e4ad8aa 100644 --- a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::kOmegaSST + Foam::incompressible::RASModels::kOmegaSST Description Implementation of the k-omega-SST turbulence model for incompressible diff --git a/src/turbulenceModels/RAS/incompressible/laminar/laminar.H b/src/turbulenceModels/RAS/incompressible/laminar/laminar.H index eaa183746baf3ddc71b27d9501db2662d09a681d..7f07045aa3e5a0443cb391a2bbe4dc289986d020 100644 --- a/src/turbulenceModels/RAS/incompressible/laminar/laminar.H +++ b/src/turbulenceModels/RAS/incompressible/laminar/laminar.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::laminar + Foam::incompressible::RASModels::laminar Description Dummy turbulence model for laminar incompressible flow. diff --git a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H b/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H index 43ca0b5894a9290c0797273a57a00a2fc8349ef1..d3587b2f51b04c80eeb64214f55b48b24a5002ea 100644 --- a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H +++ b/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::realizableKE + Foam::incompressible::RASModels::realizableKE Description Realizable k-epsilon turbulence model for incompressible flows. diff --git a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H index f82d7aeb0fb62474667235ca0644ceb3fc31ebfb..df3007b10f14a6d4fe7932c755b82861cae7687f 100644 --- a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardRoughWallFunction/nutStandardRoughWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::nutStandardRoughWallFunctionFvPatchScalarField + Foam::incompressible::RASModels::nutStandardRoughWallFunctionFvPatchScalarField Description Wall function boundary condition for rough walls diff --git a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H index 5180a3ec451dfa14b180f943105db1642c811ede..f4042e7f5f03a02de54d1184ae940a47c4065a18 100644 --- a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutStandardWallFunction/nutStandardWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::nutStandardWallFunctionFvPatchScalarField + Foam::incompressible::RASModels::nutStandardWallFunctionFvPatchScalarField Description Wall function boundary condition for walls diff --git a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H index 4e7f108dd1c2f415ae070a66df8739ee895de2a9..218599b59c0ea2fb757b182bde2df7aa75ee03e1 100644 --- a/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/RAS/incompressible/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H @@ -23,7 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::incompressible::RAS::nutWallFunctionFvPatchScalarField + Foam::incompressible::RASModels::nutWallFunctionFvPatchScalarField Description Wall function boundary condition for walls diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/0/U b/tutorials/compressibleLesInterFoam/depthCharge2D/0/U index d4e55f293fd71683f978850f5bae9ecfeef00987..367007d0c0ac04629d7b7b24464e19c55ce25d22 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/0/U +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/0/U @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volVectorField; - location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -32,5 +31,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties index 976ee308c25dc16f84f694ca13eb7314411347fd..130d0947d9c4402eba4cf9ee019bdd81b319ad1b 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/LESProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object LESProperties; + version 2.0; + format ascii; + class dictionary; + object LESProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // LESModel laminar; @@ -178,5 +170,4 @@ wallFunctionCoeffs E 9; } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties index a5d1b7134ede4d0cd40f0bc4c5056b331a50d133..c65ebf7f14b660d9bd5a86dbe868a819b4cf9fc7 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/environmentalProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object environmentalProperties; + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // g g [0 1 -2 0 0 0 0] (0 -9.81 0); diff --git a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary index 90bbf5d79b50ae43747203dd39262cb56d491186..e1e2119e32dbd8fc336ad4c3ce9de73c190ff41f 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary +++ b/tutorials/compressibleLesInterFoam/depthCharge2D/constant/polyMesh/boundary @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; - location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/0/U b/tutorials/compressibleLesInterFoam/depthCharge3D/0/U index bb8f8101224aee8c1f2d323e6bb393f920085c96..6840d0129ffba7002bf7ffcee4028d548ac2d02f 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/0/U +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/0/U @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volVectorField; - location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -28,5 +27,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org b/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org index 15554e525d262524476d6e110c2269e27fac3ee2..cf3931804ff3b104621bada30b87c449748808b2 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/0/alpha1.org @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volScalarField; - location "0"; object alpha1.org; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -27,5 +26,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org b/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org index e41468f9c765712c0df3e1e9c345a9f9c1a2d7bc..57bee34347bb93e83fc679b2360f4bc9aa216195 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/0/pd.org @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class volScalarField; - location "0"; object pd.org; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -27,5 +26,4 @@ boundaryField } } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties index 976ee308c25dc16f84f694ca13eb7314411347fd..130d0947d9c4402eba4cf9ee019bdd81b319ad1b 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/LESProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object LESProperties; + version 2.0; + format ascii; + class dictionary; + object LESProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // LESModel laminar; @@ -178,5 +170,4 @@ wallFunctionCoeffs E 9; } - // ************************************************************************* // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties index a5d1b7134ede4d0cd40f0bc4c5056b331a50d133..c65ebf7f14b660d9bd5a86dbe868a819b4cf9fc7 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/environmentalProperties @@ -1,25 +1,17 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { - version 2.0; - format ascii; - - root ""; - case ""; - instance ""; - local ""; - - class dictionary; - object environmentalProperties; + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // g g [0 1 -2 0 0 0 0] (0 -9.81 0); diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary index 8856b4ac446f79c18828d24dc3ac4848c92d0631..178b2ace003c711381d84ede00541b384556c3bd 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/constant/polyMesh/boundary @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; - location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict b/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict index f8801b351d3ef5d59e8d72fa38862051921c5794..fd4a88324169c196c7a5ff8e48a0a1fd3893b6d3 100644 --- a/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict +++ b/tutorials/compressibleLesInterFoam/depthCharge3D/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/gnemdFoam/Allclean b/tutorials/gnemdFoam/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..827eacb6ae57fce6c071229216ccde65b3bd8f04 --- /dev/null +++ b/tutorials/gnemdFoam/Allclean @@ -0,0 +1,19 @@ +#!/bin/sh + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd constrictedChannel + rm -rf 0 > /dev/null 2>&1 + rm Ar-Ar Ar-Ne Ne-Ne > /dev/null 2>&1 + rm constant/idList + + cleanCase +cd .. + +cd nanoNozzle + rm -rf processor[0-9] > /dev/null 2>&1 + + cleanCase +cd .. + diff --git a/tutorials/gnemdFoam/Allrun b/tutorials/gnemdFoam/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..640ecd9bdc14899a37fe41bf908956b6623fa5f3 --- /dev/null +++ b/tutorials/gnemdFoam/Allrun @@ -0,0 +1,25 @@ +#!/bin/sh + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="gnemdFoam" + +cd constrictedChannel + runApplication blockMesh + runApplication molConfig + runApplication $application +cd .. + +cd nanoNozzle + runApplication blockMesh + + runApplication decomposePar + hostname > system/machines + + runParallel molConfig 4 system/machines + runParallel $application 4 system/machines + + runApplication reconstructPar +cd .. + diff --git a/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary b/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary index e06cb6a7bc62252cc7fb936af8d5907962cad1e0..eaeb38f09e82e1b87d50473c0f179baa840d4791 100644 --- a/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary +++ b/tutorials/gnemdFoam/constrictedChannel/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; + location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/gnemdFoam/constrictedChannel/system/potentialDict b/tutorials/gnemdFoam/constrictedChannel/system/potentialDict index ce9f24b88a781107f66ffd7bf9ac29ecb08f544b..7f9346077fcf8b79c7f7fd36f1be33ff4037ae2e 100644 --- a/tutorials/gnemdFoam/constrictedChannel/system/potentialDict +++ b/tutorials/gnemdFoam/constrictedChannel/system/potentialDict @@ -27,7 +27,7 @@ FoamFile // automatically less valuable than any on the list. For molecules of the // same type there is no control over which is removed. -removalOrder 1 (Ar); +removalOrder 2 (Ne Ar); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Pair potentials @@ -111,19 +111,10 @@ tether tetherPotential restrainedHarmonicSpring; restrainedHarmonicSpringCoeffs { - springConstant 0.0277; + springConstant 0.1; rR 1.2e-9; } } - - Ne - { - tetherPotential harmonicSpring; - harmonicSpringCoeffs - { - springConstant 0.0277; - } - } } // ************************************************************************* // diff --git a/tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary b/tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..b94dd10f195233028313de6f35c87882b3d03f0b --- /dev/null +++ b/tutorials/gnemdFoam/nanoNozzle/constant/polyMesh/boundary @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +6 +( + sectionAEnd + { + type patch; + nFaces 225; + startFace 48150; + } + sectionCEnd + { + type patch; + nFaces 225; + startFace 48375; + } + front + { + type wall; + nFaces 1125; + startFace 48600; + } + back + { + type wall; + nFaces 1125; + startFace 49725; + } + top + { + type wall; + nFaces 1125; + startFace 50850; + } + bottom + { + type wall; + nFaces 1125; + startFace 51975; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/Allrun b/tutorials/interDyMFoam/Allrun deleted file mode 100755 index efeef33893ff8ca3de3362aad388ceb94ec689fb..0000000000000000000000000000000000000000 --- a/tutorials/interDyMFoam/Allrun +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -# Get application name from directory -application=`basename $PWD` - -(cd damBreakWithObstacle && runApplication blockMesh) -(cd damBreakWithObstacle && runApplication setSet -batch createObstacle.setSet) -(cd damBreakWithObstacle && runApplication subsetMesh c0 -patch walls) -(cd damBreakWithObstacle && runApplication setFields -latestTime) -(cd damBreakWithObstacle && runApplication $application) diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U index f37e2e0d0f33e4884077c84e9cca1affac24fa4f..be74aea5a1aaf718ea75cf5a20eb54ccd26c383d 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/U @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma index 2e2bf16c3cca0a5c052a99e0876c414064f647f0..e7dd5fba7368da3b79bb3cbb827b2dd005130122 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org index 2e2bf16c3cca0a5c052a99e0876c414064f647f0..e7dd5fba7368da3b79bb3cbb827b2dd005130122 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/gamma.org @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd index f5801776cf3a904337fb7591c1581bbfa72c7a6d..bf55dd55f315cf27b92d411d5096a5a4aec43242 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0-orig/pd @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/U b/tutorials/interDyMFoam/damBreakWithObstacle/0/U index e791ef363f6ab10c6e1062b8c37499062dbf8b92..92dbcc46724d7ba2b763f571d9ca3dfb0fd93ead 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/U +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/U @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma index 7602a0953b91a29e678b54f16b84d237ae5dbae6..f933566bb4830a8d9a3feb50b92a98c0840a81a0 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org index 2e2bf16c3cca0a5c052a99e0876c414064f647f0..e7dd5fba7368da3b79bb3cbb827b2dd005130122 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/gamma.org @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/0/pd b/tutorials/interDyMFoam/damBreakWithObstacle/0/pd index f5801776cf3a904337fb7591c1581bbfa72c7a6d..bf55dd55f315cf27b92d411d5096a5a4aec43242 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/0/pd +++ b/tutorials/interDyMFoam/damBreakWithObstacle/0/pd @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/Allrun b/tutorials/interDyMFoam/damBreakWithObstacle/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..ce475808debf880fa195495d9b7d6f5fc1ff8c63 --- /dev/null +++ b/tutorials/interDyMFoam/damBreakWithObstacle/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +runApplication blockMesh +runApplication setSet -batch createObstacle.setSet +runApplication subsetMesh c0 -patch walls +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties b/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties index 4955328ed8b13052769ad536057a55ba28bfa8bc..919d435ff3602345a8e7191d795a24a89434bfcc 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/RASProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict b/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict index b7a078806a45675187086f961aec52ce92243595..56b10abaf93c5fe737903f5f97a810dd11e0f240 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/dynamicMeshDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties b/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties index 9c35d375b1e2e74505828be2cbf1eb51a74ea1be..40232c0c406c02d21a4ae29a31f702bbf84c6214 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/environmentalProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict index b31c66979716d07e62e665e402c29a9f64111e35..09be8b82ff78d294ba284bb86ff83c3a10e33f1b 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/blockMeshDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary index 924d99d9373a00ca40e7b97192e8911704e94737..1300f15c762cb0db7971c1aca556785ce057f860 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties b/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties index 117a1c916919c1ed2f9036e1b0ea66d5b64f804a..3460aba08f9209a1c2842221d35d8b00c3a8f2dc 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties +++ b/tutorials/interDyMFoam/damBreakWithObstacle/constant/transportProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict b/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict index 8c9606a9099ea5ac9a56ca208a47dc1cce5fa58a..0ad41244b48a160c0e09c86d51f34ac436034100 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/controlDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict b/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict index 5e0c8ef33ce508cd648f685003cd19e7d6dbc954..b7f14f71546ee6876e32c3b8e21d538dce935530 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes index 1c38514090a429a2e0338c814693e4917b601438..a03b85207dd4384e28573b1487fef828812a300f 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSchemes @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution index 24625a2ad4307f773b0e3215fe26afbf2b4d743c..ecb3469be2182e87d2759857b9af6d184bc53784 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/fvSolution @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict b/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict index 5702452d414d0973c9678a6ecbd60b7c640b713e..708c1cacd697d76dc1290bd72a30614d92ada9ef 100644 --- a/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict +++ b/tutorials/interDyMFoam/damBreakWithObstacle/system/setFieldsDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ diff --git a/tutorials/interDyMFoam/sloshingTank2D/0/U b/tutorials/interDyMFoam/sloshingTank2D/0/U new file mode 100644 index 0000000000000000000000000000000000000000..ae062bdf0d1fa6458df95c93f8ffeb9d7df188be --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/0/U @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/0/gamma.org b/tutorials/interDyMFoam/sloshingTank2D/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..2711563003114c5f54dc987dbeca328598f590e8 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/0/gamma.org @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/0/pd b/tutorials/interDyMFoam/sloshingTank2D/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..cefcbb7d442aad8e22f25fbaedbfbb0e68eed4b7 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/0/pd @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/Allclean b/tutorials/interDyMFoam/sloshingTank2D/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank2D/Allrun b/tutorials/interDyMFoam/sloshingTank2D/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank2D/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank2D/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..e7a0ec06d662ae2718dffc093a0605bbf62f732f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/icoFoam/cavity/FoamFile b/tutorials/interDyMFoam/sloshingTank2D/constant/environmentalProperties similarity index 61% rename from tutorials/icoFoam/cavity/FoamFile rename to tutorials/interDyMFoam/sloshingTank2D/constant/environmentalProperties index b74a10e4c6eb9704b58817e1a3769d8e8c71b446..40232c0c406c02d21a4ae29a31f702bbf84c6214 100644 --- a/tutorials/icoFoam/cavity/FoamFile +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/environmentalProperties @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -9,6 +9,11 @@ FoamFile { version 2.0; format ascii; - class volScalarField; - object p; + class dictionary; + object environmentalProperties; } +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..3c52247aa29f0cb0eeb549c39a24a6e11a8f3391 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-0.5 -15 -10.0) // Vertex bllcb = 0 + (-0.5 -20 -5) // Vertex bllc = 1 + (-0.5 -20 10) // Vertex bluc = 2 + (-0.5 -10 20) // Vertex bluct = 3 + (-0.5 15 -10.0) // Vertex brlcb = 4 + (-0.5 20 -5) // Vertex brlc = 5 + (-0.5 20 10) // Vertex bruc = 6 + (-0.5 10 20) // Vertex bruct = 7 + + (0.5 -15 -10.0) // Vertex fllcb = 8 + (0.5 -20 -5) // Vertex fllc = 9 + (0.5 -20 10) // Vertex fluc = 10 + (0.5 -10 20) // Vertex fluct = 11 + (0.5 15 -10.0) // Vertex frlcb = 12 + (0.5 20 -5) // Vertex frlc = 13 + (0.5 20 10) // Vertex fruc = 14 + (0.5 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 1) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 1) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 1) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + ) + + empty front + ( + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + ) + + empty back + ( + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..ced5dc533e3e9b795683e33517d450678eeab2be --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 1.0) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 1) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + ) + + empty front + ( + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + ) + + empty back + ( + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..57267e87f7e42310c06882be5d8864dc3c77adc2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/polyMesh/boundary @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + walls + { + type patch; + nFaces 148; + startFace 2646; + } + front + { + type empty; + nFaces 1360; + startFace 2794; + } + back + { + type empty; + nFaces 1360; + startFace 4154; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank2D/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/system/controlDict b/tutorials/interDyMFoam/sloshingTank2D/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..8d7fb44aa4528c4ac117926edad2016b31258934 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/system/controlDict @@ -0,0 +1,107 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank2D/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank2D/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/system/fvSolution b/tutorials/interDyMFoam/sloshingTank2D/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank2D/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U new file mode 100644 index 0000000000000000000000000000000000000000..ae062bdf0d1fa6458df95c93f8ffeb9d7df188be --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..2711563003114c5f54dc987dbeca328598f590e8 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..cefcbb7d442aad8e22f25fbaedbfbb0e68eed4b7 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..2b9f0bed1195391eeea3f4c700c909217a838025 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.2; + + // Min roll amplitude [rad] + rollAmin 0.1; + + // Heave amplitude [m] + heaveA 4; + + // Sway amplitude [m] + swayA 2.4; + + // Damping Coefficient [-] + Q 2; + + // Time Period for liquid [sec] + Tp 14; + + // Natural Period of Ship [sec] + Tpn 12; + + // Reference time step [sec] + dTi 0.06; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..3c52247aa29f0cb0eeb549c39a24a6e11a8f3391 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-0.5 -15 -10.0) // Vertex bllcb = 0 + (-0.5 -20 -5) // Vertex bllc = 1 + (-0.5 -20 10) // Vertex bluc = 2 + (-0.5 -10 20) // Vertex bluct = 3 + (-0.5 15 -10.0) // Vertex brlcb = 4 + (-0.5 20 -5) // Vertex brlc = 5 + (-0.5 20 10) // Vertex bruc = 6 + (-0.5 10 20) // Vertex bruct = 7 + + (0.5 -15 -10.0) // Vertex fllcb = 8 + (0.5 -20 -5) // Vertex fllc = 9 + (0.5 -20 10) // Vertex fluc = 10 + (0.5 -10 20) // Vertex fluct = 11 + (0.5 15 -10.0) // Vertex frlcb = 12 + (0.5 20 -5) // Vertex frlc = 13 + (0.5 20 10) // Vertex fruc = 14 + (0.5 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 1) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 1) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 1) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + ) + + empty front + ( + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + ) + + empty back + ( + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..ced5dc533e3e9b795683e33517d450678eeab2be --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 1.0) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 1) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + ) + + empty front + ( + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + ) + + empty back + ( + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..57267e87f7e42310c06882be5d8864dc3c77adc2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + walls + { + type patch; + nFaces 148; + startFace 2646; + } + front + { + type empty; + nFaces 1360; + startFace 2794; + } + back + { + type empty; + nFaces 1360; + startFace 4154; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..8d7fb44aa4528c4ac117926edad2016b31258934 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict @@ -0,0 +1,107 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/0/U b/tutorials/interDyMFoam/sloshingTank3D/0/U new file mode 100644 index 0000000000000000000000000000000000000000..df1f4c5a6cac4fec14e0fe27b4ce52192bbb8588 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..85902dcba56932d63c672f60079995cbf927b363 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/0/pd b/tutorials/interDyMFoam/sloshingTank3D/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..25379b239c07f497fa0d81af72650ff736e464f2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/Allclean b/tutorials/interDyMFoam/sloshingTank3D/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D/Allrun b/tutorials/interDyMFoam/sloshingTank3D/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..e7a0ec06d662ae2718dffc093a0605bbf62f732f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..0d21d111481f4479c9f59f540e7962d4a65e3e4c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5e355fd7025a748a668cd3d55bfe9bd984c78869 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 20) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 19) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..28068f37d475c1adafedec2ee7c20e8de8d7df32 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..b721c9c05888ff377853556eee6154363bc8e05f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U new file mode 100644 index 0000000000000000000000000000000000000000..df1f4c5a6cac4fec14e0fe27b4ce52192bbb8588 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..85902dcba56932d63c672f60079995cbf927b363 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..25379b239c07f497fa0d81af72650ff736e464f2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..2b9f0bed1195391eeea3f4c700c909217a838025 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.2; + + // Min roll amplitude [rad] + rollAmin 0.1; + + // Heave amplitude [m] + heaveA 4; + + // Sway amplitude [m] + swayA 2.4; + + // Damping Coefficient [-] + Q 2; + + // Time Period for liquid [sec] + Tp 14; + + // Natural Period of Ship [sec] + Tpn 12; + + // Reference time step [sec] + dTi 0.06; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..0d21d111481f4479c9f59f540e7962d4a65e3e4c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5e355fd7025a748a668cd3d55bfe9bd984c78869 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 20) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 19) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..28068f37d475c1adafedec2ee7c20e8de8d7df32 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..b721c9c05888ff377853556eee6154363bc8e05f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U new file mode 100644 index 0000000000000000000000000000000000000000..df1f4c5a6cac4fec14e0fe27b4ce52192bbb8588 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..85902dcba56932d63c672f60079995cbf927b363 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object gamma; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..25379b239c07f497fa0d81af72650ff736e464f2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat new file mode 100644 index 0000000000000000000000000000000000000000..0cf1f34768ee1525858abbcdf63827513c28faa0 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat @@ -0,0 +1,105 @@ + +100 +( +(0 ((0 0 0) (0 0 0))) +(0.40404 ((0.401298 0.952899 0.321827) (4.82741 2.79073 2.00649))) +(0.808081 ((0.786273 1.8071 0.635266) (9.52899 5.3597 3.93137))) +(1.21212 ((1.13927 2.47414 0.932149) (13.9822 7.5028 5.69634))) +(1.61616 ((1.44593 2.88493 1.20474) (18.071 9.04972 7.22963))) +(2.0202 ((1.69377 2.99691 1.44593) (21.6889 9.87755 8.46886))) +(2.42424 ((1.87273 2.7985 1.64943) (24.7414 9.92051 9.36363))) +(2.82828 ((1.97551 2.31024 1.80994) (27.1492 9.17518 9.87755))) +(3.23232 ((1.99794 1.5827 1.92329) (28.8493 7.7008 9.98971))) +(3.63636 ((1.93911 0.691238 1.9865) (29.7975 5.61451 9.69556))) +(4.0404 ((1.80141 -0.271818 1.99794) (29.9691 3.08209 9.00705))) +(4.44444 ((1.59044 -1.20672 1.95731) (29.3597 0.304768 7.9522))) +(4.84848 ((1.31478 -2.01664 1.86567) (27.985 -2.49677 6.5739))) +(5.25253 ((0.985644 -2.61769 1.7254) (25.881 -5.09992 4.92822))) +(5.65657 ((0.616418 -2.94762 1.54016) (23.1024 -7.29782 3.08209))) +(6.06061 ((0.22212 -2.97226 1.31478) (19.7217 -8.91584 1.1106))) +(6.46465 ((-0.181212 -2.68905 1.05513) (15.827 -9.82541 -0.906061))) +(6.86869 ((-0.577174 -2.12733 0.767988) (11.5198 -9.95425 -2.88587))) +(7.27273 ((-0.94966 -1.34528 0.460825) (6.91238 -9.29213 -4.7483))) +(7.67677 ((-1.28352 -0.42389 0.141652) (2.12479 -7.89165 -6.4176))) +(8.08081 ((-1.56518 0.541401 -0.181212) (-2.71818 -5.8641 -7.82588))) +(8.48485 ((-1.78317 1.45062 -0.499354) (-7.49031 -3.37059 -8.91584))) +(8.88889 ((-1.92863 2.20959 -0.804481) (-12.0672 -0.609253 -9.64317))) +(9.29293 ((-1.99566 2.73971 -1.08864) (-16.3296 2.20049 -9.97828))) +(9.69697 ((-1.98151 2.98607 -1.34443) (-20.1664 4.83539 -9.90753))) +(10.101 ((-1.88676 2.92315 -1.56518) (-23.4776 7.08607 -9.43381))) +(10.5051 ((-1.71528 2.55748 -1.74513) (-26.1769 8.77369 -8.57639))) +(10.9091 ((-1.47403 1.92692 -1.8796) (-28.194 9.76415 -7.37013))) +(11.3131 ((-1.17282 1.09679 -1.96508) (-29.4762 9.97875 -5.8641))) +(11.7172 ((-0.823912 0.153055 -1.99935) (-29.9902 9.40043 -4.11956))) +(12.1212 ((-0.441492 -0.806529 -1.98151) (-29.7226 8.07517 -2.20746))) +(12.5253 ((-0.0411152 -1.68258 -1.91202) (-28.6803 6.10824 -0.205576))) +(12.9293 ((0.360934 -2.38436 -1.7927) (-26.8905 3.65596 1.80467))) +(13.3333 ((0.748302 -2.83919 -1.62666) (-24.3999 0.913172 3.74151))) +(13.7374 ((1.10523 -2.99995 -1.41822) (-21.2733 -1.90217 5.52617))) +(14.1414 ((1.41721 -2.85 -1.17282) (-17.5923 -4.56637 7.08607))) +(14.5455 ((1.67155 -2.40487 -0.896852) (-13.4528 -6.86773 8.35775))) +(14.9495 ((1.8579 -1.71066 -0.597509) (-8.96264 -8.62338 9.28948))) +(15.3535 ((1.96868 -0.839275 -0.282593) (-4.2389 -9.69381 9.84339))) +(15.7576 ((1.99938 0.119039 0.0396874) (0.595311 -9.99397 9.99692))) +(16.1616 ((1.94877 1.06502 0.360934) (5.41401 -9.50001 9.74385))) +(16.5657 ((1.81889 1.9007 0.672773) (10.0916 -8.25118 9.09446))) +(16.9697 ((1.61503 2.53952 0.967078) (14.5062 -6.34671 8.07517))) +(17.3737 ((1.34549 2.91531 1.23618) (18.5427 -3.93793 6.72743))) +(17.7778 ((1.02121 2.98915 1.47306) (22.0959 -1.21624 5.10606))) +(18.1818 ((0.655401 2.75341 1.67155) (25.0732 1.60209 3.27701))) +(18.5859 ((0.262934 2.23248 1.82647) (27.3971 4.29312 1.31467))) +(18.9899 ((-0.140228 1.48033 1.93379) (29.0069 6.64301 -0.70114))) +(19.3939 ((-0.537686 0.574858 1.99071) (29.8607 8.46506 -2.68843))) +(19.798 ((-0.913275 -0.390153 1.99575) (29.9362 9.61447 -4.56637))) +(20.202 ((-1.25172 -1.31476 1.94877) (29.2315 9.99991 -6.25859))) +(20.6061 ((-1.53925 -2.10319 1.851) (27.765 9.59076 -7.69624))) +(21.0101 ((-1.76417 -2.67378 1.70499) (25.5748 8.41953 -8.82086))) +(21.4141 ((-1.91734 -2.96745 1.51454) (22.7181 6.57928 -9.58671))) +(21.8182 ((-1.99253 -2.95377 1.28462) (19.2692 4.21624 -9.96263))) +(22.2222 ((-1.98667 -2.63416 1.02121) (15.3182 1.51818 -9.93333))) +(22.6263 ((-1.9 -2.04172 0.731192) (10.9679 -1.30051 -9.50001))) +(23.0303 ((-1.73606 -1.23782 0.422115) (6.33173 -4.01587 -8.68029))) +(23.4343 ((-1.5015 -0.305712 0.102037) (1.53055 -6.41212 -7.50751))) +(23.8384 ((-1.20588 0.658059 -0.220701) (-3.31051 -8.29887 -6.02938))) +(24.2424 ((-0.861202 1.55367 -0.537686) (-8.06529 -9.52619 -4.30601))) +(24.6465 ((-0.4815 2.28837 -0.840658) (-12.6099 -9.99656 -2.4075))) +(25.0505 ((-0.082213 2.78605 -1.12172) (-16.8258 -9.6726 -0.411065))) +(25.4545 ((0.320417 2.99518 -1.37355) (-20.6032 -8.58006 1.60209))) +(25.8586 ((0.710015 2.89408 -1.58957) (-23.8436 -6.80574 3.55008))) +(26.2626 ((1.07073 2.49324 -1.76417) (-26.4626 -4.49064 5.35367))) +(26.6667 ((1.3879 1.83417 -1.89279) (-28.3919 -1.81871 6.93952))) +(27.0707 ((1.64862 0.985126 -1.97208) (-29.5812 0.997727 8.2431))) +(27.4747 ((1.84228 0.0340511 -1.99997) (-29.9995 3.73489 9.21142))) +(27.8788 ((1.96101 -0.92055 -1.97573) (-29.636 6.17528 9.80507))) +(28.2828 ((1.99998 -1.77981 -1.9) (-28.5 8.12498 9.99991))) +(28.6869 ((1.9576 -2.45473 -1.77475) (-26.6213 9.42907 9.78802))) +(29.0909 ((1.8356 -2.8754 -1.60325) (-24.0487 9.98392 9.17802))) +(29.4949 ((1.63894 -2.99826 -1.38996) (-20.8494 9.74545 8.19472))) +(29.899 ((1.37562 -2.81059 -1.14044) (-17.1066 8.73261 6.8781))) +(30.303 ((1.05635 -2.33181 -0.861202) (-12.918 7.02588 5.28174))) +(30.7071 ((0.694108 -1.61153 -0.559517) (-8.39275 4.76086 3.47054))) +(31.1111 ((0.303637 -0.724328 -0.243249) (-3.64873 2.11755 1.51818))) +(31.5152 ((-0.0991843 0.23789 0.0793591) (1.19039 -0.694017 -0.495921))) +(31.9192 ((-0.497971 1.17547 0.399899) (5.99848 -3.45044 -2.48986))) +(32.3232 ((-0.876504 1.9913 0.710015) (10.6502 -5.93269 -4.38252))) +(32.7273 ((-1.21939 2.60089 1.00163) (15.0244 -7.94353 -6.09693))) +(33.1313 ((-1.51267 2.9411 1.26713) (19.007 -9.32318 -7.56336))) +(33.5354 ((-1.74443 2.97669 1.49961) (22.4942 -9.96201 -8.72215))) +(33.9394 ((-1.90524 2.70397 1.69301) (25.3952 -9.80925 -9.52619))) +(34.3434 ((-1.98855 2.1512 1.84228) (27.6342 -8.87705 -9.94276))) +(34.7475 ((-1.99099 1.37563 1.94354) (29.1531 -7.23948 -9.95493))) +(35.1515 ((-1.91244 0.457572 1.99414) (29.9121 -5.02667 -9.56219))) +(35.5556 ((-1.75611 -0.507874 1.99277) (29.8915 -2.41443 -8.78053))) +(35.9596 ((-1.52835 -1.42072 1.93946) (29.0919 0.389661 -7.64173))) +(36.3636 ((-1.23842 -2.18642 1.8356) (27.5341 3.16279 -6.19211))) +(36.7677 ((-0.898128 -2.72566 1.68391) (25.2586 5.6846 -4.49064))) +(37.1717 ((-0.521304 -2.9826 1.48832) (22.3248 7.75471 -2.60652))) +(37.5758 ((-0.123276 -2.93062 1.25394) (18.8092 9.20863 -0.61638))) +(37.9798 ((0.279766 -2.57512 0.986886) (14.8033 9.93084 1.39883))) +(38.3838 ((0.671428 -1.9529 0.694108) (10.4116 9.86394 3.35714))) +(38.7879 ((1.03578 -1.12841 0.383239) (5.74858 9.01325 5.17891))) +(39.1919 ((1.35801 -0.187052 0.0623811) (0.935716 7.44637 6.79003))) +(39.596 ((1.625 0.77368 -0.260102) (-3.90153 5.2878 8.12498))) +(40 ((1.82589 1.65428 -0.575807) (-8.6371 2.70906 9.12945))) +) + diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..56eb2294e88b288eff3d7f4f8668a2302f03b6ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object motionProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SKA; + + SKACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Time data file name + timeDataFileName "constant/6DoF.dat"; + } +} + + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..0d21d111481f4479c9f59f540e7962d4a65e3e4c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (0 4 12 8) + (4 5 13 12) + (5 6 14 13) + (6 7 15 14) + (7 3 11 15) + (3 2 10 11) + (2 1 9 10) + (1 0 8 9) + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5e355fd7025a748a668cd3d55bfe9bd984c78869 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +define(VCOUNT, 0) +define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))]) + +define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4)) +define(quad2D, (b$1 b$2 f$2 f$1)) +define(frontQuad, (f$1 f$2 f$3 f$4)) +define(backQuad, (b$1 b$4 b$3 b$2)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + +define(l, 20) // Length of tank (x-direction) +define(b, 40) // Breadth of tank (y-direction) +define(h, 30) // Depth of tank (z-direction) + +define(hlc, 5) // Depth to the top (height) of lower chamfer +define(huc, 10) // Height of upper chamfer + +define(thetalc, 45) // Angle of lower chamfer to the horizontal +define(thetauc, 45) // Angle of upper chamfer to the horizontal + +define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction +define(CofGz, 10.0) // Centre of gravity in z-direction + +define(Nl, 19) // Number of cells in the length (1 for 2D) +define(Nb, 40) // Number of cells in the breadth +define(Nhlc, 6) // Number of cells in the height of the lower champfer +define(Nh, 16) // Number of cells in the height between the chamfers +define(Nhuc, 12) // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + +define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer +define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer + +define(Yl, -CofGy) +define(Yllc, calc(Yl + blc)) +define(Yluc, calc(Yl + buc)) + +define(Yr, calc(Yl + b)) +define(Yrlc, calc(Yr - blc)) +define(Yruc, calc(Yr - buc)) + +define(Zb, -CofGz) +define(Zlc, calc(Zb + hlc)) +define(Zt, calc(Zb + h)) +define(Zuc, calc(Zt - huc)) + +define(Xf, calc(l/2.0)) +define(Xb, calc(Xf - l)) + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (Xb Yllc Zb) vlabel(bllcb) + (Xb Yl Zlc) vlabel(bllc) + (Xb Yl Zuc) vlabel(bluc) + (Xb Yluc Zt) vlabel(bluct) + (Xb Yrlc Zb) vlabel(brlcb) + (Xb Yr Zlc) vlabel(brlc) + (Xb Yr Zuc) vlabel(bruc) + (Xb Yruc Zt) vlabel(bruct) + + (Xf Yllc Zb) vlabel(fllcb) + (Xf Yl Zlc) vlabel(fllc) + (Xf Yl Zuc) vlabel(fluc) + (Xf Yluc Zt) vlabel(fluct) + (Xf Yrlc Zb) vlabel(frlcb) + (Xf Yr Zlc) vlabel(frlc) + (Xf Yr Zuc) vlabel(fruc) + (Xf Yruc Zt) vlabel(fruct) +); + +blocks +( + // block0 + hex2D(llcb, rlcb, rlc, llc) + (Nb Nhlc Nl) + simpleGrading (1 1 1) + + // block1 + hex2D(llc, rlc, ruc, luc) + (Nb Nh Nl) + simpleGrading (1 1 1) + + // block2 + hex2D(luc, ruc, ruct, luct) + (Nb Nhuc Nl) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + quad2D(llcb, rlcb) + quad2D(rlcb, rlc) + quad2D(rlc, ruc) + quad2D(ruc, ruct) + quad2D(ruct, luct) + quad2D(luct, luc) + quad2D(luc, llc) + quad2D(llc, llcb) + frontQuad(llcb, rlcb, rlc, llc) + frontQuad(llc, rlc, ruc, luc) + frontQuad(luc, ruc, ruct, luct) + backQuad(llcb, rlcb, rlc, llc) + backQuad(llc, rlc, ruc, luc) + backQuad(luc, ruc, ruct, luct) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..28068f37d475c1adafedec2ee7c20e8de8d7df32 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..5d4b8d27128cb0d0772ff9555d68780c7006c203 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files @@ -0,0 +1,3 @@ +gen6DoF.C + +EXE = $(FOAM_USER_APPBIN)/gen6DoF diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..fa15f124528ebfcaf279a88a73a0d7954f2e9dc1 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +EXE_LIBS = \ + -lfiniteVolume diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C new file mode 100644 index 0000000000000000000000000000000000000000..0d97918551c1b4218414e817c5e86e6f5fedd100 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Application + gen6DoF + +Description + Generate simple sinusoidal 6-DoF motion control-file. + +\*---------------------------------------------------------------------------*/ + +#include "List.H" +#include "vector.H" +#include "Vector2D.H" +#include "Tuple2.H" +#include "OFstream.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Main program: + +int main(int argc, char *argv[]) +{ + // End-time of the table + const scalar endTime = 40; + + // Number of entries in the table + const label nTimes = 100; + + // Amplitude of the translation [m] + const vector transAmp(2, 3, 2); + + // Frequency of the translation [rad/s] + const vector transOmega(0.5, 0.8, 0.4); + + // Amplitude of the rotation [deg] + const vector rotAmp(30, 10, 10); + + // Frequency of the rotation [rad/s] + const vector rotOmega(0.4, 0.7, 0.5); + + List<Tuple2<scalar, Vector2D<vector> > > timeValues(nTimes); + + forAll(timeValues, i) + { + scalar t = (endTime*i)/(nTimes - 1); + timeValues[i].first() = t; + + timeValues[i].second()[0] = vector + ( + transAmp.x()*Foam::sin(transOmega.x()*t), + transAmp.y()*Foam::sin(transOmega.y()*t), + transAmp.z()*Foam::sin(transOmega.z()*t) + ); + + timeValues[i].second()[1] = vector + ( + rotAmp.x()*Foam::sin(rotOmega.x()*t), + rotAmp.y()*Foam::sin(rotOmega.y()*t), + rotAmp.z()*Foam::sin(rotOmega.z()*t) + ); + } + + { + OFstream dataFile("6DoF.dat"); + dataFile << timeValues << endl; + } + + Info << "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..b721c9c05888ff377853556eee6154363bc8e05f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/mdEquilibrationFoam/Allclean b/tutorials/mdEquilibrationFoam/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..7880b1387e0bea443782452bcd1172445f5432e1 --- /dev/null +++ b/tutorials/mdEquilibrationFoam/Allclean @@ -0,0 +1,13 @@ +#!/bin/sh + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cd periodicCube + rm -rf 0 > /dev/null 2>&1 + rm Ar-Ar > /dev/null 2>&1 + rm constant/idList + + cleanCase +cd .. + diff --git a/tutorials/mdEquilibrationFoam/Allrun b/tutorials/mdEquilibrationFoam/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..0c590da09a8c91a0815034deba71b3d4d681e762 --- /dev/null +++ b/tutorials/mdEquilibrationFoam/Allrun @@ -0,0 +1,13 @@ +#!/bin/sh + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="mdEquilibrationFoam" + +cd periodicCube + runApplication blockMesh + runApplication molConfig + runApplication $application +cd .. + diff --git a/tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary b/tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..54dbb7ef4a6be0e63882c5fe42752ad8c7a3b896 --- /dev/null +++ b/tutorials/mdEquilibrationFoam/periodicCube/constant/polyMesh/boundary @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + periodicX + { + type cyclic; + nFaces 288; + startFace 4752; + featureCos 0.9; + } + periodicY + { + type cyclic; + nFaces 288; + startFace 5040; + featureCos 0.9; + } + periodicZ + { + type cyclic; + nFaces 288; + startFace 5328; + featureCos 0.9; + } +) + +// ************************************************************************* // diff --git a/wmake/rules/linux64Gcc42/dirToString b/wmake/rules/linux64Gcc42/dirToString deleted file mode 100755 index 1f9e9266a6afac14ad47fa6507d0a988cbf31bbd..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linux64Gcc42/dirToString and /dev/null differ diff --git a/wmake/rules/linux64Gcc42/wmkdep b/wmake/rules/linux64Gcc42/wmkdep deleted file mode 100755 index 002e73dea8fc1318429203a4d6982765c3e6f01b..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linux64Gcc42/wmkdep and /dev/null differ diff --git a/wmake/rules/linux64Icc/dirToString b/wmake/rules/linux64Icc/dirToString deleted file mode 100755 index e58c7b3a7352e80d171d706ce53de29eb1a3c817..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linux64Icc/dirToString and /dev/null differ diff --git a/wmake/rules/linux64Icc/wmkdep b/wmake/rules/linux64Icc/wmkdep deleted file mode 100755 index b7653e1c7aa017d4e3796ab233df9a6028216567..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linux64Icc/wmkdep and /dev/null differ diff --git a/wmake/rules/linuxGcc/dirToString b/wmake/rules/linuxGcc/dirToString deleted file mode 100755 index fdcb3c3445d2a3a2839449d3ab7fb98b1a37a345..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxGcc/dirToString and /dev/null differ diff --git a/wmake/rules/linuxGcc/wmkdep b/wmake/rules/linuxGcc/wmkdep deleted file mode 100755 index c80fc36703955a9282993d8efdbf12a27ec2fd21..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxGcc/wmkdep and /dev/null differ diff --git a/wmake/rules/linuxGcc42/dirToString b/wmake/rules/linuxGcc42/dirToString deleted file mode 100755 index fdcb3c3445d2a3a2839449d3ab7fb98b1a37a345..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxGcc42/dirToString and /dev/null differ diff --git a/wmake/rules/linuxGcc42/wmkdep b/wmake/rules/linuxGcc42/wmkdep deleted file mode 100755 index c80fc36703955a9282993d8efdbf12a27ec2fd21..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxGcc42/wmkdep and /dev/null differ diff --git a/wmake/rules/linuxIA64Gcc/dirToString b/wmake/rules/linuxIA64Gcc/dirToString deleted file mode 100755 index b92e398d1bad9423d3c9f8ab94fbb8f97470ace3..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxIA64Gcc/dirToString and /dev/null differ diff --git a/wmake/rules/linuxIA64Gcc/wmkdep b/wmake/rules/linuxIA64Gcc/wmkdep deleted file mode 100755 index a78ea3976423804bd9b3c4d31bcff59f44bcbb4f..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxIA64Gcc/wmkdep and /dev/null differ diff --git a/wmake/rules/linuxIA64Icc/dirToString b/wmake/rules/linuxIA64Icc/dirToString deleted file mode 100755 index 5a96ebf8baade48ae4d0ef2e9a94004bd5776873..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxIA64Icc/dirToString and /dev/null differ diff --git a/wmake/rules/linuxIA64Icc/wmkdep b/wmake/rules/linuxIA64Icc/wmkdep deleted file mode 100755 index 28d1bcba3a2fadde577887e927809dc53c885e94..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxIA64Icc/wmkdep and /dev/null differ diff --git a/wmake/rules/linuxIcc/dirToString b/wmake/rules/linuxIcc/dirToString deleted file mode 100755 index 44215285abfed2399965c818eaf13e2a7d4ba353..0000000000000000000000000000000000000000 Binary files a/wmake/rules/linuxIcc/dirToString and /dev/null differ diff --git a/wmake/rules/solarisGcc/dirToString b/wmake/rules/solarisGcc/dirToString deleted file mode 100755 index 914aee149a2ca9e3cd4e90f28c1c097b6766f873..0000000000000000000000000000000000000000 Binary files a/wmake/rules/solarisGcc/dirToString and /dev/null differ diff --git a/wmake/rules/solarisGcc/wmkdep b/wmake/rules/solarisGcc/wmkdep deleted file mode 100755 index 24118dc007808b06fe3e635a914fa2a92fe1e49f..0000000000000000000000000000000000000000 Binary files a/wmake/rules/solarisGcc/wmkdep and /dev/null differ