ABL Class Reference

AMR-Wind API: amr_wind::ABL Class Reference
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches

#include <ABL.H>

Inheritance diagram for amr_wind::ABL:
[legend]
Collaboration diagram for amr_wind::ABL:
[legend]

Public Member Functions

 ABL (CFDSim &sim)
 
 ~ABL () override
 
const ABLWallFunctionabl_wall_function () const
 
void post_init_actions () override
 
void post_regrid_actions () override
 
void initialize_fields (int level, const amrex::Geometry &geom) override
 
void pre_advance_work () override
 
void pre_predictor_work () override
 
void post_advance_work () override
 
void register_forcing_term (pde::icns::ABLForcing *forcing) const
 
void register_mean_boussinesq_term (pde::icns::ABLMeanBoussinesq *term) const
 
void register_meso_mom_forcing (pde::icns::ABLMesoForcingMom *forcing) const
 
void register_meso_temp_forcing (pde::temperature::ABLMesoForcingTemp *forcing) const
 
void register_hurricane_forcing (pde::icns::HurricaneForcing *forcing) const
 
void register_hurricane_temp_forcing (pde::temperature::HurricaneTempForcing *forcing) const
 
const ABLBoundaryPlanebndry_plane () const
 
const ABLModulatedPowerLawabl_mpl () const
 
const ABLStatsBaseabl_statistics () const
 Return the ABL statistics calculator.
 
const ABLMesoscaleInputabl_meso_file () const
 
const ABLAnelasticanelastic () const
 

Static Public Member Functions

static std::string identifier ()
 

Private Attributes

const CFDSimm_sim
 
Fieldm_velocity
 
Fieldm_mueff
 
Fieldm_density
 
Fieldm_temperature {nullptr}
 
Fieldm_tke {nullptr}
 
Fieldm_sdr {nullptr}
 
ABLWallFunction m_abl_wall_func
 
std::unique_ptr< ABLFieldInitm_field_init
 ABL field initializer instance.
 
std::unique_ptr< ABLBoundaryPlanem_bndry_plane
 ABL boundary plane instance.
 
std::unique_ptr< ABLModulatedPowerLawm_abl_mpl
 ABL modulated power law instance.
 
pde::icns::ABLForcingm_abl_forcing {nullptr}
 Reference to ABL forcing term if present.
 
std::unique_ptr< ABLStatsBasem_stats
 ABL integrated statistics object.
 
std::unique_ptr< ABLAnelasticm_abl_anelastic
 ABL anelastic instance.
 
pde::icns::ABLMeanBoussinesqm_abl_mean_bous {nullptr}
 
pde::icns::ABLMesoForcingMomm_abl_meso_mom_forcing {nullptr}
 
pde::temperature::ABLMesoForcingTempm_abl_meso_temp_forcing
 
std::unique_ptr< ABLMesoscaleInputm_meso_file
 
pde::icns::HurricaneForcingm_hurricane_forcing {nullptr}
 
pde::temperature::HurricaneTempForcingm_hurricane_temp_forcing
 
amrex::Real m_init_sdr {25.0}
 Default value set based on https://turbmodels.larc.nasa.gov/sst.html.
 
bool m_hybrid_rl {false}
 Hybrid RANS-LES with Nalu-wind.
 
bool m_file_input {false}
 File input flag.
 
std::unique_ptr< ABLFieldInitFilem_field_init_file
 File input initializer.
 

Detailed Description

Atmospheric Boundary Layer physics

This class implements the necessary code to simulation atmospheric boundary layers with AMR-Wind. It reads the namespace ABL from the input file to determine how the initial conditions are generated. At each timestep it performs plane averages to collect statistics as well as set the necessary data to be used by wall models as well as any ABLForcing terms that might be active.

See also
ABLFieldInit, ABLWallFunction, FieldPlaneAveraging, ABLBoundaryPlane

Constructor & Destructor Documentation

◆ ABL()

amr_wind::ABL::ABL ( CFDSim & sim)
explicit

◆ ~ABL()

amr_wind::ABL::~ABL ( )
overridedefault

Member Function Documentation

◆ abl_meso_file()

const ABLMesoscaleInput & amr_wind::ABL::abl_meso_file ( ) const
inline

◆ abl_mpl()

const ABLModulatedPowerLaw & amr_wind::ABL::abl_mpl ( ) const
inline

◆ abl_statistics()

const ABLStatsBase & amr_wind::ABL::abl_statistics ( ) const
inline

Return the ABL statistics calculator.

◆ abl_wall_function()

const ABLWallFunction & amr_wind::ABL::abl_wall_function ( ) const
inline

◆ anelastic()

const ABLAnelastic & amr_wind::ABL::anelastic ( ) const
inline

◆ bndry_plane()

const ABLBoundaryPlane & amr_wind::ABL::bndry_plane ( ) const
inline

◆ identifier()

static std::string amr_wind::ABL::identifier ( )
inlinestatic

◆ initialize_fields()

void amr_wind::ABL::initialize_fields ( int level,
const amrex::Geometry & geom )
override

Initialize the velocity and temperature fields at the beginning of the simulation.

See also
amr_wind::ABLFieldInit

◆ post_advance_work()

void amr_wind::ABL::post_advance_work ( )
override

Perform tasks at the end of a new timestep

