https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowDictatorTest.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 "MooseObjectUnitTest.h"
13#include "PorousFlowDictator.h"
14#include "libmesh/string_to_enum.h"
15
17
19{
20public:
22
23protected:
25 {
26 auto var_params_ll = _factory.getValidParams("MooseVariable");
27 var_params_ll.set<MooseEnum>("family") = "LAGRANGE";
28 var_params_ll.set<MooseEnum>("order") = "FIRST";
29
30 auto var_params_cm = _factory.getValidParams("MooseVariableConstMonomial");
31 var_params_cm.set<MooseEnum>("family") = "MONOMIAL";
32 var_params_cm.set<MooseEnum>("order") = "CONSTANT";
33
34 _fe_problem->addVariable("MooseVariable", "var0", var_params_ll);
35 _fe_problem->addVariable("MooseVariable", "var1", var_params_ll);
36 _fe_problem->addVariable("MooseVariable", "var2", var_params_ll);
37 _fe_problem->addVariable("MooseVariable", "var3", var_params_ll);
38 _fe_problem->addVariable("MooseVariable", "var4", var_params_ll);
39 _fe_problem->addVariable("MooseVariable", "var5", var_params_ll);
40 _fe_problem->addVariable("MooseVariableConstMonomial", "var_different_fe_type", var_params_cm);
41 _fe_problem->addAuxVariable("MooseVariable", "aux_var", var_params_ll);
42
43 InputParameters params = _factory.getValidParams("PorousFlowDictator");
44 params.set<std::vector<VariableName>>("porous_flow_vars") =
45 std::vector<VariableName>{"var1", "var4", "var3"};
46 params.set<unsigned>("number_fluid_phases") = 2;
47 params.set<unsigned>("number_fluid_components") = 4;
48 params.set<unsigned int>("number_aqueous_equilibrium") = 5;
49 params.set<unsigned int>("number_aqueous_kinetic") = 6;
50 params.set<unsigned int>("aqueous_phase_number") = 1;
51 _fe_problem->addUserObject("PorousFlowDictator", "dictator_name", params);
53
54 InputParameters params_no_fetype = _factory.getValidParams("PorousFlowDictator");
55 params_no_fetype.set<std::vector<VariableName>>("porous_flow_vars") =
56 std::vector<VariableName>{"var1", "var_different_fe_type"};
57 params_no_fetype.set<unsigned>("number_fluid_phases") = 1;
58 params_no_fetype.set<unsigned>("number_fluid_components") = 3;
59 _fe_problem->addUserObject("PorousFlowDictator", "dictator_no_fetype", params_no_fetype);
61 }
62
65};
InputParameters getValidParams(const std::string &name) const
T & set(const std::string &name, bool quiet_mode=false)
std::shared_ptr< FEProblem > _fe_problem
const PorousFlowDictator * _dictator_no_fetype
const PorousFlowDictator * _dictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
const T & getUserObject(const std::string &param_name, bool is_dependency=true) const