void Foam::porosityModels::solidification::apply ( tensorField& AU, const AlphaFieldType& alpha, const RhoFieldType& rho, const volVectorField& U ) const { const volScalarField& T = mesh_.lookupObject<volScalarField> ( IOobject::groupName(TName_, U.group()) ); forAll(cellZoneIDs_, zoneI) { const labelList& cells = mesh_.cellZones()[cellZoneIDs_[zoneI]]; forAll(cells, i) { const label celli = cells[i]; AU[celli] += tensor::I*alpha[celli]*rho[celli]*D_->value(T[celli]); } } }
Foam::turbulenceModel::turbulenceModel ( const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const word& propertiesName ) : IOdictionary ( IOobject ( IOobject::groupName(propertiesName, U.group()), U.time().constant(), U.db(), IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE ) ), runTime_(U.time()), mesh_(U.mesh()), U_(U), alphaRhoPhi_(alphaRhoPhi), phi_(phi), y_(mesh_) {}
Foam::autoPtr < Foam::TurbulenceModel<Alpha, Rho, BasicTurbulenceModel, TransportModel> > Foam::TurbulenceModel<Alpha, Rho, BasicTurbulenceModel, TransportModel>::New ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName ) { // get model name, but do not register the dictionary // otherwise it is registered in the database twice const word modelType ( IOdictionary ( IOobject ( IOobject::groupName(propertiesName, U.group()), U.time().constant(), U.db(), IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE, false ) ).lookup("simulationType") ); Info<< "Selecting turbulence model type " << modelType << endl; typename dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find(modelType); if (cstrIter == dictionaryConstructorTablePtr_->end()) { FatalErrorIn ( "TurbulenceModel::New" "(const alphaField&, const rhoField&, " "const volVectorField&, const surfaceScalarField&, " "transportModel&, const word&)" ) << "Unknown TurbulenceModel type " << modelType << nl << nl << "Valid TurbulenceModel types:" << endl << dictionaryConstructorTablePtr_->sortedToc() << exit(FatalError); } return autoPtr<TurbulenceModel> ( cstrIter()(alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName) ); }
continuousGasKEpsilon<BasicTurbulenceModel>::continuousGasKEpsilon ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName, const word& type ) : kEpsilon<BasicTurbulenceModel> ( alpha, rho, U, alphaPhi, phi, transport, propertiesName, type ), liquidTurbulencePtr_(NULL), nutEff_ ( IOobject ( IOobject::groupName("nutEff", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), this->nut_ ), alphaInversion_ ( dimensioned<scalar>::lookupOrAddToDict ( "alphaInversion", this->coeffDict_, 0.7 ) ) { if (type == typeName) { kEpsilon<BasicTurbulenceModel>::correctNut(); this->printCoeffs(type); } }
Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::nonlinearEddyViscosity ( const word& modelName, const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName ) : eddyViscosity<BasicTurbulenceModel> ( modelName, alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ), nonlinearStress_ ( IOobject ( IOobject::groupName("nonlinearStress", U.group()), this->runTime_.timeName(), this->mesh_ ), this->mesh_, dimensionedSymmTensor ( "nonlinearStress", sqr(dimVelocity), symmTensor::zero ) ) {}
void Foam::porosityModels::solidification::apply ( tensorField& AU, const RhoFieldType& rho, const volVectorField& U ) const { if (alphaName_ == "none") { return apply(AU, geometricOneField(), rho, U); } else { const volScalarField& alpha = mesh_.lookupObject<volScalarField> ( IOobject::groupName(alphaName_, U.group()) ); return apply(AU, alpha, rho, U); } }
Foam::eddyViscosity<BasicTurbulenceModel>::eddyViscosity ( const word& type, const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName ) : linearViscousStress<BasicTurbulenceModel> ( type, alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ), nut_ ( IOobject ( IOobject::groupName("nut", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ) {}
Foam::autoPtr<Foam::laminarModel<BasicTurbulenceModel>> Foam::laminarModel<BasicTurbulenceModel>::New ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName ) { IOdictionary modelDict ( IOobject ( IOobject::groupName(propertiesName, U.group()), U.time().constant(), U.db(), IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE, false ) ); if (modelDict.found("laminar")) { // get model name, but do not register the dictionary // otherwise it is registered in the database twice const word modelType ( modelDict.subDict("laminar").lookup("laminarModel") ); Info<< "Selecting laminar stress model " << modelType << endl; typename dictionaryConstructorTable::iterator cstrIter = dictionaryConstructorTablePtr_->find(modelType); if (cstrIter == dictionaryConstructorTablePtr_->end()) { FatalErrorInFunction << "Unknown laminarModel type " << modelType << nl << nl << "Valid laminarModel types:" << endl << dictionaryConstructorTablePtr_->sortedToc() << exit(FatalError); } return autoPtr<laminarModel> ( cstrIter() ( alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName) ); } else { Info<< "Selecting laminar stress model " << laminarModels::Stokes<BasicTurbulenceModel>::typeName << endl; return autoPtr<laminarModel> ( new laminarModels::Stokes<BasicTurbulenceModel> ( alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ) ); } }
kOmegaSSTSASnew<BasicTurbulenceModel>::kOmegaSSTSASnew ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName, const word& type ) : kOmegaSST<BasicTurbulenceModel> ( alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ), Cs_ ( dimensioned<scalar>::lookupOrAddToDict ( "Cs", this->coeffDict_, 0.262 ) ), kappa_ ( dimensioned<scalar>::lookupOrAddToDict ( "kappa", this->coeffDict_, 0.41 ) ), zeta2_ ( dimensioned<scalar>::lookupOrAddToDict ( "zeta2", this->coeffDict_, 1.47 ) ), sigmaPhi_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmaPhi", this->coeffDict_, 2.0/3.0 ) ), C_ ( dimensioned<scalar>::lookupOrAddToDict ( "C", this->coeffDict_, 2 ) ), delta_ ( LESdelta::New ( IOobject::groupName("delta", U.group()), *this, this->coeffDict_ ) ) {}
RNGkEpsilon<BasicTurbulenceModel>::RNGkEpsilon ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName, const word& type ) : eddyViscosity<RASModel<BasicTurbulenceModel> > ( type, alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ), Cmu_ ( dimensioned<scalar>::lookupOrAddToDict ( "Cmu", this->coeffDict_, 0.0845 ) ), C1_ ( dimensioned<scalar>::lookupOrAddToDict ( "C1", this->coeffDict_, 1.42 ) ), C2_ ( dimensioned<scalar>::lookupOrAddToDict ( "C2", this->coeffDict_, 1.68 ) ), C3_ ( dimensioned<scalar>::lookupOrAddToDict ( "C3", this->coeffDict_, -0.33 ) ), sigmak_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmak", this->coeffDict_, 0.71942 ) ), sigmaEps_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmaEps", this->coeffDict_, 0.71942 ) ), eta0_ ( dimensioned<scalar>::lookupOrAddToDict ( "eta0", this->coeffDict_, 4.38 ) ), beta_ ( dimensioned<scalar>::lookupOrAddToDict ( "beta", this->coeffDict_, 0.012 ) ), k_ ( IOobject ( IOobject::groupName("k", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), epsilon_ ( IOobject ( IOobject::groupName("epsilon", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ) { bound(k_, this->kMin_); bound(epsilon_, this->epsilonMin_); if (type == typeName) { correctNut(); this->printCoeffs(type); } }
mixtureKEpsilon<BasicTurbulenceModel>::mixtureKEpsilon ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName, const word& type ) : eddyViscosity<RASModel<BasicTurbulenceModel> > ( type, alpha, rho, U, alphaPhi, phi, transport, propertiesName ), liquidTurbulencePtr_(NULL), Cmu_ ( dimensioned<scalar>::lookupOrAddToDict ( "Cmu", this->coeffDict_, 0.09 ) ), C1_ ( dimensioned<scalar>::lookupOrAddToDict ( "C1", this->coeffDict_, 1.44 ) ), C2_ ( dimensioned<scalar>::lookupOrAddToDict ( "C2", this->coeffDict_, 1.92 ) ), C3_ ( dimensioned<scalar>::lookupOrAddToDict ( "C3", this->coeffDict_, C2_.value() ) ), Cp_ ( dimensioned<scalar>::lookupOrAddToDict ( "Cp", this->coeffDict_, 0.25 ) ), sigmak_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmak", this->coeffDict_, 1.0 ) ), sigmaEps_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmaEps", this->coeffDict_, 1.3 ) ), k_ ( IOobject ( IOobject::groupName("k", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), epsilon_ ( IOobject ( IOobject::groupName("epsilon", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ) { bound(k_, this->kMin_); bound(epsilon_, this->epsilonMin_); if (type == typeName) { this->printCoeffs(type); } }
v2f<BasicTurbulenceModel>::v2f ( const alphaField& alpha, const rhoField& rho, const volVectorField& U, const surfaceScalarField& alphaRhoPhi, const surfaceScalarField& phi, const transportModel& transport, const word& propertiesName, const word& type ) : eddyViscosity<RASModel<BasicTurbulenceModel>> ( type, alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName ), v2fBase(), Cmu_ ( dimensioned<scalar>::lookupOrAddToDict ( "Cmu", this->coeffDict_, 0.22 ) ), CmuKEps_ ( dimensioned<scalar>::lookupOrAddToDict ( "CmuKEps", this->coeffDict_, 0.09 ) ), C1_ ( dimensioned<scalar>::lookupOrAddToDict ( "C1", this->coeffDict_, 1.4 ) ), C2_ ( dimensioned<scalar>::lookupOrAddToDict ( "C2", this->coeffDict_, 0.3 ) ), CL_ ( dimensioned<scalar>::lookupOrAddToDict ( "CL", this->coeffDict_, 0.23 ) ), Ceta_ ( dimensioned<scalar>::lookupOrAddToDict ( "Ceta", this->coeffDict_, 70.0 ) ), Ceps2_ ( dimensioned<scalar>::lookupOrAddToDict ( "Ceps2", this->coeffDict_, 1.9 ) ), Ceps3_ ( dimensioned<scalar>::lookupOrAddToDict ( "Ceps3", this->coeffDict_, -0.33 ) ), sigmaK_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmaK", this->coeffDict_, 1.0 ) ), sigmaEps_ ( dimensioned<scalar>::lookupOrAddToDict ( "sigmaEps", this->coeffDict_, 1.3 ) ), k_ ( IOobject ( IOobject::groupName("k", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), epsilon_ ( IOobject ( IOobject::groupName("epsilon", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), v2_ ( IOobject ( IOobject::groupName("v2", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), f_ ( IOobject ( IOobject::groupName("f", U.group()), this->runTime_.timeName(), this->mesh_, IOobject::MUST_READ, IOobject::AUTO_WRITE ), this->mesh_ ), v2Min_(dimensionedScalar("v2Min", v2_.dimensions(), SMALL)), fMin_(dimensionedScalar("fMin", f_.dimensions(), 0.0)) { bound(k_, this->kMin_); bound(epsilon_, this->epsilonMin_); bound(v2_, v2Min_); bound(f_, fMin_); if (type == typeName) { this->printCoeffs(type); } }