Go to the documentation of this file.
69 int main(
int argc,
char *argv[])
73 "Solver for two incompressible, isothermal, immiscible fluids with"
75 "using VOF (volume of fluid) phase-fraction based interface capturing,"
76 " with optional dynamic mesh motion (including overset)\n"
77 "and mesh topology changes including adaptive re-meshing."
88 #include "createDyMControls.H"
89 #include "initContinuityErrs.H"
90 #include "createFields.H"
99 IOobject::READ_IF_PRESENT,
107 #include "CourantNo.H"
108 #include "setInitialDeltaT.H"
117 Info<<
"\nStarting time loop\n" <<
endl;
121 #include "readControls.H"
128 #include "CourantNo.H"
129 #include "setDeltaT.H"
140 scalar timeBeforeMeshUpdate =
runTime.elapsedCpuTime();
146 Info<<
"Execution time for mesh.update() = "
147 <<
runTime.elapsedCpuTime() - timeBeforeMeshUpdate
158 localMin<scalar>(
mesh).interpolate(cellMask.oldTime());
171 Uf.boundaryFieldRef()[patchI] =
172 Uint.boundaryField()[patchI];
179 #include "correctPhi.H"
185 faceMask = localMin<scalar>(
mesh).interpolate(cellMask);
200 #include "alphaControls.H"
216 #include "alphaEqnSubCycle.H"
CMULES: Multidimensional universal limiter for explicit corrected implicit solution.
const surfaceScalarField & ghf
tmp< volScalarField > rAU
Info<< "Reading field U\n"<< endl;volVectorField U(IOobject("U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);volScalarField rho(IOobject("rho", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE), thermo.rho());volVectorField rhoU(IOobject("rhoU", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), rho *U);volScalarField rhoE(IOobject("rhoE", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), rho *(e+0.5 *magSqr(U)));surfaceScalarField pos(IOobject("pos", runTime.timeName(), mesh), mesh, dimensionedScalar("pos", dimless, 1.0));surfaceScalarField neg(IOobject("neg", runTime.timeName(), mesh), mesh, dimensionedScalar("neg", dimless, -1.0));surfaceScalarField phi("phi", fvc::flux(rhoU));Info<< "Creating turbulence model\n"<< endl;autoPtr< compressible::turbulenceModel > turbulence(compressible::turbulenceModel::New(rho, U, phi, thermo))
static constexpr const zero Zero
interfaceProperties interface(alpha1, U, thermo->transportPropertiesDict())
autoPtr< surfaceVectorField > Uf
surfaceScalarField faceMask(localMin< scalar >(mesh).interpolate(cellMask))
Ostream & endl(Ostream &os)
Creates and initialises the velocity velocity field Uf.
Sets blocked cells mask field.
Sets blocked cells mask field.
const volScalarField & gh
tmp< GeometricField< Type, faPatchField, areaMesh > > div(const GeometricField< Type, faePatchField, edgeMesh > &ssf)
void makeRelative(surfaceScalarField &phi, const volVectorField &U)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Execute application functionObjects to post-process existing results.
const uniformDimensionedVectorField & g
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Read the control parameters used by setDeltaT.
Calculates and outputs the mean and maximum Courant Numbers.
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
Info<< "Creating temperaturePhaseChangeTwoPhaseMixture\n"<< endl;autoPtr< temperaturePhaseChangeTwoPhaseMixture > mixture
Adjust the balance of fluxes on the faces between interpolated and calculated to obey continuity.
static tmp< GeometricField< Type, faePatchField, edgeMesh > > interpolate(const GeometricField< Type, faPatchField, areaMesh > &tvf, const edgeScalarField &faceFlux, Istream &schemeData)
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)