www.mooseframework.org
Public Member Functions | Protected Attributes | List of all members
PorousFlowDependencies Class Reference

Holds the PorousFlow dependencies of kernels, auxkernels, materials, etc. More...

#include <PorousFlowDependencies.h>

Inheritance diagram for PorousFlowDependencies:
[legend]

Public Member Functions

 PorousFlowDependencies ()
 

Protected Attributes

DependencyResolver< std::string > _deps
 All dependencies of kernels, auxkernels, materials, etc, are stored in _dependencies. More...
 

Detailed Description

Holds the PorousFlow dependencies of kernels, auxkernels, materials, etc.

For instance the Kernel PorousFlowAdvectiveFlux depends on the Kernel PorousFlowDarcyBase, and the Materials PorousFlowMassFraction (nodal version) and PorousFlowRelativePermeability (the nodal version).

The main purpose of this class is to enable Actions to easily determine which Materials they should add, given that they have to add certain Kernels and AuxKernels.

It is envisaged that as more Kernels, etc, are added to PorousFlow, then the dependencies constained in this class will be updated to enable Actions to work efficiently

Definition at line 28 of file PorousFlowDependencies.h.

Constructor & Destructor Documentation

◆ PorousFlowDependencies()

PorousFlowDependencies::PorousFlowDependencies ( )

Definition at line 12 of file PorousFlowDependencies.C.

