549 std::unique_ptr<CouplingMatrix> coupling_matrix;
550 if (build_coupling_matrix)
559 functor.set_coupling_matrix(coupling_matrix);
574 std::unique_ptr<PointLocatorBase> point_locator =
_mesh->sub_point_locator();
586 for (
const auto & elem :
_mesh->active_local_subdomain_elements_ptr_range(2))
589 CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(elem->subdomain_id()));
591 subdomain_one_context.get_element_fe(u_var)->get_nothing();
592 const std::vector<libMesh::Point> & qpoints = subdomain_two_context.get_element_fe(u_var)->get_xyz();
595 subdomain_two_context.pre_fe_reinit(system,elem);
596 subdomain_two_context.elem_fe_reinit();
598 std::set<subdomain_id_type> allowed_subdomains;
599 allowed_subdomains.insert(1);
605 for (
const auto & qp : qpoints )
607 const Elem * overlapping_elem = (*point_locator)( qp, &allowed_subdomains );
608 CPPUNIT_ASSERT(overlapping_elem);
611 subdomain_one_context.pre_fe_reinit(system,overlapping_elem);
612 subdomain_one_context.elem_fe_reinit();
void setup_coupling_matrix(std::unique_ptr< CouplingMatrix > &coupling)
Manages consistently variables, degrees of freedom, coefficient vectors, matrices and linear solvers ...
This is the base class from which all geometric element types are derived.
const Parallel::Communicator & comm() const
dof_id_type n_local_dofs() const
const MeshBase & get_mesh() const
dof_id_type n_dofs() const
unsigned int variable_number(std::string_view var) const
std::unique_ptr< MeshBase > _mesh
std::unique_ptr< EquationSystems > _es
This class handles the numbering of degrees of freedom on a mesh.
void build_quad_mesh(unsigned int n_refinements=0)
void reinit_send_list(MeshBase &mesh)
Clears the _send_list vector and then rebuilds it.
std::unique_ptr< NumericVector< Number > > solution
Data structure to hold solution values.
This class provides all data required for a physics package (e.g.
static std::unique_ptr< NumericVector< T > > build(const Parallel::Communicator &comm, const SolverPackage solver_package=libMesh::default_solver_package())
Builds a NumericVector on the processors in communicator comm using the linear solver package specifi...
std::unique_ptr< NumericVector< Number > > current_local_solution
All the values I need to compute my contribution to the simulation at hand.
void add_algebraic_ghosting_functor(GhostingFunctor &evaluable_functor, bool to_mesh=true)
Adds a functor which can specify algebraic ghosting requirements for use with distributed vectors...
const DofMap & get_dof_map() const
const std::vector< dof_id_type > & get_send_list() const