https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowMaterial.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "Material.h"
13#include "MaterialData.h"
14#include "PorousFlowDictator.h"
15
38{
39public:
41
43 virtual void initialSetup() override;
44
45protected:
54 void checkNodalVariables(const std::vector<std::string> & coupled_var_params) const;
55
57 virtual void initStatefulProperties(unsigned int n_points) override;
58
60 virtual void computeProperties() override;
61
67
73
80 unsigned nearestQP(unsigned nodenum) const;
81
90 const VariableValue & nodalOrQpValue(const std::string & var_name, unsigned int comp = 0);
91
108 unsigned int nodalDofCount() const;
109
111 const bool _nodal_material;
112
115
118 const VariableName _pressure_variable_name;
119 const VariableName _saturation_variable_name;
120 const VariableName _temperature_variable_name;
122
124 std::vector<unsigned int> _supplied_old_prop_ids;
125};
const InputParameters & parameters() const
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the...
std::vector< unsigned int > _supplied_old_prop_ids
stateful material property ids that this material supplies
virtual void initStatefulProperties(unsigned int n_points) override
Correctly sizes nodal materials, then initialises using Material::initStatefulProperties.
static InputParameters validParams()
virtual void initialSetup() override
virtual void computeProperties() override
Correctly sizes nodal materials, then computes using Material::computeProperties.
unsigned nearestQP(unsigned nodenum) const
Find the nearest quadpoint to the node labelled by nodenum in the current element.
void computeNodalProperties()
Compute the material properties at each node, and if the number of nodes is less than the number of q...
const VariableName _saturation_variable_name
const VariableValue & nodalOrQpValue(const std::string &var_name, unsigned int comp=0)
The values of a coupled variable for this Material to read: its degree-of-freedom values if this is a...
void sizeNodalProperties()
Resizes properties to be equal to max(number of nodes, number of quadpoints) in the current element.
const VariableName _pressure_variable_name
Names of variables used to declare/get derivatives in the DerivativeMaterialInterface to ensure consi...
unsigned int nodalDofCount() const
The number of nodes of the current element that carry a degree of freedom of the variables that nodal...
const VariableName _mass_fraction_variable_name
const PorousFlowDictator & _dictator
The variable names UserObject for the PorousFlow variables.
const bool _nodal_material
Whether the derived class holds nodal values.
const VariableName _temperature_variable_name
void checkNodalVariables(const std::vector< std::string > &coupled_var_params) const
Error if this is a nodal Material but a variable supplied to one of the named coupled-variable parame...
VariableValueTempl< false > VariableValue