22 int const component_id,
unsigned const integration_order,
23 unsigned const shapefunction_order,
unsigned const global_dim,
24 std::map<
int, std::shared_ptr<MaterialPropertyLib::Medium>>
const& media)
26 DBUG(
"Constructing WellboreCompensateNeumann BC from config.");
32 "WellboreCompensateNeumann BC only implemented for the "
33 "WellboreSimulator processes.");
35 assert(variable_id == 0 || variable_id == 1 || variable_id == 2);
40 "The dimension ({:d}) of the given boundary mesh '{:s}' is not by "
42 "lower than the bulk dimension ({:d}).",
46 auto const pressure_coefficient =
50 auto const velocity_coefficient =
54 auto const enthalpy_coefficient =
58 auto const pressure_id = 0;
59 auto const velocity_id = 1;
60 auto const enthalpy_id = 2;
62 std::vector<MeshLib::Node*>
const& bc_nodes = bc_mesh.
getNodes();
65 pressure_id, {component_id}, std::move(bc_mesh_subset));
67 velocity_id, {component_id}, std::move(bc_mesh_subset));
69 enthalpy_id, {component_id}, std::move(bc_mesh_subset));
76 return std::make_unique<WellboreCompensateNeumannBoundaryCondition>(
77 integration_order, shapefunction_order, dof_table, variable_id,
78 component_id, global_dim, bc_mesh,
80 pressure_coefficient, velocity_coefficient, enthalpy_coefficient,
81 std::move(dof_table_boundary_pressure),
82 std::move(dof_table_boundary_velocity),
83 std::move(dof_table_boundary_enthalpy), std::move(media_map)});
std::unique_ptr< WellboreCompensateNeumannBoundaryCondition > createWellboreCompensateNeumannBoundaryCondition(BaseLib::ConfigTree const &config, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)