Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Public Member Functions | Public Attributes | List of all members
sierra::nalu::RadiativeTransportEquationSystem Class Reference

#include <RadiativeTransportEquationSystem.h>

Inheritance diagram for sierra::nalu::RadiativeTransportEquationSystem:
sierra::nalu::EquationSystem

Public Member Functions

 RadiativeTransportEquationSystem (EquationSystems &equationSystems, const int quadratureOrder, const bool activateScattering, const bool activateUpwind, const bool deactivateSucv, const bool externalCoupling)
 
virtual ~RadiativeTransportEquationSystem ()
 
void register_nodal_fields (stk::mesh::Part *part)
 
void register_edge_fields (stk::mesh::Part *part)
 
void register_element_fields (stk::mesh::Part *part, const stk::topology &theTopo)
 
void register_interior_algorithm (stk::mesh::Part *part)
 
void register_wall_bc (stk::mesh::Part *part, const stk::topology &theTopo, const WallBoundaryConditionData &wallBCData)
 
void initialize ()
 
void predict_state ()
 
void solve_and_update ()
 Assemble the LHS and RHS and perform linear solve for prescribed number of iterations. More...
 
void set_current_ordinate_info (const int k)
 
void initialize_intensity ()
 
void compute_bc_intensity ()
 
void compute_radiation_source ()
 
bool system_is_converged ()
 
double provide_scaled_norm ()
 
double provide_norm ()
 
void zero_out_fields ()
 
void zero_irradiation ()
 
void assemble_boundary_area ()
 
void assemble_fields ()
 
void assemble_irradiation ()
 
void normalize_irradiation ()
 
void compute_div_norm ()
 
void copy_ordinate_intensity (const ScalarFieldType &fromField, const ScalarFieldType &toField)
 
void get_current_ordinate_info (double &weight, double *Sk) const
 
void get_current_ordinate (double *Sk) const
 
double get_stefan_boltzmann () const
 
ScalarFieldTypeget_intensity () const
 
void create_quadrature_set ()
 
- Public Member Functions inherited from sierra::nalu::EquationSystem
 EquationSystem (EquationSystems &eqSystems, const std::string name="no_name", const std::string eqnTypeName="no_eqn_type_name")
 
virtual ~EquationSystem ()
 
void set_nodal_gradient (const std::string &dofName)
 
virtual void initial_work ()
 
virtual void populate_derived_quantities ()
 
virtual void pre_iter_work ()
 Perform setup tasks before entering the solve and update step. More...
 
virtual void post_iter_work ()
 Perform setup tasks after he solve and update step. More...
 
virtual void post_iter_work_dep ()
 Deprecated post iteration work logic. More...
 
virtual void assemble_and_solve (stk::mesh::FieldBase *deltaSolution)
 
virtual void provide_output ()
 
virtual void pre_timestep_work ()
 
virtual void reinitialize_linear_system ()
 
virtual void post_adapt_work ()
 
virtual void dump_eq_time ()
 
virtual double provide_norm_increment ()
 
virtual void register_inflow_bc (stk::mesh::Part *part, const stk::topology &theTopo, const InflowBoundaryConditionData &inflowBCData)
 
virtual void register_open_bc (stk::mesh::Part *part, const stk::topology &theTopo, const OpenBoundaryConditionData &openBCData)
 
virtual void register_symmetry_bc (stk::mesh::Part *part, const stk::topology &theTopo, const SymmetryBoundaryConditionData &symmetryBCData)
 
virtual void register_periodic_bc (stk::mesh::Part *partMaster, stk::mesh::Part *partSlave, const stk::topology &theTopoMaster, const stk::topology &theTopoSlave, const PeriodicBoundaryConditionData &periodicBCData)
 
virtual void register_non_conformal_bc (stk::mesh::Part *part, const stk::topology &theTopo)
 
virtual void register_overset_bc ()
 
virtual void create_constraint_algorithm (stk::mesh::FieldBase *theField)
 
virtual void register_surface_pp_algorithm (const PostProcessingData &theData, stk::mesh::PartVector &partVector)
 
virtual void register_initial_condition_fcn (stk::mesh::Part *part, const std::map< std::string, std::string > &theNames, const std::map< std::string, std::vector< double > > &theParams)
 
virtual void evaluate_properties ()
 
PecletFunctioncreate_peclet_function (const std::string dofName)
 
virtual void load (const YAML::Node &node)
 
Simulationroot ()
 
EquationSystemsparent ()
 
void report_invalid_supp_alg_names ()
 
void report_built_supp_alg_names ()
 
bool supp_alg_is_requested (std::string name)
 
bool supp_alg_is_requested (std::vector< std::string >)
 
bool nodal_src_is_requested ()
 
void update_iteration_statistics (const int &iters)
 
bool bc_data_specified (const UserData &, std::string &name)
 
UserDataType get_bc_data_type (const UserData &, std::string &name)
 
std::string get_bc_function_name (const UserData &, std::string &name)
 
std::vector< double > get_bc_function_params (const UserData &, std::string &name)
 
std::vector< std::string > get_bc_function_string_params (const UserData &, std::string &name)
 
virtual void post_converged_work ()
 

Public Attributes

const int quadratureOrder_
 
const bool activateScattering_
 
const bool activateUpwind_
 
const bool deactivateSucv_
 
const bool externalCoupling_
 
ScalarFieldTypeintensity_
 
ScalarFieldTypecurrentIntensity_
 
ScalarFieldTypeintensityBc_
 
ScalarFieldTypeemissivity_
 
ScalarFieldTypetransmissivity_
 
ScalarFieldTypeenvironmentalT_
 
ScalarFieldTypeiTmp_
 
ScalarFieldTypedualNodalVolume_
 
VectorFieldTypecoordinates_
 
ScalarFieldTypetemperature_
 
VectorFieldTyperadiativeHeatFlux_
 
ScalarFieldTypedivRadiativeHeatFlux_
 
ScalarFieldTyperadiationSource_
 
ScalarFieldTypescalarFlux_
 
ScalarFieldTypescalarFluxOld_
 
ScalarFieldTypeabsorptionCoeff_
 
ScalarFieldTypescatteringCoeff_
 
VectorFieldTypeedgeAreaVec_
 
ScalarFieldTypeirradiation_
 
ScalarFieldTypebcTemperature_
 
ScalarFieldTypeassembledBoundaryArea_
 
AlgorithmDriverbcIntensityAlgDriver_
 
bool isInit_
 
int ordinateDirections_
 
std::vector< double > Sn_
 
std::vector< double > weights_
 
std::vector< double > currentSn_
 
double currentWeight_
 
double stefanBoltz_
 
double systemL2Norm_
 
double nonLinearResidualSum_
 
double firstNonLinearResidualSum_
 
std::vector< stk::mesh::Part * > interiorPartVec_
 
std::vector< stk::mesh::Part * > bcPartVec_
 
- Public Attributes inherited from sierra::nalu::EquationSystem
EquationSystemsequationSystems_
 
Realmrealm_
 
std::string name_
 
std::string userSuppliedName_
 
const std::string eqnTypeName_
 
int maxIterations_
 
double convergenceTolerance_
 
SolverAlgorithmDriversolverAlgDriver_
 
double timerAssemble_
 
double timerLoadComplete_
 
double timerSolve_
 
double timerMisc_
 
double timerInit_
 
double timerPrecond_
 
double avgLinearIterations_
 
double maxLinearIterations_
 
double minLinearIterations_
 
int nonLinearIterationCount_
 
bool reportLinearIterations_
 
bool firstTimeStepSolve_
 
bool edgeNodalGradient_
 
std::vector< AuxFunctionAlgorithm * > bcDataAlg_
 
std::vector< Algorithm * > bcDataMapAlg_
 
std::vector< Algorithm * > copyStateAlg_
 
LinearSystemlinsys_
 
size_t num_graph_entries_
 
std::vector< Algorithm * > propertyAlg_
 
std::vector< AlgorithmDriver * > preIterAlgDriver_
 List of tasks to be performed before each solve_and_update of this equation system. More...
 
std::vector< AlgorithmDriver * > postIterAlgDriver_
 List of tasks to be performed after each solve_and_update of this equation system. More...
 

