PRISMS-PF Manual v3.0-pre
All Classes Functions Variables Enumerations Pages
variableAttributes Struct Reference

Structure to hold the variable attributes of a field. This includes things like the name, equation type, whether it's nonlinear, and its dependence on other variables. More...

#include <variable_attributes.h>

Public Member Functions

void format_dependencies ()
 Combine 'value' and 'gradient' residual dependencies to one dependency set per RHS and LHS. This will populate dependencies_RHS and dependencies_LHS.
 
void parse_residual_dependencies ()
 Take user-defined dependency sets to set the residual flags for each variable.
 
void parse_dependencies (std::map< unsigned int, variableAttributes > &other_var_attributes)
 Take user-defined dependency sets to set the evaluation flags for each variable.
 
void determine_field_solve_type (std::map< unsigned int, variableAttributes > &other_var_attributes)
 Using the assigned evaluation flags determine the solve type for this equation.
 
void print () const
 Print variable attributes to summary.log.
 

Public Attributes

std::string name
 Field name.
 
types::index field_index = numbers::invalid_index
 Field index.
 
fieldType field_type = fieldType::UNDEFINED_FIELD
 Field type (SCALAR/VECTOR).
 
PDEType pde_type = PDEType::UNDEFINED_PDE
 PDE type (EXPLICIT/NONEXPLICIT).
 
bool is_postprocess = false
 Postprocess variable.
 
fieldSolveType field_solve_type = fieldSolveType::UNDEFINED_SOLVE
 Internal classification for the field solve type.
 
std::set< std::string > dependencies_value_RHS
 The user-inputted dependencies for the RHS value term.
 
std::set< std::string > dependencies_gradient_RHS
 The user-inputted dependencies for the RHS gradient term.
 
std::set< std::string > dependencies_RHS
 The collection of value and gradient dependencies for the RHS.
 
std::set< std::string > dependencies_value_LHS
 The user-inputted dependencies for the LHS value term.
 
std::set< std::string > dependencies_gradient_LHS
 The user-inputted dependencies for the LHS gradient term.
 
std::set< std::string > dependencies_LHS
 The collection of value and gradient dependencies for the LHS.
 
std::unordered_map< std::pair< unsigned int, dependencyType >, dealii::EvaluationFlags::EvaluationFlags, pairHasheval_flag_set_RHS
 A map of evaluation flags for the dependencies of the current variable's RHS. This will tell deal.II whether to evaluate the value, gradient, and/or hessian for the specified field.
 
std::unordered_map< std::pair< unsigned int, dependencyType >, dealii::EvaluationFlags::EvaluationFlags, pairHasheval_flag_set_LHS
 A map of evaluation flags for the dependencies of the current variable's LHS. This will tell deal.II whether to evaluate the value, gradient, and/or hessian for the specified field.
 
dealii::EvaluationFlags::EvaluationFlags eval_flags_residual_RHS
 Evaluation flags for the types of residual the user is expected to submit to on the RHS.
 
dealii::EvaluationFlags::EvaluationFlags eval_flags_residual_LHS
 Evaluation flags for the types of residual the user is expected to submit to on the LHS. This is empty for EXPLICIT fields.
 
std::map< unsigned int, std::map< dependencyType, fieldType > > dependency_set_RHS
 A dependency set where the RHS evaluation flags that are not 0 (not nothing) are included. This is used to determine what FEEvaluatiob objects are necessary in variable container.
 
std::map< unsigned int, std::map< dependencyType, fieldType > > dependency_set_LHS
 A dependency set where the LHS evaluation flags that are not 0 (not nothing) are included. This is used to determine what FEEvaluatiob objects are necessary in variable container.
 
std::set< unsigned int > simplified_dependency_set
 A simplified set of evaluation flags for the dependencies of the current variable's LHS & RHS. This will help determine the fieldSolveType of the field. Fields indices where the evaluation flags are not 0 (not nothing) are included. Additionally, explicit fields are excluded to speed up the graph search.
 

Detailed Description

Structure to hold the variable attributes of a field. This includes things like the name, equation type, whether it's nonlinear, and its dependence on other variables.

Member Data Documentation

◆ dependencies_gradient_LHS

std::set<std::string> variableAttributes::dependencies_gradient_LHS

The user-inputted dependencies for the LHS gradient term.

Remarks
User-set

◆ dependencies_gradient_RHS

std::set<std::string> variableAttributes::dependencies_gradient_RHS

The user-inputted dependencies for the RHS gradient term.

Remarks
User-set

◆ dependencies_LHS

std::set<std::string> variableAttributes::dependencies_LHS

The collection of value and gradient dependencies for the LHS.

Remarks
Internally determined

◆ dependencies_RHS

std::set<std::string> variableAttributes::dependencies_RHS

The collection of value and gradient dependencies for the RHS.

Remarks
Internally determined

◆ dependencies_value_LHS

std::set<std::string> variableAttributes::dependencies_value_LHS

The user-inputted dependencies for the LHS value term.

Remarks
User-set

◆ dependencies_value_RHS

std::set<std::string> variableAttributes::dependencies_value_RHS

The user-inputted dependencies for the RHS value term.

Remarks
User-set

◆ dependency_set_LHS

std::map<unsigned int, std::map<dependencyType, fieldType> > variableAttributes::dependency_set_LHS

A dependency set where the LHS evaluation flags that are not 0 (not nothing) are included. This is used to determine what FEEvaluatiob objects are necessary in variable container.

Remarks
Internally determined

◆ dependency_set_RHS

std::map<unsigned int, std::map<dependencyType, fieldType> > variableAttributes::dependency_set_RHS

A dependency set where the RHS evaluation flags that are not 0 (not nothing) are included. This is used to determine what FEEvaluatiob objects are necessary in variable container.

Remarks
Internally determined

◆ eval_flag_set_LHS

std::unordered_map<std::pair<unsigned int, dependencyType>, dealii::EvaluationFlags::EvaluationFlags, pairHash> variableAttributes::eval_flag_set_LHS

A map of evaluation flags for the dependencies of the current variable's LHS. This will tell deal.II whether to evaluate the value, gradient, and/or hessian for the specified field.

Remarks
Internally determined

◆ eval_flag_set_RHS

std::unordered_map<std::pair<unsigned int, dependencyType>, dealii::EvaluationFlags::EvaluationFlags, pairHash> variableAttributes::eval_flag_set_RHS

A map of evaluation flags for the dependencies of the current variable's RHS. This will tell deal.II whether to evaluate the value, gradient, and/or hessian for the specified field.

Remarks
Internally determined

◆ eval_flags_residual_LHS

dealii::EvaluationFlags::EvaluationFlags variableAttributes::eval_flags_residual_LHS
Initial value:
=
dealii::EvaluationFlags::nothing

Evaluation flags for the types of residual the user is expected to submit to on the LHS. This is empty for EXPLICIT fields.

Remarks
Internally determined

◆ eval_flags_residual_RHS

dealii::EvaluationFlags::EvaluationFlags variableAttributes::eval_flags_residual_RHS
Initial value:
=
dealii::EvaluationFlags::nothing

Evaluation flags for the types of residual the user is expected to submit to on the RHS.

Remarks
Internally determined

◆ field_index

types::index variableAttributes::field_index = numbers::invalid_index

Field index.

Remarks
User-set

◆ field_solve_type

fieldSolveType variableAttributes::field_solve_type = fieldSolveType::UNDEFINED_SOLVE

Internal classification for the field solve type.

Remarks
Internally determined

◆ field_type

fieldType variableAttributes::field_type = fieldType::UNDEFINED_FIELD

Field type (SCALAR/VECTOR).

Remarks
User-set

◆ is_postprocess

bool variableAttributes::is_postprocess = false

Postprocess variable.

Remarks
User-set

◆ name

std::string variableAttributes::name

Field name.

Remarks
User-set

◆ pde_type

PDEType variableAttributes::pde_type = PDEType::UNDEFINED_PDE

PDE type (EXPLICIT/NONEXPLICIT).

Remarks
User-set

◆ simplified_dependency_set

std::set<unsigned int> variableAttributes::simplified_dependency_set

A simplified set of evaluation flags for the dependencies of the current variable's LHS & RHS. This will help determine the fieldSolveType of the field. Fields indices where the evaluation flags are not 0 (not nothing) are included. Additionally, explicit fields are excluded to speed up the graph search.

Remarks
Internally determined

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