Multidimensional universal limiter with explicit solution. More...
Multidimensional universal limiter with explicit solution.
Solve a convective-only transport equation using an explicit universal multi-dimensional limiter.
Parameters are the variable to solve, the normal convective flux and the actual explicit flux of the variable which is also used to return limited flux used in the bounded-solution.
Functions | |
template<class RhoType , class SpType , class SuType > | |
void | explicitSolve (const RhoType &rho, volScalarField &psi, const surfaceScalarField &phiBD, surfaceScalarField &phiPsi, const SpType &Sp, const SuType &Su, const scalar psiMax, const scalar psiMin) |
void | explicitSolve (volScalarField &psi, const surfaceScalarField &phiBD, surfaceScalarField &phiPsi, const scalar psiMax, const scalar psiMin) |
template<class RhoType , class SpType , class SuType > | |
void | implicitSolve (const RhoType &rho, volScalarField &gamma, const surfaceScalarField &phi, surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su, const scalar psiMax, const scalar psiMin) |
void | implicitSolve (volScalarField &gamma, const surfaceScalarField &phi, surfaceScalarField &phiCorr, const scalar psiMax, const scalar psiMin) |
template<class RhoType , class SpType , class SuType > | |
void | limiter (scalarField &allLambda, const RhoType &rho, const volScalarField &psi, const surfaceScalarField &phiBD, const surfaceScalarField &phiCorr, const SpType &Sp, const SuType &Su, const scalar psiMax, const scalar psiMin, const label nLimiterIter) |
void explicitSolve | ( | const RhoType & | rho, |
volScalarField & | psi, | ||
const surfaceScalarField & | phiBD, | ||
surfaceScalarField & | phiPsi, | ||
const SpType & | Sp, | ||
const SuType & | Su, | ||
const scalar | psiMax, | ||
const scalar | psiMin | ||
) |
Definition at line 43 of file MULESTemplates.C.
References GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), TimeState::deltaT(), Foam::dimless, Foam::endl(), DimensionedField< Type, GeoMesh >::field(), Foam::fvc::flux(), Foam::Info, limiter(), DimensionedField< Type, GeoMesh >::mesh(), mesh, polyMesh::moving(), IOobject::name(), primitiveMesh::nFaces(), GeometricField< Type, PatchField, GeoMesh >::oldTime(), phi, psi, Foam::fvc::surfaceIntegrate(), fvMesh::time(), Time::timeName(), dimensioned< Type >::value(), fvMesh::Vsc(), and fvMesh::Vsc0().
Referenced by explicitSolve().
void explicitSolve | ( | volScalarField & | psi, |
const surfaceScalarField & | phiBD, | ||
surfaceScalarField & | phiPsi, | ||
const scalar | psiMax, | ||
const scalar | psiMin | ||
) |
Definition at line 42 of file MULES.C.
References explicitSolve().
void implicitSolve | ( | const RhoType & | rho, |
volScalarField & | gamma, | ||
const surfaceScalarField & | phi, | ||
surfaceScalarField & | phiCorr, | ||
const SpType & | Sp, | ||
const SuType & | Su, | ||
const scalar | psiMax, | ||
const scalar | psiMin | ||
) |
fv::gaussLaplacianScheme<scalar, scalar>(mesh, CDs, snGrads)
.fvmLaplacian(Dpsif, psi)
Definition at line 131 of file MULESTemplates.C.
References Foam::fvc::ddt(), TimeState::deltaT(), Foam::dimless, Foam::resError::div(), Foam::endl(), DimensionedField< Type, GeoMesh >::field(), fvMatrix< Type >::flux(), Foam::gMax(), Foam::gMin(), Foam::Info, GeometricField< Type, PatchField, GeoMesh >::internalField(), limiter(), dictionary::lookup(), Foam::mag(), fvMesh::magSf(), Foam::max(), DimensionedField< Type, GeoMesh >::mesh(), mesh, Foam::min(), IOobject::name(), primitiveMesh::nFaces(), readScalar, Foam::solve(), solution::solverDict(), Foam::resError::Sp(), fvMesh::time(), and Time::timeName().
Referenced by implicitSolve().
void implicitSolve | ( | volScalarField & | gamma, |
const surfaceScalarField & | phi, | ||
surfaceScalarField & | phiCorr, | ||
const scalar | psiMax, | ||
const scalar | psiMin | ||
) |
Definition at line 63 of file MULES.C.
References implicitSolve().
void limiter | ( | scalarField & | allLambda, |
const RhoType & | rho, | ||
const volScalarField & | psi, | ||
const surfaceScalarField & | phiBD, | ||
const surfaceScalarField & | phiCorr, | ||
const SpType & | Sp, | ||
const SuType & | Su, | ||
const scalar | psiMax, | ||
const scalar | psiMin, | ||
const label | nLimiterIter | ||
) |
Definition at line 306 of file MULESTemplates.C.
References fvMesh::boundary(), GeometricField< Type, PatchField, GeoMesh >::boundaryField(), fvPatchField< Type >::coupled(), TimeState::deltaT(), Foam::dimless, forAll, Foam::max(), DimensionedField< Type, GeoMesh >::mesh(), mesh, Foam::min(), polyMesh::moving(), fvMesh::neighbour(), GeometricField< Type, PatchField, GeoMesh >::oldTime(), fvMesh::owner(), fvPatchField< Type >::patchNeighbourField(), psi, List< T >::size(), Foam::resError::Sp(), fvMesh::time(), Time::timeName(), dimensioned< Type >::value(), fvMesh::Vsc(), and fvMesh::Vsc0().
Referenced by limitedSnGrad< Type >::correction(), explicitSolve(), boundedBackwardDdtScheme::fvcDdt(), boundedBackwardDdtScheme::fvmDdt(), faceLimitedGrad< Type >::grad(), cellLimitedGrad< Type >::grad(), implicitSolve(), LimitedScheme< Type, Limiter, LimitFunc >::limiter(), multivariateScheme< Type, Scheme >::multivariateScheme(), multivariateSelectionScheme< Type >::multivariateSelectionScheme(), limitWith< Type >::weights(), and limitedSurfaceInterpolationScheme< Type >::weights().