Constructor & Destructor Documentation

sierra::nalu::RadiativeTransportEquationSystem::RadiativeTransportEquationSystem ( EquationSystems equationSystems,
const int  quadratureOrder,
const bool  activateScattering,
const bool  activateUpwind,
const bool  deactivateSucv,
const bool  externalCoupling 
)
sierra::nalu::RadiativeTransportEquationSystem::~RadiativeTransportEquationSystem ( )
virtual

Member Function Documentation

void sierra::nalu::RadiativeTransportEquationSystem::assemble_boundary_area ( )
void sierra::nalu::RadiativeTransportEquationSystem::assemble_fields ( )
void sierra::nalu::RadiativeTransportEquationSystem::assemble_irradiation ( )
void sierra::nalu::RadiativeTransportEquationSystem::compute_bc_intensity ( )
void sierra::nalu::RadiativeTransportEquationSystem::compute_div_norm ( )
void sierra::nalu::RadiativeTransportEquationSystem::compute_radiation_source ( )
void sierra::nalu::RadiativeTransportEquationSystem::copy_ordinate_intensity ( const ScalarFieldType fromField,
const ScalarFieldType toField 
)
void sierra::nalu::RadiativeTransportEquationSystem::create_quadrature_set ( )
void sierra::nalu::RadiativeTransportEquationSystem::get_current_ordinate ( double *  Sk) const
void sierra::nalu::RadiativeTransportEquationSystem::get_current_ordinate_info ( double &  weight,
double *  Sk 
) const
ScalarFieldType * sierra::nalu::RadiativeTransportEquationSystem::get_intensity ( ) const
double sierra::nalu::RadiativeTransportEquationSystem::get_stefan_boltzmann ( ) const
void sierra::nalu::RadiativeTransportEquationSystem::initialize ( )
virtual
void sierra::nalu::RadiativeTransportEquationSystem::initialize_intensity ( )
void sierra::nalu::RadiativeTransportEquationSystem::normalize_irradiation ( )
void sierra::nalu::RadiativeTransportEquationSystem::predict_state ( )
virtual

Reimplemented from sierra::nalu::EquationSystem.

double sierra::nalu::RadiativeTransportEquationSystem::provide_norm ( )
virtual

Reimplemented from sierra::nalu::EquationSystem.

References nonLinearResidualSum_.

double sierra::nalu::RadiativeTransportEquationSystem::provide_scaled_norm ( )
virtual
void sierra::nalu::RadiativeTransportEquationSystem::register_edge_fields ( stk::mesh::Part *  part)
virtual
void sierra::nalu::RadiativeTransportEquationSystem::register_element_fields ( stk::mesh::Part *  part,
const stk::topology &  theTopo 
)
virtual

Reimplemented from sierra::nalu::EquationSystem.

void sierra::nalu::RadiativeTransportEquationSystem::register_interior_algorithm ( stk::mesh::Part *  part)
virtual
void sierra::nalu::RadiativeTransportEquationSystem::register_nodal_fields ( stk::mesh::Part *  part)
virtual
void sierra::nalu::RadiativeTransportEquationSystem::register_wall_bc ( stk::mesh::Part *  part,
const stk::topology &  theTopo,
const WallBoundaryConditionData wallBCData 
)
virtual
void sierra::nalu::RadiativeTransportEquationSystem::set_current_ordinate_info ( const int  k)
void sierra::nalu::RadiativeTransportEquationSystem::solve_and_update ( )
virtual

Assemble the LHS and RHS and perform linear solve for prescribed number of iterations.

This method is invoked in EquationSystems::solve_and_update method as shown below

// Iterate over all equation systems
for (auto eqsys: equationSystems_) {
eqsys->pre_iter_work();
eqsys->solve_and_update(); //<<<< Assemble and solve system
eqsys->post_iter_work();
}
See also
EquationSystems::solve_and_update

Reimplemented from sierra::nalu::EquationSystem.

