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 
36 {
37 public:
39 
41  virtual void initialSetup() override;
42 
43 protected:
45  virtual void initStatefulProperties(unsigned int n_points) override;
46 
48  virtual void computeProperties() override;
49 
55 
60  void sizeNodalProperties();
61 
68  unsigned nearestQP(unsigned nodenum) const;
69 
71  const bool _nodal_material;
72 
75 
78  const VariableName _pressure_variable_name;
79  const VariableName _saturation_variable_name;
80  const VariableName _temperature_variable_name;
81  const VariableName _mass_fraction_variable_name;
82 
84  std::vector<unsigned int> _supplied_old_prop_ids;
85 };
void sizeNodalProperties()
Resizes properties to be equal to max(number of nodes, number of quadpoints) in the current element...
PorousFlowMaterial is the base class for all PorousFlow Materials It allows users to specify that the...
virtual void computeProperties() override
Correctly sizes nodal materials, then computes using Material::computeProperties. ...
const VariableName _temperature_variable_name
std::vector< unsigned int > _supplied_old_prop_ids
stateful material property ids that this material supplies
virtual void initialSetup() override
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.
PorousFlowMaterial(const InputParameters &parameters)
static InputParameters validParams()
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.
const InputParameters & parameters() const
void computeNodalProperties()
Compute the material properties at each node, and if the number of nodes is less than the number of q...