PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the Material should be a "nodal" Material, in which Material Properties will be evaluated at nodes (using the Variable's nodal values rather than their quadpoint values). More...
#include <PorousFlowMaterial.h>
Public Member Functions | |
PorousFlowMaterial (const InputParameters ¶meters) | |
virtual void | initialSetup () override |
Protected Member Functions | |
virtual void | initStatefulProperties (unsigned int n_points) override |
Correctly sizes nodal materials, then initialises using Material::initStatefulProperties. More... | |
virtual void | computeProperties () override |
Correctly sizes nodal materials, then computes using Material::computeProperties. More... | |
void | sizeNodalProperties () |
Resizes properties to be equal to max(number of nodes, number of quadpoints) in the current element. More... | |
unsigned | nearestQP (unsigned nodenum) const |
Find the nearest quadpoint to the node labelled by nodenum in the current element. More... | |
Protected Attributes | |
const bool | _nodal_material |
Whether the derived class holds nodal values. More... | |
const PorousFlowDictator & | _dictator |
The variable names UserObject for the PorousFlow variables. More... | |
const VariableName | _pressure_variable_name |
Names of variables used to declare/get derivatives in the DerivativeMaterialInterface to ensure consistency. More... | |
const VariableName | _saturation_variable_name |
const VariableName | _temperature_variable_name |
const VariableName | _mass_fraction_variable_name |
PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the Material should be a "nodal" Material, in which Material Properties will be evaluated at nodes (using the Variable's nodal values rather than their quadpoint values).
In a derived class's computeQpProperties, _qp must be recognized as a label for a quadpoint (for ordinary Materials) or a node (for nodal Materials).
For the nodal Material case, the Material Properties are sized to max(number of nodes, number of quadpoints). Only "number of nodes" of these will ever be computed and used: the remaining ones (if any) exist just to make sure that the vectors are correctly sized in MOOSE's copying operations (etc).
If number of quadpoints < number of nodes (eg for boundary elements) care should be taken to store the required nodal information in the first number_of_quadpoint elements in the std::vector!
Definition at line 40 of file PorousFlowMaterial.h.
PorousFlowMaterial::PorousFlowMaterial | ( | const InputParameters & | parameters | ) |
Definition at line 29 of file PorousFlowMaterial.C.
|
overrideprotectedvirtual |
Correctly sizes nodal materials, then computes using Material::computeProperties.
Definition at line 63 of file PorousFlowMaterial.C.
|
overridevirtual |
Definition at line 41 of file PorousFlowMaterial.C.
|
overrideprotectedvirtual |
Correctly sizes nodal materials, then initialises using Material::initStatefulProperties.
Definition at line 48 of file PorousFlowMaterial.C.
|
protected |
Find the nearest quadpoint to the node labelled by nodenum in the current element.
nodenum | the node number in the current element |
Definition at line 98 of file PorousFlowMaterial.C.
Referenced by PorousFlowNearestQp::computeQpProperties().
|
protected |
Resizes properties to be equal to max(number of nodes, number of quadpoints) in the current element.
Definition at line 79 of file PorousFlowMaterial.C.
Referenced by computeProperties(), and initStatefulProperties().
|
protected |
The variable names UserObject for the PorousFlow variables.
Definition at line 71 of file PorousFlowMaterial.h.
|
protected |
Definition at line 78 of file PorousFlowMaterial.h.
|
protected |
Whether the derived class holds nodal values.
Definition at line 68 of file PorousFlowMaterial.h.
Referenced by computeProperties(), initialSetup(), initStatefulProperties(), and PorousFlowDarcyVelocityMaterial::PorousFlowDarcyVelocityMaterial().
|
protected |
Names of variables used to declare/get derivatives in the DerivativeMaterialInterface to ensure consistency.
Definition at line 75 of file PorousFlowMaterial.h.
|
protected |
Definition at line 76 of file PorousFlowMaterial.h.
|
protected |
Definition at line 77 of file PorousFlowMaterial.h.