References sierra::nalu::EquationSystem::assemble_and_solve(), assemble_boundary_area(), assemble_fields(), assemble_irradiation(), sierra::nalu::Realm::bulk_data(), compute_bc_intensity(), compute_div_norm(), compute_radiation_source(), sierra::nalu::EquationSystem::convergenceTolerance_, copy_ordinate_intensity(), currentIntensity_, sierra::nalu::Realm::currentNonlinearIteration_, sierra::nalu::field_axpby(), firstNonLinearResidualSum_, sierra::nalu::Realm::get_activate_aura(), initialize_intensity(), intensity_, isInit_, iTmp_, sierra::nalu::LinearSystem::linearSolveIterations(), sierra::nalu::EquationSystem::linsys_, sierra::nalu::EquationSystem::maxIterations_, sierra::nalu::Realm::meta_data(), sierra::nalu::NaluEnv::nalu_time(), sierra::nalu::NaluEnv::naluOutputP0(), sierra::nalu::LinearSystem::nonLinearResidual(), nonLinearResidualSum_, normalize_irradiation(), ordinateDirections_, sierra::nalu::EquationSystem::realm_, scalarFlux_, scalarFluxOld_, sierra::nalu::NaluEnv::self(), set_current_ordinate_info(), systemL2Norm_, sierra::nalu::EquationSystem::timerAssemble_, sierra::nalu::EquationSystem::userSuppliedName_, zero_irradiation(), and zero_out_fields().

bool sierra::nalu::RadiativeTransportEquationSystem::system_is_converged ( )
virtual
void sierra::nalu::RadiativeTransportEquationSystem::zero_irradiation ( )
void sierra::nalu::RadiativeTransportEquationSystem::zero_out_fields ( )

Member Data Documentation

ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::absorptionCoeff_
const bool sierra::nalu::RadiativeTransportEquationSystem::activateScattering_
const bool sierra::nalu::RadiativeTransportEquationSystem::activateUpwind_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::assembledBoundaryArea_
AlgorithmDriver* sierra::nalu::RadiativeTransportEquationSystem::bcIntensityAlgDriver_
std::vector<stk::mesh::Part *> sierra::nalu::RadiativeTransportEquationSystem::bcPartVec_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::bcTemperature_
VectorFieldType* sierra::nalu::RadiativeTransportEquationSystem::coordinates_

Referenced by register_nodal_fields().

ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::currentIntensity_
std::vector<double> sierra::nalu::RadiativeTransportEquationSystem::currentSn_
double sierra::nalu::RadiativeTransportEquationSystem::currentWeight_
const bool sierra::nalu::RadiativeTransportEquationSystem::deactivateSucv_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::divRadiativeHeatFlux_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::dualNodalVolume_

Referenced by register_nodal_fields().

VectorFieldType* sierra::nalu::RadiativeTransportEquationSystem::edgeAreaVec_

Referenced by register_edge_fields().

ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::emissivity_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::environmentalT_
const bool sierra::nalu::RadiativeTransportEquationSystem::externalCoupling_
double sierra::nalu::RadiativeTransportEquationSystem::firstNonLinearResidualSum_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::intensity_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::intensityBc_
std::vector<stk::mesh::Part *> sierra::nalu::RadiativeTransportEquationSystem::interiorPartVec_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::irradiation_
bool sierra::nalu::RadiativeTransportEquationSystem::isInit_

Referenced by solve_and_update().

ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::iTmp_
double sierra::nalu::RadiativeTransportEquationSystem::nonLinearResidualSum_
int sierra::nalu::RadiativeTransportEquationSystem::ordinateDirections_
const int sierra::nalu::RadiativeTransportEquationSystem::quadratureOrder_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::radiationSource_
VectorFieldType* sierra::nalu::RadiativeTransportEquationSystem::radiativeHeatFlux_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::scalarFlux_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::scalarFluxOld_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::scatteringCoeff_

Referenced by register_nodal_fields().

std::vector<double> sierra::nalu::RadiativeTransportEquationSystem::Sn_
double sierra::nalu::RadiativeTransportEquationSystem::stefanBoltz_
double sierra::nalu::RadiativeTransportEquationSystem::systemL2Norm_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::temperature_
ScalarFieldType* sierra::nalu::RadiativeTransportEquationSystem::transmissivity_
std::vector<double> sierra::nalu::RadiativeTransportEquationSystem::weights_

The documentation for this class was generated from the following files: