124 lines
1.9 KiB
C
124 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"
|
|
|