13 {
14  // Action dependencies
15  _deps.insertDependency("PorousFlowActionBase", "PorousFlowDarcyVelocityComponent");
16 
17  _deps.insertDependency("PorousFlowSinglePhaseBase", "PorousFlowActionBase");
18  _deps.insertDependency("PorousFlowSinglePhaseBase", "PorousFlowEffectiveStressCoupling");
19  _deps.insertDependency("PorousFlowSinglePhaseBase", "PorousFlowHeatConduction");
20  _deps.insertDependency("PorousFlowSinglePhaseBase", "PorousFlowEnergyTimeDerivative");
21  _deps.insertDependency("PorousFlowSinglePhaseBase", "PorousFlowHeatVolumetricExpansion");
22 
23  _deps.insertDependency("PorousFlowFullySaturated", "PorousFlowSinglePhaseBase");
24  _deps.insertDependency("PorousFlowFullySaturated", "PorousFlowFullySaturatedDarcyFlow");
25  _deps.insertDependency("PorousFlowFullySaturated", "PorousFlowMassTimeDerivative");
26  _deps.insertDependency("PorousFlowFullySaturated", "PorousFlowMassVolumetricExpansion");
27  _deps.insertDependency("PorousFlowFullySaturated", "PorousFlowFullySaturatedHeatAdvection");
28 
29  _deps.insertDependency("PorousFlowBasicTHM", "PorousFlowSinglePhaseBase");
30  _deps.insertDependency("PorousFlowBasicTHM", "PorousFlowFullySaturatedDarcyBase");
31  _deps.insertDependency("PorousFlowBasicTHM", "PorousFlowFullySaturatedMassTimeDerivative");
32  _deps.insertDependency("PorousFlowBasicTHM", "PorousFlowFullySaturatedHeatAdvection");
33 
34  _deps.insertDependency("PorousFlowUnsaturated", "PorousFlowSinglePhaseBase");
35  _deps.insertDependency("PorousFlowUnsaturated", "PorousFlowAdvectiveFlux");
36  _deps.insertDependency("PorousFlowUnsaturated", "PorousFlowMassTimeDerivative");
37  _deps.insertDependency("PorousFlowUnsaturated", "PorousFlowMassVolumetricExpansion");
38  _deps.insertDependency("PorousFlowUnsaturated", "PorousFlowHeatAdvection");
39 
40  // AuxKernel dependencies
41  _deps.insertDependency("PorousFlowDarcyVelocityComponent", "relative_permeability_qp");
42  _deps.insertDependency("PorousFlowDarcyVelocityComponent", "density_qp");
43  _deps.insertDependency("PorousFlowDarcyVelocityComponent", "viscosity_qp");
44  _deps.insertDependency("PorousFlowDarcyVelocityComponent", "permeability_qp");
45  _deps.insertDependency("PorousFlowDarcyVelocityComponent", "pressure_saturation_qp");
46 
47  _deps.insertDependency("PorousFlowDarcyVelocityComponentLowerDimensional",
48  "PorousFlowDarcyVelocityComponent");
49 
50  _deps.insertDependency("PorousFlowPropertyAux", "pressure_saturation_qp");
51  _deps.insertDependency("PorousFlowPropertyAux", "temperature_qp");
52  _deps.insertDependency("PorousFlowPropertyAux", "fluid_properties_qp");
53  _deps.insertDependency("PorousFlowPropertyAux", "mass_fraction_qp");
54  _deps.insertDependency("PorousFlowPropertyAux", "relative_permeability_qp");
55  _deps.insertDependency("PorousFlowPropertyAux", "chemistry_qp");
56  _deps.insertDependency("PorousFlowPropertyAux", "mineral_qp");
57  _deps.insertDependency("PorousFlowPropertyAux", "porosity_qp");
58 
59  // BC dependencies
60  _deps.insertDependency("PorousFlowHalfCubicSink", "PorousFlowSink");
61  _deps.insertDependency("PorousFlowHalfGaussianSink", "PorousFlowSink");
62  _deps.insertDependency("PorousFlowPiecewiseLinearSink", "PorousFlowSink");
63 
64  _deps.insertDependency("PorousFlowSink", "pressure_saturation_nodal");
65  _deps.insertDependency("PorousFlowSink", "temperature_nodal");
66  _deps.insertDependency("PorousFlowSink", "mass_fraction_nodal");
67  _deps.insertDependency("PorousFlowSink", "fluid_properties_nodal");
68  _deps.insertDependency("PorousFlowSink", "relative_permeability_nodal");
69  _deps.insertDependency("PorousFlowSink", "enthalpy_nodal");
70  _deps.insertDependency("PorousFlowSink", "internal_energy_nodal");
71  _deps.insertDependency("PorousFlowSink", "permeability_qp");
72  _deps.insertDependency("PorousFlowSink", "thermal_conductivity_qp");
73 
74  // Dirac kernel dependencies
75  _deps.insertDependency("PorousFlowPeacemanBorehole", "PorousFlowLineSink");
76  _deps.insertDependency("PorousFlowPolyLineSink", "PorousFlowLineSink");
77 
78  _deps.insertDependency("PorousFlowLineSink", "pressure_saturation_qp");
79  _deps.insertDependency("PorousFlowLineSink", "temperature_qp");
80  _deps.insertDependency("PorousFlowLineSink", "thermal_conductivity_qp");
81  _deps.insertDependency("PorousFlowLineSink", "relative_permeability_nodal");
82  _deps.insertDependency("PorousFlowLineSink", "density_nodal");
83  _deps.insertDependency("PorousFlowLineSink", "viscosity_nodal");
84  _deps.insertDependency("PorousFlowLineSink", "enthalpy_nodal");
85  _deps.insertDependency("PorousFlowLineSink", "internal_energy_nodal");
86  _deps.insertDependency("PorousFlowLineSink", "relative_permeability_nodal");
87  _deps.insertDependency("PorousFlowLineSink", "mass_fraction_nodal");
88 
89  // Kernel dependencies
90  _deps.insertDependency("PorousFlowAdvectiveFlux", "PorousFlowDarcyBase");
91  _deps.insertDependency("PorousFlowAdvectiveFlux", "mass_fraction_nodal");
92  _deps.insertDependency("PorousFlowAdvectiveFlux", "relative_permeability_nodal");
93 
94  _deps.insertDependency("PorousFlowBasicAdvection", "darcy_velocity_qp");
95 
96  _deps.insertDependency("PorousFlowDarcyBase", "permeability_qp");
97  _deps.insertDependency("PorousFlowDarcyBase", "density_qp");
98  _deps.insertDependency("PorousFlowDarcyBase", "density_nodal");
99  _deps.insertDependency("PorousFlowDarcyBase", "viscosity_nodal");
100  _deps.insertDependency("PorousFlowDarcyBase", "pressure_saturation_qp");
101 
102  _deps.insertDependency("PorousFlowDesorpedMassTimeDerivative", "porosity_qp");
103 
104  _deps.insertDependency("PorousFlowDesorpedMassVolumetricExpansion", "porosity_qp");
105  _deps.insertDependency("PorousFlowDesorpedMassVolumetricExpansion", "volumetric_strain_qp");
106 
107  _deps.insertDependency("PorousFlowDispersiveFlux", "density_qp");
108  _deps.insertDependency("PorousFlowDispersiveFlux", "viscosity_qp");
109  _deps.insertDependency("PorousFlowDispersiveFlux", "mass_fraction_qp");
110  _deps.insertDependency("PorousFlowDispersiveFlux", "porosity_qp");
111  _deps.insertDependency("PorousFlowDispersiveFlux", "diffusivity_qp");
112  _deps.insertDependency("PorousFlowDispersiveFlux", "relative_permeability_qp");
113  _deps.insertDependency("PorousFlowDispersiveFlux", "permeability_qp");
114  _deps.insertDependency("PorousFlowDispersiveFlux", "pressure_saturation_qp");
115 
116  _deps.insertDependency("PorousFlowEffectiveStressCoupling", "effective_pressure_qp");
117 
118  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "porosity_nodal");
119  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "nearest_qp_nodal");
120  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "matrix_internal_energy_nodal");
121  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "density_nodal");
122  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "enthalpy_nodal");
123  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "internal_energy_nodal");
124  _deps.insertDependency("PorousFlowEnergyTimeDerivative", "pressure_saturation_nodal");
125 
126  _deps.insertDependency("PorousFlowFullySaturatedDarcyBase", "permeability_qp");
127  _deps.insertDependency("PorousFlowFullySaturatedDarcyBase", "density_qp");
128  _deps.insertDependency("PorousFlowFullySaturatedDarcyBase", "viscosity_qp");
129  _deps.insertDependency("PorousFlowFullySaturatedDarcyBase", "pressure_saturation_qp");
130 
131  _deps.insertDependency("PorousFlowFullySaturatedDarcyFlow", "PorousFlowFullySaturatedDarcyBase");
132  _deps.insertDependency("PorousFlowFullySaturatedDarcyFlow", "mass_fraction_qp");
133 
134  _deps.insertDependency("PorousFlowFullySaturatedHeatAdvection",
135  "PorousFlowFullySaturatedDarcyBase");
136  _deps.insertDependency("PorousFlowFullySaturatedHeatAdvection", "enthalpy_qp");
137 
138  _deps.insertDependency("PorousFlowFullySaturatedMassTimeDerivative", "biot_modulus_qp");
139  _deps.insertDependency("PorousFlowFullySaturatedMassTimeDerivative", "thermal_expansion_qp");
140  _deps.insertDependency("PorousFlowFullySaturatedMassTimeDerivative", "density_qp");
141  _deps.insertDependency("PorousFlowFullySaturatedMassTimeDerivative", "pressure_saturation_qp");
142  _deps.insertDependency("PorousFlowFullySaturatedMassTimeDerivative", "temperature_qp");
143  _deps.insertDependency("PorousFlowFullySaturatedMassTimeDerivative", "volumetric_strain_qp");
144 
145  _deps.insertDependency("PorousFlowHeatAdvection", "PorousFlowDarcyBase");
146  _deps.insertDependency("PorousFlowHeatAdvection", "enthalpy_nodal");
147  _deps.insertDependency("PorousFlowHeatAdvection", "relative_permeability_nodal");
148 
149  _deps.insertDependency("PorousFlowHeatConduction", "thermal_conductivity_qp");
150  _deps.insertDependency("PorousFlowHeatConduction", "temperature_qp");
151 
152  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "porosity_nodal");
153  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "nearest_qp_nodal");
154  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "matrix_internal_energy_nodal");
155  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "density_nodal");
156  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "internal_energy_nodal");
157  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "pressure_saturation_nodal");
158  _deps.insertDependency("PorousFlowHeatVolumetricExpansion", "volumetric_strain_qp");
159 
160  _deps.insertDependency("PorousFlowMassRadioactiveDecay", "porosity_nodal");
161  _deps.insertDependency("PorousFlowMassRadioactiveDecay", "nearest_qp_nodal");
162  _deps.insertDependency("PorousFlowMassRadioactiveDecay", "density_nodal");
163  _deps.insertDependency("PorousFlowMassRadioactiveDecay", "pressure_saturation_nodal");
164  _deps.insertDependency("PorousFlowMassRadioactiveDecay", "mass_fraction_nodal");
165 
166  _deps.insertDependency("PorousFlowMassTimeDerivative", "porosity_nodal");
167  _deps.insertDependency("PorousFlowMassTimeDerivative", "nearest_qp_nodal");
168  _deps.insertDependency("PorousFlowMassTimeDerivative", "density_nodal");
169  _deps.insertDependency("PorousFlowMassTimeDerivative", "pressure_saturation_nodal");
170  _deps.insertDependency("PorousFlowMassTimeDerivative", "mass_fraction_nodal");
171 
172  _deps.insertDependency("PorousFlowMassVolumetricExpansion", "porosity_nodal");
173  _deps.insertDependency("PorousFlowMassVolumetricExpansion", "nearest_qp_nodal");
174  _deps.insertDependency("PorousFlowMassVolumetricExpansion", "density_nodal");
175  _deps.insertDependency("PorousFlowMassVolumetricExpansion", "pressure_saturation_nodal");
176  _deps.insertDependency("PorousFlowMassVolumetricExpansion", "mass_fraction_nodal");
177  _deps.insertDependency("PorousFlowMassVolumetricExpansion", "volumetric_strain_qp");
178 
179  _deps.insertDependency("PorousFlowPlasticHeatEnergy", "PlasticHeatEnergy");
180  _deps.insertDependency("PorousFlowPlasticHeatEnergy", "nearest_qp_nodal");
181  _deps.insertDependency("PorousFlowPlasticHeatEnergy", "porosity_nodal");
182 
183  _deps.insertDependency("PorousFlowPreDis", "pressure_saturation_nodal");
184  _deps.insertDependency("PorousFlowPreDis", "porosity_nodal");
185  _deps.insertDependency("PorousFlowPreDis", "chemistry_nodal");
186  _deps.insertDependency("PorousFlowPreDis", "mineral_nodal");
187 
188  // Material dependencies
189  _deps.insertDependency("density_qp", "fluid_properties_qp");
190  _deps.insertDependency("density_nodal", "fluid_properties_nodal");
191  _deps.insertDependency("viscosity_qp", "fluid_properties_qp");
192  _deps.insertDependency("viscosity_nodal", "fluid_properties_nodal");
193  _deps.insertDependency("internal_energy_qp", "fluid_properties_qp");
194  _deps.insertDependency("internal_energy_nodal", "fluid_properties_nodal");
195  _deps.insertDependency("enthalpy_qp", "fluid_properties_qp");
196  _deps.insertDependency("enthalpy_nodal", "fluid_properties_nodal");
197 
198  _deps.insertDependency("darcy_velocity_qp", "permeability_qp");
199  _deps.insertDependency("darcy_velocity_qp", "fluid_properties_qp");
200  _deps.insertDependency("darcy_velocity_qp", "relative_permeability_qp");
201  _deps.insertDependency("darcy_velocity_qp", "pressure_saturation_qp");
202 
203  _deps.insertDependency("chemistry_nodal", "pressure_saturation_nodal");
204  _deps.insertDependency("chemistry_nodal", "porosity_nodal");
205  _deps.insertDependency("chemistry_nodal", "temperature_nodal");
206  _deps.insertDependency("chemistry_qp", "pressure_saturation_qp");
207  _deps.insertDependency("chemistry_qp", "porosity_qp");
208  _deps.insertDependency("chemistry_qp", "temperature_qp");
209 
210  _deps.insertDependency("mineral_nodal", "pressure_saturation_nodal");
211  _deps.insertDependency("mineral_nodal", "porosity_nodal");
212  _deps.insertDependency("mineral_nodal", "chemistry_nodal");
213  _deps.insertDependency("mineral_qp", "pressure_saturation_qp");
214  _deps.insertDependency("mineral_qp", "porosity_qp");
215  _deps.insertDependency("mineral_qp", "chemistry_qp");
216 
217  _deps.insertDependency("biot_modulus_nodal", "porosity_nodal");
218  _deps.insertDependency("biot_modulus_qp", "porosity_qp");
219 
220  _deps.insertDependency("thermal_expansion_nodal", "porosity_nodal");
221  _deps.insertDependency("thermal_expansion_qp", "porosity_qp");
222 
223  _deps.insertDependency("fluid_properties_nodal", "pressure_saturation_nodal");
224  _deps.insertDependency("fluid_properties_nodal", "temperature_nodal");
225  _deps.insertDependency("fluid_properties_nodal", "fluid_state_nodal");
226  _deps.insertDependency("fluid_properties_qp", "pressure_saturation_qp");
227  _deps.insertDependency("fluid_properties_qp", "temperature_qp");
228  _deps.insertDependency("fluid_properties_qp", "fluid_state_qp");
229 
230  _deps.insertDependency("mass_fraction_nodal", "fluid_state_nodal");
231  _deps.insertDependency("mass_fraction_qp", "fluid_state_qp");
232 
233  _deps.insertDependency("fluid_state_nodal", "temperature_nodal");
234  _deps.insertDependency("fluid_state_qp", "temperature_qp");
235 
236  _deps.insertDependency("diffusivity_qp", "porosity_qp");
237  _deps.insertDependency("diffusivity_qp", "pressure_saturation_qp");
238 
239  _deps.insertDependency("effective_pressure_nodal", "pressure_saturation_nodal");
240  _deps.insertDependency("effective_pressure_qp", "pressure_saturation_qp");
241 
242  _deps.insertDependency("matrix_internal_energy_nodal", "temperature_nodal");
243 
244  _deps.insertDependency("permeability_qp", "porosity_qp");
245 
246  _deps.insertDependency("relative_permeability_nodal", "pressure_saturation_nodal");
247  _deps.insertDependency("relative_permeability_qp", "pressure_saturation_qp");
248 
249  _deps.insertDependency("thermal_conductivity_qp", "porosity_qp");
250  _deps.insertDependency("thermal_conductivity_qp", "pressure_saturation_qp");
251 
252  _deps.insertDependency("gravitational_density_qp", "porosity_qp");
253  _deps.insertDependency("gravitational_density_qp", "fluid_properties_qp");
254 
255  _deps.insertDependency("porosity_nodal", "effective_pressure_nodal");
256  _deps.insertDependency("porosity_nodal", "pressure_saturation_nodal");
257  _deps.insertDependency("porosity_nodal", "temperature_nodal");
258  _deps.insertDependency("porosity_qp", "effective_pressure_qp");
259  _deps.insertDependency("porosity_qp", "pressure_saturation_qp");
260  _deps.insertDependency("porosity_qp", "temperature_qp");
261  //_deps.insertDependency("porosity_qp", "volumetric_strain_qp");
262 
263  // Postprocessor dependencies
264  _deps.insertDependency("PorousFlowFluidMass", "porosity_nodal");
265  _deps.insertDependency("PorousFlowFluidMass", "density_nodal");
266  _deps.insertDependency("PorousFlowFluidMass", "mass_fraction_nodal");
267  _deps.insertDependency("PorousFlowFluidMass", "pressure_saturation_nodal");
268  _deps.insertDependency("PorousFlowHeatEnergy", "porosity_nodal");
269  _deps.insertDependency("PorousFlowHeatEnergy", "matrix_internal_energy_nodal");
270  _deps.insertDependency("PorousFlowHeatEnergy", "density_nodal");
271  _deps.insertDependency("PorousFlowHeatEnergy", "internal_energy_nodal");
272  _deps.insertDependency("PorousFlowHeatEnergy", "pressure_saturation_nodal");
273 
274  // UserObject dependencies
275  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorBase", "permeability_qp");
276  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorBase", "pressure_saturation_qp");
277  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorBase", "density_qp");
278 
279  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturated",
280  "PorousFlowAdvectiveFluxCalculatorBase");
281  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturated", "density_nodal");
282  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturated", "viscosity_nodal");
283 
284  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent",
285  "PorousFlowAdvectiveFluxCalculatorSaturated");
286  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent",
287  "mass_fraction_nodal");
288 
289  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorUnsaturated",
290  "PorousFlowAdvectiveFluxCalculatorSaturated");
291  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorUnsaturated",
292  "relative_permeability_nodal");
293 
294  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent",
295  "PorousFlowAdvectiveFluxCalculatorSaturatedMultiComponent");
296  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorUnsaturatedMultiComponent",
297  "relative_permeability_nodal");
298 
299  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturatedHeat",
300  "PorousFlowAdvectiveFluxCalculatorSaturated");
301  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorSaturatedHeat", "enthalpy_nodal");
302 
303  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorUnsaturatedHeat",
304  "PorousFlowAdvectiveFluxCalculatorSaturatedHeat");
305  _deps.insertDependency("PorousFlowAdvectiveFluxCalculatorUnsaturatedHeat",
306  "relative_permeability_nodal");
307 }

Member Data Documentation

◆ _deps

DependencyResolver<std::string> PorousFlowDependencies::_deps
protected

The documentation for this class was generated from the following files:
PorousFlowDependencies::_deps
DependencyResolver< std::string > _deps
All dependencies of kernels, auxkernels, materials, etc, are stored in _dependencies.
Definition: PorousFlowDependencies.h:37