Action to automatically ensure that PorousFlowMaterials are correctly evaluated at either the qps, nodes, or both. More...
#include <PorousFlowAddMaterialAction.h>
Public Member Functions | |
PorousFlowAddMaterialAction (const InputParameters ¶ms) | |
virtual void | act () override |
Protected Member Functions | |
void | createDependencyList () |
Creates a set of all actions, kernels, etc to check material dependency against in order to determine whether to add nodal and/or qp materials. More... | |
bool | isPFMaterialRequired (std::string pf_material_type, bool at_nodes) |
Check to see if the material with a given at_nodes parameter is required. More... | |
bool | isPFMaterialPresent (AddMaterialAction *material, bool at_nodes) |
Check to see if the material with a given at_nodes parameter has already been included in the input file (to void duplicate material property errors) More... | |
void | addPFMaterial (AddMaterialAction *material, bool at_nodes) |
Adds the material for the given at_nodes parameter. More... | |
Protected Attributes | |
std::string | _dictator_name |
Name of the PorousFlowDictator. More... | |
std::set< std::string > | _dependency_list |
List of kernels, actions etc that may depend on PorousFlow materials. More... | |
std::vector< AddMaterialAction * > | _ama_materials |
List of all materials added in the input file by AddMaterialAction. More... | |
DependencyResolver< std::string > | _deps |
All dependencies of kernels, auxkernels, materials, etc, are stored in _dependencies. More... | |
Action to automatically ensure that PorousFlowMaterials are correctly evaluated at either the qps, nodes, or both.
This action works by checking all materials added in the input file. If a material is a valid PorousFlowMaterial, then it does one of the following: 1) If the at_nodes parameter has been set by the user, then it leaves that material alone (this assumes that the user has correctly added that material). 2) If the at_nodes parameter has not been set by the user, then the action checks to see if this material is required at the qps, nodes or both, and makes sure that the correct versions are added. 3) If a PorousFlowJoiner material is included in the input file, it does nothing (as the PorousFlowAddMaterialJoiner action will check for these and give a message that these materials are no longer required in the input file)
Definition at line 36 of file PorousFlowAddMaterialAction.h.
PorousFlowAddMaterialAction::PorousFlowAddMaterialAction | ( | const InputParameters & | params | ) |
Definition at line 36 of file PorousFlowAddMaterialAction.C.
|
overridevirtual |
Definition at line 42 of file PorousFlowAddMaterialAction.C.
|
protected |
Adds the material for the given at_nodes parameter.
material | pointer to the material in the action warehouse |
at_nodes | true if material is evaluates at the nodes, false otherwise |
Definition at line 211 of file PorousFlowAddMaterialAction.C.
Referenced by act().
|
protected |
Creates a set of all actions, kernels, etc to check material dependency against in order to determine whether to add nodal and/or qp materials.
Definition at line 111 of file PorousFlowAddMaterialAction.C.
Referenced by act().
|
protected |
Check to see if the material with a given at_nodes parameter has already been included in the input file (to void duplicate material property errors)
material | pointer to the material in the action warehouse |
at_nodes | true if material is evaluated at the nodes, false otherwise |
Definition at line 167 of file PorousFlowAddMaterialAction.C.
Referenced by act().
|
protected |
Check to see if the material with a given at_nodes parameter is required.
at_nodes | true if material is evaluated at the nodes, false otherwise |
Definition at line 150 of file PorousFlowAddMaterialAction.C.
Referenced by act().
|
protected |
List of all materials added in the input file by AddMaterialAction.
Definition at line 79 of file PorousFlowAddMaterialAction.h.
Referenced by act(), and isPFMaterialPresent().
|
protected |
List of kernels, actions etc that may depend on PorousFlow materials.
Definition at line 77 of file PorousFlowAddMaterialAction.h.
Referenced by createDependencyList(), and isPFMaterialRequired().
|
protectedinherited |
All dependencies of kernels, auxkernels, materials, etc, are stored in _dependencies.
Definition at line 37 of file PorousFlowDependencies.h.
Referenced by PorousFlowFullySaturated::addMaterials(), PorousFlowSinglePhaseBase::addMaterials(), PorousFlowBasicTHM::addMaterials(), PorousFlowUnsaturated::addMaterials(), isPFMaterialRequired(), and PorousFlowDependencies::PorousFlowDependencies().
|
protected |
Name of the PorousFlowDictator.
Definition at line 75 of file PorousFlowAddMaterialAction.h.