125 lines
1.9 KiB
C
125 lines
1.9 KiB
C
|
|
||
|
Info<< "\nReading field p\n" << endl << flush;
|
||
|
volScalarField p
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"p",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::MUST_READ,
|
||
|
IOobject::AUTO_WRITE
|
||
|
),
|
||
|
mesh
|
||
|
);
|
||
|
|
||
|
|
||
|
Info<< "Reading field U\n" << endl << flush;
|
||
|
volVectorField U
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"U",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::MUST_READ,
|
||
|
IOobject::AUTO_WRITE
|
||
|
),
|
||
|
mesh
|
||
|
);
|
||
|
|
||
|
|
||
|
# include "createPhi.H"
|
||
|
|
||
|
|
||
|
volScalarField rho
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"rho",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::NO_READ,
|
||
|
IOobject::NO_WRITE
|
||
|
),
|
||
|
mesh,
|
||
|
dimensionedScalar("0", dimMass/dimVolume, 0)
|
||
|
);
|
||
|
|
||
|
|
||
|
freeSurface interface(mesh, rho, U, p, phi);
|
||
|
|
||
|
|
||
|
volScalarField* fluidIndicatorPtr = NULL;
|
||
|
|
||
|
if(Pstream::parRun())
|
||
|
{
|
||
|
fluidIndicatorPtr = new volScalarField
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"fluidIndicator",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::MUST_READ,
|
||
|
IOobject::AUTO_WRITE
|
||
|
),
|
||
|
mesh
|
||
|
);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
fluidIndicatorPtr = new volScalarField
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"fluidIndicator",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::NO_READ,
|
||
|
IOobject::NO_WRITE
|
||
|
),
|
||
|
interface.fluidIndicator()
|
||
|
);
|
||
|
}
|
||
|
|
||
|
volScalarField& fluidIndicator = *fluidIndicatorPtr;
|
||
|
|
||
|
|
||
|
rho = fluidIndicator
|
||
|
*(
|
||
|
interface.rhoFluidA()
|
||
|
- interface.rhoFluidB()
|
||
|
)
|
||
|
+ interface.rhoFluidB();
|
||
|
|
||
|
|
||
|
volScalarField mu
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"mu",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::NO_READ,
|
||
|
IOobject::NO_WRITE
|
||
|
),
|
||
|
fluidIndicator
|
||
|
*(
|
||
|
interface.muFluidA()
|
||
|
- interface.muFluidB()
|
||
|
)
|
||
|
+ interface.muFluidB()
|
||
|
);
|
||
|
|
||
|
|
||
|
// Read interpolators if present
|
||
|
if (interface.twoFluids())
|
||
|
{
|
||
|
interface.interpolatorAB();
|
||
|
}
|
||
|
|
||
|
|
||
|
# include "setRefCell.H"
|
||
|
|