www.mooseframework.org
PorousFlowMaterial.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
16 class PorousFlowMaterial;
17 
18 template <>
19 InputParameters validParams<PorousFlowMaterial>();
20 
40 class PorousFlowMaterial : public Material
41 {
42 public:
43  PorousFlowMaterial(const InputParameters & parameters);
44 
45 protected:
47  virtual void initStatefulProperties(unsigned int n_points) override;
48 
50  virtual void computeProperties() override;
51 
56  void sizeNodalProperty(const std::string & prop_name);
57 
63 
70  unsigned nearestQP(unsigned nodenum) const;
71 
73  const bool _nodal_material;
74 
77 
80  const VariableName _pressure_variable_name;
81  const VariableName _saturation_variable_name;
82  const VariableName _temperature_variable_name;
83  const VariableName _mass_fraction_variable_name;
84 };
85 
PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the...
void sizeNodalProperty(const std::string &prop_name)
Makes property with name prop_name to be size equal to max(number of nodes, number of quadpoints) in ...
void sizeAllSuppliedProperties()
Makes all supplied properties for this material to be size equal to max(number of nodes...
virtual void computeProperties() override
Correctly sizes nodal materials, then computes using Material::computeProperties. ...
const VariableName _temperature_variable_name
virtual void initStatefulProperties(unsigned int n_points) override
Correctly sizes nodal materials, then initialises using Material::initStatefulProperties.
const bool _nodal_material
Whether the derived class holds nodal values.
InputParameters validParams< PorousFlowMaterial >()
PorousFlowMaterial(const InputParameters &parameters)
unsigned nearestQP(unsigned nodenum) const
Find the nearest quadpoint to the node labelled by nodenum in the current element.
const VariableName _pressure_variable_name
Names of variables used to declare/get derivatives in the DerivativeMaterialInterface to ensure consi...
const VariableName _mass_fraction_variable_name
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
const VariableName _saturation_variable_name
const PorousFlowDictator & _dictator
The variable names UserObject for the PorousFlow variables.