31 void Foam::solvers::multiphaseEuler::cellMomentumPredictor()
33 Info<<
"Constructing momentum equations" <<
endl;
37 autoPtr<phaseSystem::momentumTransferTable>
41 momentumTransfer(momentumTransferPtr());
43 const PtrList<volScalarField> Kds(
fluid.
Kds());
60 *momentumTransfer[phase.name()]
66 UEqns[phase.index()].relax();
68 U.correctBoundaryConditions();
74 void Foam::solvers::multiphaseEuler::faceMomentumPredictor()
76 Info<<
"Constructing face momentum equations" <<
endl;
78 phaseSystem& fluid(fluid_);
80 autoPtr<phaseSystem::momentumTransferTable>
81 momentumTransferPtr(fluid.momentumTransferf());
84 momentumTransfer(momentumTransferPtr());
86 forAll(fluid.movingPhases(), movingPhasei)
88 phaseModel& phase = fluid.movingPhases()[movingPhasei];
101 *momentumTransfer[phase.name()]
106 UEqns[phase.index()].relax();
108 U.correctBoundaryConditions();
120 UEqns.setSize(phases.size());
124 faceMomentumPredictor();
128 cellMomentumPredictor();
#define forAll(list, i)
Loop across all elements in list.
bool constrain(fvMatrix< Type > &eqn) const
Apply constraints to an equation.
virtual PtrList< volScalarField > Kds() const =0
Return the implicit part of the drag force.
const phaseModelPartialList & movingPhases() const
Return the models for phases that are moving.
virtual autoPtr< momentumTransferTable > momentumTransfer()=0
Return the momentum transfer matrices for the cell-based.
HashPtrTable< fvVectorMatrix > momentumTransferTable
Foam::fvModels & fvModels() const
Return the fvModels that are created on demand.
Foam::fvConstraints & fvConstraints() const
Return the fvConstraints that are created on demand.
PtrList< fvVectorMatrix > UEqns
Temporary phase momentum matrices.
virtual void momentumPredictor()
Construct and optionally solve the momentum equation.
const phaseSystem & fluid
Reference to the multiphase fluid.
Foam::fvConstraints & fvConstraints(Foam::fvConstraints::New(mesh))
Foam::fvModels & fvModels(Foam::fvModels::New(mesh))
pimpleControl pimple(mesh)
Calculate the matrix for implicit and explicit sources.
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
VolField< vector > volVectorField
Ostream & endl(Ostream &os)
Add newline and flush stream.
VolField< scalar > volScalarField
fvMatrix< vector > fvVectorMatrix