For ABL simulations, this method writes all plane-averaged profiles and integrated statistics to output

◆ post_init_actions()

void amr_wind::ABL::post_init_actions ( )
override

◆ post_regrid_actions()

void amr_wind::ABL::post_regrid_actions ( )
override

◆ pre_advance_work()

void amr_wind::ABL::pre_advance_work ( )
override

Perform tasks at the beginning of a new timestep

For ABL simulations this method invokes the FieldPlaneAveraging class to compute spatial averages at all z-levels on the coarsest mesh (level 0).

The spatially averaged velocity is used to determine the current mean velocity at the forcing height (if driving pressure gradient term is active) and also determines the average friction velocity for use in the ABL wall function computation.

◆ pre_predictor_work()

void amr_wind::ABL::pre_predictor_work ( )
override

Perform tasks at the beginning of a timestep, but after pre_advance

For ABL simulations, this method updates plane data to new_time (n+1)

◆ register_forcing_term()

void amr_wind::ABL::register_forcing_term ( pde::icns::ABLForcing * forcing) const
inline

◆ register_hurricane_forcing()

void amr_wind::ABL::register_hurricane_forcing ( pde::icns::HurricaneForcing * forcing) const
inline

◆ register_hurricane_temp_forcing()

void amr_wind::ABL::register_hurricane_temp_forcing ( pde::temperature::HurricaneTempForcing * forcing) const
inline

◆ register_mean_boussinesq_term()

void amr_wind::ABL::register_mean_boussinesq_term ( pde::icns::ABLMeanBoussinesq * term) const
inline

◆ register_meso_mom_forcing()

void amr_wind::ABL::register_meso_mom_forcing ( pde::icns::ABLMesoForcingMom * forcing) const
inline

◆ register_meso_temp_forcing()

void amr_wind::ABL::register_meso_temp_forcing ( pde::temperature::ABLMesoForcingTemp * forcing) const
inline

Member Data Documentation

◆ m_abl_anelastic

std::unique_ptr<ABLAnelastic> amr_wind::ABL::m_abl_anelastic
private

ABL anelastic instance.

◆ m_abl_forcing

pde::icns::ABLForcing* amr_wind::ABL::m_abl_forcing {nullptr}
mutableprivate

Reference to ABL forcing term if present.

◆ m_abl_mean_bous

pde::icns::ABLMeanBoussinesq* amr_wind::ABL::m_abl_mean_bous {nullptr}
mutableprivate

◆ m_abl_meso_mom_forcing

pde::icns::ABLMesoForcingMom* amr_wind::ABL::m_abl_meso_mom_forcing {nullptr}
mutableprivate

◆ m_abl_meso_temp_forcing

pde::temperature::ABLMesoForcingTemp* amr_wind::ABL::m_abl_meso_temp_forcing
mutableprivate
Initial value:
{
nullptr}

◆ m_abl_mpl

std::unique_ptr<ABLModulatedPowerLaw> amr_wind::ABL::m_abl_mpl
private

ABL modulated power law instance.

◆ m_abl_wall_func

ABLWallFunction amr_wind::ABL::m_abl_wall_func
private

◆ m_bndry_plane

std::unique_ptr<ABLBoundaryPlane> amr_wind::ABL::m_bndry_plane
private

ABL boundary plane instance.

◆ m_density

Field& amr_wind::ABL::m_density
private

◆ m_field_init

std::unique_ptr<ABLFieldInit> amr_wind::ABL::m_field_init
private

ABL field initializer instance.

◆ m_field_init_file

std::unique_ptr<ABLFieldInitFile> amr_wind::ABL::m_field_init_file
private

File input initializer.

◆ m_file_input

bool amr_wind::ABL::m_file_input {false}
private

File input flag.

◆ m_hurricane_forcing

pde::icns::HurricaneForcing* amr_wind::ABL::m_hurricane_forcing {nullptr}
mutableprivate

◆ m_hurricane_temp_forcing

pde::temperature::HurricaneTempForcing* amr_wind::ABL::m_hurricane_temp_forcing
mutableprivate
Initial value:
{
nullptr}

◆ m_hybrid_rl

bool amr_wind::ABL::m_hybrid_rl {false}
private

Hybrid RANS-LES with Nalu-wind.

◆ m_init_sdr

amrex::Real amr_wind::ABL::m_init_sdr {25.0}
private

Default value set based on https://turbmodels.larc.nasa.gov/sst.html.

◆ m_meso_file

std::unique_ptr<ABLMesoscaleInput> amr_wind::ABL::m_meso_file
private

◆ m_mueff

Field& amr_wind::ABL::m_mueff
private

◆ m_sdr

Field* amr_wind::ABL::m_sdr {nullptr}
private

◆ m_sim

const CFDSim& amr_wind::ABL::m_sim
private

◆ m_stats

std::unique_ptr<ABLStatsBase> amr_wind::ABL::m_stats
private

ABL integrated statistics object.

◆ m_temperature

Field* amr_wind::ABL::m_temperature {nullptr}
private

◆ m_tke

Field* amr_wind::ABL::m_tke {nullptr}
private

◆ m_velocity

Field& amr_wind::ABL::m_velocity
private

The documentation for this class was generated from the following files:
  • /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABL.H
  • /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/ABL.cpp