59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
|
|
||
|
// Volume surfactant concentration
|
||
|
|
||
|
volScalarField* CPtr = NULL;
|
||
|
|
||
|
if(!interface.cleanInterface() && interface.surfactant().soluble())
|
||
|
{
|
||
|
Info << "\nReading field C\n" << endl;
|
||
|
CPtr = new volScalarField
|
||
|
(
|
||
|
IOobject
|
||
|
(
|
||
|
"C",
|
||
|
runTime.timeName(),
|
||
|
mesh,
|
||
|
IOobject::MUST_READ,
|
||
|
IOobject::AUTO_WRITE
|
||
|
),
|
||
|
mesh
|
||
|
);
|
||
|
|
||
|
if(runTime.timeIndex() == 0)
|
||
|
{
|
||
|
const dimensionedScalar& CA =
|
||
|
interface.surfactant().surfactBulkConc();
|
||
|
|
||
|
dimensionedScalar CB("CB", CA.dimensions(), 0);
|
||
|
|
||
|
(*CPtr) = fluidIndicator*(CA - CB) + CB;
|
||
|
|
||
|
if
|
||
|
(
|
||
|
CPtr->boundaryField()[spacePatchID].type()
|
||
|
== inletOutletFvPatchScalarField::typeName
|
||
|
)
|
||
|
{
|
||
|
inletOutletFvPatchScalarField& spaceC =
|
||
|
refCast<inletOutletFvPatchScalarField>
|
||
|
(
|
||
|
CPtr->boundaryField()[spacePatchID]
|
||
|
);
|
||
|
|
||
|
spaceC.refValue() = CA.value();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
FatalErrorIn(args.executable())
|
||
|
<< "Boundary condition for bulk surfactant concentration at "
|
||
|
<< "space patch isn't and should be: "
|
||
|
<< inletOutletFvPatchScalarField::typeName
|
||
|
<< abort(FatalError);
|
||
|
}
|
||
|
|
||
|
CPtr->correctBoundaryConditions();
|
||
|
|
||
|
CPtr->write();
|
||
|
}
|
||
|
}
|