◆ build_quad_mesh()
  
  
      
        
          | void OverlappingTestBase::build_quad_mesh  | 
          ( | 
          unsigned int  | 
          n_refinements = 0 | ) | 
           | 
         
       
   | 
  
inlineprotectedinherited   | 
  
 
 
◆ clear()
  
  
      
        
          | void OverlappingTestBase::clear  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlineprotectedinherited   | 
  
 
 
◆ CPPUNIT_TEST() [1/3]
◆ CPPUNIT_TEST() [2/3]
◆ CPPUNIT_TEST() [3/3]
◆ CPPUNIT_TEST_SUITE()
◆ CPPUNIT_TEST_SUITE_END()
      
        
          | OverlappingCouplingGhostingTest::CPPUNIT_TEST_SUITE_END  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ init()
  
  
      
        
          | void OverlappingTestBase::init  | 
          ( | 
          MeshBase &  | 
          mesh | ) | 
           | 
         
       
   | 
  
inlineprotectedinherited   | 
  
 
 
◆ run_sparsity_pattern_test()
  
  
      
        
          | void OverlappingCouplingGhostingTest::run_sparsity_pattern_test  | 
          ( | 
          const unsigned int  | 
          n_refinements,  | 
         
        
           | 
           | 
          bool  | 
          build_coupling_matrix  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineprivate   | 
  
 
Definition at line 658 of file overlapping_coupling_test.C.
  663     std::unique_ptr<CouplingMatrix> coupling_matrix;
 
  664     if (build_coupling_matrix)
 
  673     coupling_functor.set_coupling_matrix(coupling_matrix);
 
  699     std::unique_ptr<PointLocatorBase> point_locator = 
_mesh->sub_point_locator();
 
  710     for (
const auto & elem : 
_mesh->active_local_subdomain_elements_ptr_range(1))
 
  712         subdomain_one_context.pre_fe_reinit(system,elem);
 
  713         subdomain_one_context.elem_fe_reinit();
 
  715         std::vector<dof_id_type> & rows = subdomain_one_context.get_dof_indices();
 
  718         std::fill( subdomain_one_context.get_elem_jacobian().get_values().begin(),
 
  719                    subdomain_one_context.get_elem_jacobian().get_values().end(),
 
  723         system.
matrix->
add_matrix( subdomain_one_context.get_elem_jacobian(), rows );
 
  726     for (
const auto & elem : 
_mesh->active_local_subdomain_elements_ptr_range(2))
 
  729         CPPUNIT_ASSERT_EQUAL(2, (
int)elem->subdomain_id());
 
  731         const std::vector<libMesh::Point> & qpoints = subdomain_two_context.get_element_fe(u_var)->get_xyz();
 
  734         subdomain_two_context.pre_fe_reinit(system,elem);
 
  735         subdomain_two_context.elem_fe_reinit();
 
  739         std::vector<dof_id_type> & rows = subdomain_two_context.get_dof_indices();
 
  741         std::fill( subdomain_two_context.get_elem_jacobian().get_values().begin(),
 
  742                    subdomain_two_context.get_elem_jacobian().get_values().end(),
 
  746         system.
matrix->
add_matrix( subdomain_two_context.get_elem_jacobian(), rows );
 
  748         std::set<subdomain_id_type> allowed_subdomains;
 
  749         allowed_subdomains.insert(1);
 
  755         for ( 
const auto & qp : qpoints )
 
  757             const Elem * overlapping_elem = (*point_locator)( qp, &allowed_subdomains );
 
  758             CPPUNIT_ASSERT(overlapping_elem);
 
  761             subdomain_one_context.pre_fe_reinit(system,overlapping_elem);
 
  762             subdomain_one_context.elem_fe_reinit();
 
  765             std::vector<dof_id_type> & v_indices = subdomain_one_context.get_dof_indices(v_var);
 
  766             std::vector<dof_id_type> columns(rows);
 
  767             columns.insert( columns.end(), v_indices.begin(), v_indices.end() );
 
  770             K21.
resize( rows.size(), columns.size() );
 
  780             K12.
resize(v_indices.size(), rows.size());
 
 
References libMesh::DofMap::add_coupling_functor(), libMesh::SparseMatrix< T >::add_matrix(), libMesh::NumericVector< T >::build(), libMesh::DofMap::clear_sparsity(), libMesh::SparseMatrix< T >::close(), libMesh::ParallelObject::comm(), libMesh::DofMap::compute_sparsity(), libMesh::System::current_local_solution, libMesh::FEMContext::elem_fe_reinit(), libMesh::DiffContext::get_dof_indices(), libMesh::System::get_dof_map(), libMesh::DiffContext::get_elem_jacobian(), libMesh::FEMContext::get_element_fe(), libMesh::ImplicitSystem::get_matrix(), libMesh::System::get_mesh(), libMesh::DofMap::get_send_list(), libMesh::DenseMatrix< T >::get_values(), libMesh::GHOSTED, libMesh::TriangleWrapper::init(), libMesh::SparseMatrix< T >::init(), libMesh::DofMap::is_attached(), libMesh::libmesh_assert(), libMesh::ImplicitSystem::matrix, libMesh::System::n_dofs(), libMesh::System::n_local_dofs(), libMesh::FEMContext::pre_fe_reinit(), libMesh::DofMap::reinit_send_list(), libMesh::DenseMatrix< T >::resize(), libMesh::System::solution, and libMesh::System::variable_number().
 
 
◆ setUp()
  
  
      
        
          | void OverlappingCouplingGhostingTest::setUp  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ setup_coupling_matrix()
  
  
      
        
          | void OverlappingTestBase::setup_coupling_matrix  | 
          ( | 
          std::unique_ptr< CouplingMatrix > &  | 
          coupling | ) | 
           | 
         
       
   | 
  
inlineprotectedinherited   | 
  
 
 
◆ tearDown()
  
  
      
        
          | void OverlappingCouplingGhostingTest::tearDown  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ testSparsityCouplingMatrix()
  
  
      
        
          | void OverlappingCouplingGhostingTest::testSparsityCouplingMatrix  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ testSparsityNullCouplingMatrix()
  
  
      
        
          | void OverlappingCouplingGhostingTest::testSparsityNullCouplingMatrix  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ testSparsityNullCouplingMatrixUnifRef()
  
  
      
        
          | void OverlappingCouplingGhostingTest::testSparsityNullCouplingMatrixUnifRef  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ _es
◆ _mesh
  
  
      
        
          | std::unique_ptr<MeshBase> OverlappingTestBase::_mesh | 
         
       
   | 
  
protectedinherited   | 
  
 
 
The documentation for this class was generated from the following file:
 
virtual void close()=0
Calls the SparseMatrix's internal assembly routines, ensuring that the values are consistent across p...
 
Manages consistently variables, degrees of freedom, and coefficient vectors.
 
unsigned int n_vars() const
 
void compute_sparsity(const MeshBase &)
Computes the sparsity pattern for the matrices corresponding to proc_id and sends that data to Linear...
 
bool is_attached(SparseMatrix< Number > &matrix)
Matrices should not be attached more than once.
 
void run_sparsity_pattern_test(const unsigned int n_refinements, bool build_coupling_matrix)
 
virtual void init(const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type nnz=30, const numeric_index_type noz=10, const numeric_index_type blocksize=1)=0
Initialize SparseMatrix with the specified sizes.
 
const Parallel::Communicator & comm() const
 
std::vector< T > & get_values()
 
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...
 
void resize(const unsigned int new_m, const unsigned int new_n)
Resize the matrix.
 
Implements (adaptive) mesh refinement algorithms for a MeshBase.
 
dof_id_type n_local_dofs() const
 
std::unique_ptr< MeshBase > _mesh
 
const MeshBase & get_mesh() const
 
unsigned int add_variable(const std::string &var, const FEType &type, const std::set< subdomain_id_type > *const active_subdomains=nullptr)
Adds the variable var to the list of variables for this system.
 
std::unique_ptr< NumericVector< Number > > current_local_solution
All the values I need to compute my contribution to the simulation at hand.
 
std::unique_ptr< EquationSystems > _es
 
libMesh::Parallel::Communicator * TestCommWorld
 
A Point defines a location in LIBMESH_DIM dimensional Real space.
 
SparseMatrix< Number > * matrix
The system matrix.
 
The QUAD4 is an element in 2D composed of 4 nodes.
 
const std::vector< dof_id_type > & get_send_list() const
 
virtual Node *& set_node(const unsigned int i)
 
void reinit_send_list(MeshBase &mesh)
Clears the _send_list vector and then rebuilds it.
 
void setup_coupling_matrix(std::unique_ptr< CouplingMatrix > &coupling)
 
void build_quad_mesh(unsigned int n_refinements=0)
 
std::unique_ptr< NumericVector< Number > > solution
Data structure to hold solution values.
 
virtual void add_matrix(const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols)=0
Add the full matrix dm to the SparseMatrix.
 
This class handles the numbering of degrees of freedom on a mesh.
 
void init(MeshBase &mesh)
 
void clear_sparsity()
Clears the sparsity pattern.
 
subdomain_id_type subdomain_id() const
 
This is the base class from which all geometric element types are derived.
 
unsigned short int variable_number(const std::string &var) const
 
const DofMap & get_dof_map() const
 
dof_id_type n_dofs() const
 
Manages consistently variables, degrees of freedom, coefficient vectors, matrices and linear solvers ...
 
const SparseMatrix< Number > & get_matrix(const std::string &mat_name) const
 
void add_coupling_functor(GhostingFunctor &coupling_functor, bool to_mesh=true)
Adds a functor which can specify coupling requirements for creation of sparse matrices.
 
This class provides all data required for a physics package (e.g.