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  virtual void initialSetup() override;
45 
46 protected:
48  virtual void initStatefulProperties(unsigned int n_points) override;
49 
51  virtual void computeProperties() override;
52 
57  void sizeNodalProperties();
58 
65  unsigned nearestQP(unsigned nodenum) const;
66 
68  const bool _nodal_material;
69 
72 
75  const VariableName _pressure_variable_name;
76  const VariableName _saturation_variable_name;
77  const VariableName _temperature_variable_name;
78  const VariableName _mass_fraction_variable_name;
79 };
PorousFlowMaterial::initStatefulProperties
virtual void initStatefulProperties(unsigned int n_points) override
Correctly sizes nodal materials, then initialises using Material::initStatefulProperties.
Definition: PorousFlowMaterial.C:48
PorousFlowDictator.h
validParams< PorousFlowMaterial >
InputParameters validParams< PorousFlowMaterial >()
Definition: PorousFlowMaterial.C:16
PorousFlowMaterial::_dictator
const PorousFlowDictator & _dictator
The variable names UserObject for the PorousFlow variables.
Definition: PorousFlowMaterial.h:71
PorousFlowMaterial::nearestQP
unsigned nearestQP(unsigned nodenum) const
Find the nearest quadpoint to the node labelled by nodenum in the current element.
Definition: PorousFlowMaterial.C:98
PorousFlowMaterial::PorousFlowMaterial
PorousFlowMaterial(const InputParameters &parameters)
Definition: PorousFlowMaterial.C:29
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowMaterial::_pressure_variable_name
const VariableName _pressure_variable_name
Names of variables used to declare/get derivatives in the DerivativeMaterialInterface to ensure consi...
Definition: PorousFlowMaterial.h:75
PorousFlowMaterial::_saturation_variable_name
const VariableName _saturation_variable_name
Definition: PorousFlowMaterial.h:76
PorousFlowMaterial::computeProperties
virtual void computeProperties() override
Correctly sizes nodal materials, then computes using Material::computeProperties.
Definition: PorousFlowMaterial.C:63
PorousFlowMaterial::_temperature_variable_name
const VariableName _temperature_variable_name
Definition: PorousFlowMaterial.h:77
PorousFlowMaterial
PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the...
Definition: PorousFlowMaterial.h:40
PorousFlowMaterial::_nodal_material
const bool _nodal_material
Whether the derived class holds nodal values.
Definition: PorousFlowMaterial.h:68
PorousFlowMaterial::sizeNodalProperties
void sizeNodalProperties()
Resizes properties to be equal to max(number of nodes, number of quadpoints) in the current element.
Definition: PorousFlowMaterial.C:79
PorousFlowMaterial::_mass_fraction_variable_name
const VariableName _mass_fraction_variable_name
Definition: PorousFlowMaterial.h:78
PorousFlowMaterial::initialSetup
virtual void initialSetup() override
Definition: PorousFlowMaterial.C:41