AMR-Wind
v0.1.0
CFD solver for wind plant simulations
|
Abstract representation of a turbulence model. More...
#include <TurbulenceModel.H>
Public Types | |
using | CoeffsDictType = std::unordered_map< std::string, amrex::Real > |
Default identifier used by factor methods. More... | |
Public Member Functions | |
~TurbulenceModel () override=default | |
virtual void | update_turbulent_viscosity (const FieldState fstate, const DiffusionType diff_type)=0 |
Update the turbulent viscosity field. More... | |
virtual void | post_advance_work ()=0 |
Do any post advance actions for the turbulence model. More... | |
virtual void | register_mueff_field (Field &mueff)=0 |
Register the effective viscosity (for momentum field) More... | |
virtual void | register_alphaeff_field (Field &alphaeff)=0 |
Register the thermal diffusivity field. More... | |
virtual std::string | model_name () const =0 |
String representation of this turbulence model for I/O. More... | |
virtual std::unique_ptr< ScratchField > | mu ()=0 |
Return the dynamic viscosity (laminar) field. More... | |
virtual std::unique_ptr< ScratchField > | alpha ()=0 |
Return the thermal diffusivity (laminar) field for enthalpy/temperature. More... | |
virtual std::unique_ptr< ScratchField > | scalar_diffusivity (const std::string &name)=0 |
Return the scalar diffusivity field. More... | |
virtual Field & | mu_turb ()=0 |
Return the turbulent dynamic viscosity field. More... | |
virtual Field & | alpha_turb ()=0 |
Return the turbulent dynamic viscosity field. More... | |
virtual Field & | mueff ()=0 |
Return the effective dynamic viscosity field. More... | |
virtual Field & | alphaeff ()=0 |
Return the effective thermal diffusivity field. More... | |
virtual bool | is_turbulent () const |
Flag indicating whether the model is turbulent. More... | |
virtual void | update_mueff (Field &mueff)=0 |
Interface to update effective viscosity. More... | |
virtual void | update_alphaeff (Field &alphaeff)=0 |
Interface to update effective thermal diffusivity. More... | |
virtual void | update_scalar_diff (Field &deff, const std::string &name)=0 |
Interface to update scalar diffusivity based on Schmidt number. More... | |
virtual void | parse_model_coeffs ()=0 |
Parse turbulence model coefficients. More... | |
virtual CoeffsDictType | model_coeffs () const =0 |
Return model coefficients dictionary. More... | |
Public Member Functions inherited from amr_wind::Factory< TurbulenceModel, CFDSim & > | |
virtual | ~Factory ()=default |
Static Public Member Functions | |
static std::string | base_identifier () |
Static Public Member Functions inherited from amr_wind::Factory< TurbulenceModel, CFDSim & > | |
static std::unique_ptr< TurbulenceModel > | create (const std::string &key, Args... args) |
Create an instance of the concrete subclass based on the runtime keyword. More... | |
static void | print (std::ostream &os) |
Print a list of the valid subclasses registered to this base instance. More... | |
Additional Inherited Members | |
Public Attributes inherited from amr_wind::Factory< TurbulenceModel, CFDSim & > | |
friend | Base |
Abstract representation of a turbulence model.
This class is an abstract representation of a turbulence model used in AMR-Wind. Subclasses must implement the methods defined in this class to interact with Equation Systems.
using amr_wind::turbulence::TurbulenceModel::CoeffsDictType = std::unordered_map<std::string, amrex::Real> |
Default identifier used by factor methods.
|
overridedefault |
|
pure virtual |
Return the thermal diffusivity (laminar) field for enthalpy/temperature.
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
pure virtual |
Return the turbulent dynamic viscosity field.
Implemented in amr_wind::turbulence::TurbModelBase< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Return the effective thermal diffusivity field.
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
inlinestatic |
|
inlinevirtual |
Flag indicating whether the model is turbulent.
Reimplemented in amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Return model coefficients dictionary.
Implemented in amr_wind::turbulence::KOmegaSSTIDDES< Transport >, amr_wind::turbulence::KOmegaSST< Transport >, amr_wind::turbulence::Smagorinsky< Transport >, amr_wind::turbulence::OneEqKsgsS94< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, amr_wind::turbulence::Kosovic< Transport >, amr_wind::turbulence::AMDNoTherm< Transport >, amr_wind::turbulence::AMD< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
String representation of this turbulence model for I/O.
Implemented in amr_wind::turbulence::KOmegaSSTIDDES< Transport >, amr_wind::turbulence::KOmegaSST< Transport >, amr_wind::turbulence::Smagorinsky< Transport >, amr_wind::turbulence::OneEqKsgsS94< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, amr_wind::turbulence::Kosovic< Transport >, amr_wind::turbulence::AMDNoTherm< Transport >, amr_wind::turbulence::AMD< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Return the dynamic viscosity (laminar) field.
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
pure virtual |
Return the turbulent dynamic viscosity field.
Implemented in amr_wind::turbulence::TurbModelBase< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Return the effective dynamic viscosity field.
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
pure virtual |
Parse turbulence model coefficients.
Implemented in amr_wind::turbulence::KOmegaSSTIDDES< Transport >, amr_wind::turbulence::KOmegaSST< Transport >, amr_wind::turbulence::Smagorinsky< Transport >, amr_wind::turbulence::OneEqKsgsS94< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, amr_wind::turbulence::Kosovic< Transport >, amr_wind::turbulence::AMDNoTherm< Transport >, amr_wind::turbulence::AMD< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Do any post advance actions for the turbulence model.
Implemented in amr_wind::turbulence::KOmegaSSTIDDES< Transport >, amr_wind::turbulence::KOmegaSST< Transport >, amr_wind::turbulence::Smagorinsky< Transport >, amr_wind::turbulence::OneEqKsgsS94< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, amr_wind::turbulence::Kosovic< Transport >, amr_wind::turbulence::AMDNoTherm< Transport >, amr_wind::turbulence::AMD< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Register the thermal diffusivity field.
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
pure virtual |
Register the effective viscosity (for momentum field)
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
pure virtual |
Return the scalar diffusivity field.
Implemented in amr_wind::turbulence::TurbModel< Transport >.
|
pure virtual |
Interface to update effective thermal diffusivity.
Implemented in amr_wind::turbulence::TurbModelBase< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, amr_wind::turbulence::Kosovic< Transport >, amr_wind::turbulence::AMD< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Interface to update effective viscosity.
\(\mu_\mathrm{eff} = \mu + \mu_t\)
Implemented in amr_wind::turbulence::TurbModelBase< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Interface to update scalar diffusivity based on Schmidt number.
Implemented in amr_wind::turbulence::TurbModelBase< Transport >, amr_wind::turbulence::KOmegaSST< Transport >, amr_wind::turbulence::OneEqKsgsS94< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, and amr_wind::turbulence::Laminar< Transport >.
|
pure virtual |
Update the turbulent viscosity field.
This method is called at the beginning of each predictor/corrector step to update the turbulent viscosity field. The exact effective viscosity for each equation system is handled by the concrete implementation of PDESystem.
fstate | State used for updates to differentiate logic in predictor and corrector steps. |
Implemented in amr_wind::turbulence::Smagorinsky< Transport >, amr_wind::turbulence::OneEqKsgsM84< Transport >, amr_wind::turbulence::Kosovic< Transport >, amr_wind::turbulence::AMDNoTherm< Transport >, amr_wind::turbulence::AMD< Transport >, amr_wind::turbulence::KOmegaSSTIDDES< Transport >, amr_wind::turbulence::KOmegaSST< Transport >, amr_wind::turbulence::OneEqKsgsS94< Transport >, and amr_wind::turbulence::Laminar< Transport >.