44 int const component_id,
unsigned const integration_order,
45 unsigned const shapefunction_order,
unsigned const global_dim,
46 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters)
48 DBUG(
"Constructing VariableDependentNeumann BC.");
52 "VariableDependentNeumann BC only implemented for 2 variable "
55 assert(variable_id == 0 || variable_id == 1);
60 "The dimension ({:d}) of the given boundary mesh '{:s}' is not by "
61 "one lower than the bulk dimension ({:d}).",
68 auto const& coefficient_current_variable =
70 parameters, 1, &bc_mesh);
72 auto const& coefficient_other_variable =
74 parameters, 1, &bc_mesh);
76 auto const& coefficient_mixed_variables =
78 parameters, 1, &bc_mesh);
80 std::vector<MeshLib::Node*>
const& bc_nodes = bc_mesh.
getNodes();
82 auto dof_table_boundary_other_variable =
84 (variable_id + 1) % 2, {component_id}, std::move(bc_mesh_subset));
100 return std::make_unique<VariableDependentNeumannBoundaryCondition>(
101 integration_order, shapefunction_order, dof_table, variable_id,
102 component_id, global_dim, bc_mesh,
104 constant, coefficient_current_variable, coefficient_other_variable,
105 coefficient_mixed_variables,
106 std::move(dof_table_boundary_other_variable)});
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)
std::unique_ptr< VariableDependentNeumannBoundaryCondition > createVariableDependentNeumannBoundaryCondition(VariableDependentNeumannConfig const &coefficients, 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::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters)