void DirichletBoundaryConditionWithinTimeInterval::config( NumLib::LocalToGlobalIndexMap const& dof_table_bulk) { checkParametersOfDirichletBoundaryCondition(_bc_mesh, dof_table_bulk, _variable_id, _component_id); std::vector<MeshLib::Node*> const& bc_nodes = _bc_mesh.getNodes(); MeshLib::MeshSubset bc_mesh_subset(_bc_mesh, bc_nodes); // Create local DOF table from the BC mesh subset for the given variable // and component id. _dof_table_boundary.reset(dof_table_bulk.deriveBoundaryConstrainedMap( _variable_id, {_component_id}, std::move(bc_mesh_subset))); }
PythonBoundaryCondition::PythonBoundaryCondition( PythonBoundaryConditionData&& bc_data, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, bool const flush_stdout) : _bc_data(std::move(bc_data)), _flush_stdout(flush_stdout) { std::vector<MeshLib::Node*> const& bc_nodes = _bc_data.boundary_mesh.getNodes(); MeshLib::MeshSubset bc_mesh_subset(_bc_data.boundary_mesh, bc_nodes); // Create local DOF table from the bc mesh subset for the given variable and // component id. _dof_table_boundary = _bc_data.dof_table_bulk.deriveBoundaryConstrainedMap( std::move(bc_mesh_subset)); createLocalAssemblers<PythonBoundaryConditionLocalAssembler>( global_dim, _bc_data.boundary_mesh.getElements(), *_dof_table_boundary, shapefunction_order, _local_assemblers, _bc_data.boundary_mesh.isAxiallySymmetric(), integration_order, _bc_data); }