Definition at line 201 of file mixed_dim_mesh_test.C.
◆ build_mesh()
void MixedDimensionMeshTest::build_mesh |
( |
| ) |
|
|
inlineprotectedinherited |
◆ CPPUNIT_TEST() [1/3]
◆ CPPUNIT_TEST() [2/3]
MixedDimensionRefinedMeshTest::CPPUNIT_TEST |
( |
testMesh |
| ) |
|
◆ CPPUNIT_TEST() [3/3]
◆ CPPUNIT_TEST_SUITE() [1/2]
The goal of this test is to ensure that a 2D mesh with 1D elements overlapping on the edge is consistent.
That is, they share the same global node numbers and the same dof numbers for a variable.
◆ CPPUNIT_TEST_SUITE() [2/2]
The goal of this test is the same as the previous, but now we do a uniform refinement and make sure the result mesh is consistent.
i.e. the new node shared between the 1D elements is the same as the node shared on the underlying quads, and so on.
◆ CPPUNIT_TEST_SUITE_END()
MixedDimensionRefinedMeshTest::CPPUNIT_TEST_SUITE_END |
( |
| ) |
|
◆ setUp()
void MixedDimensionRefinedMeshTest::setUp |
( |
| ) |
|
|
inline |
◆ tearDown()
void MixedDimensionMeshTest::tearDown |
( |
| ) |
|
|
inlineinherited |
◆ testDofOrdering()
void MixedDimensionRefinedMeshTest::testDofOrdering |
( |
| ) |
|
|
inline |
Definition at line 299 of file mixed_dim_mesh_test.C.
301 #ifdef LIBMESH_ENABLE_AMR
307 DofMap& dof_map = es.get_system(
"TestDofSystem").get_dof_map();
309 std::vector<dof_id_type> top_quad3_dof_indices, top_quad4_dof_indices;
310 std::vector<dof_id_type> bottom_quad9_dof_indices, bottom_quad10_dof_indices;
311 std::vector<dof_id_type> edge11_dof_indices, edge12_dof_indices;
321 CPPUNIT_ASSERT_EQUAL( edge11_dof_indices[0], top_quad3_dof_indices[0] );
322 CPPUNIT_ASSERT_EQUAL( edge11_dof_indices[1], top_quad3_dof_indices[1] );
325 CPPUNIT_ASSERT_EQUAL( edge12_dof_indices[0], top_quad4_dof_indices[0] );
326 CPPUNIT_ASSERT_EQUAL( edge12_dof_indices[1], top_quad4_dof_indices[1] );
329 CPPUNIT_ASSERT_EQUAL( edge11_dof_indices[0], bottom_quad9_dof_indices[3] );
330 CPPUNIT_ASSERT_EQUAL( edge11_dof_indices[1], bottom_quad9_dof_indices[2] );
333 CPPUNIT_ASSERT_EQUAL( edge12_dof_indices[0], bottom_quad10_dof_indices[3] );
334 CPPUNIT_ASSERT_EQUAL( edge12_dof_indices[1], bottom_quad10_dof_indices[2] );
337 CPPUNIT_ASSERT_EQUAL( edge11_dof_indices[1], edge12_dof_indices[0] );
References libMesh::EquationSystems::add_system(), libMesh::DofMap::dof_indices(), libMesh::FIRST, libMesh::EquationSystems::get_system(), and libMesh::EquationSystems::init().
◆ testMesh()
void MixedDimensionRefinedMeshTest::testMesh |
( |
| ) |
|
|
inline |
◆ testPointLocatorTree()
void MixedDimensionMeshTest::testPointLocatorTree |
( |
| ) |
|
|
inlineinherited |
Definition at line 169 of file mixed_dim_mesh_test.C.
173 Point top_point(0.5, 0.5);
174 const Elem* top_elem = (*locator)(top_point);
175 CPPUNIT_ASSERT(top_elem);
180 Point bottom_point(0.5, -0.5);
181 const Elem* bottom_elem = (*locator)(bottom_point);
182 CPPUNIT_ASSERT(bottom_elem);
189 std::set<subdomain_id_type> subdomain_id; subdomain_id.insert(1);
190 Point interface_point( 0.5, 0.0 );
191 const Elem* interface_elem = (*locator)(interface_point, &subdomain_id);
192 CPPUNIT_ASSERT(interface_elem);
195 CPPUNIT_ASSERT_EQUAL( (
dof_id_type)2, interface_elem->
id() );
References libMesh::DofObject::id(), and libMesh::MeshBase::sub_point_locator().
◆ _mesh
The documentation for this class was generated from the following file:
void dof_indices(const Elem *const elem, std::vector< dof_id_type > &di) const
Fills the vector di with the global degree of freedom indices for the element.
virtual const Node * node_ptr(const dof_id_type i) const override
virtual const Elem & elem_ref(const dof_id_type i) const
virtual Elem * add_elem(Elem *e) override
Add elem e to the end of the element array.
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
Implements (adaptive) mesh refinement algorithms for a MeshBase.
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.
libMesh::Parallel::Communicator * TestCommWorld
A Point defines a location in LIBMESH_DIM dimensional Real space.
virtual dof_id_type n_nodes() const override
The QUAD4 is an element in 2D composed of 4 nodes.
This is the EquationSystems class.
virtual Node *& set_node(const unsigned int i)
const Elem * parent() const
const Elem * interior_parent() const
std::unique_ptr< PointLocatorBase > sub_point_locator() const
virtual dof_id_type n_elem() const override
This class handles the numbering of degrees of freedom on a mesh.
subdomain_id_type subdomain_id() const
virtual const Elem * elem_ptr(const dof_id_type i) const override
The Edge2 is an element in 1D composed of 2 nodes.
This is the base class from which all geometric element types are derived.
dof_id_type node_id(const unsigned int i) const
void prepare_for_use(const bool skip_renumber_nodes_and_elements=false, const bool skip_find_neighbors=false)
Prepare a newly ecreated (or read) mesh for use.
Manages consistently variables, degrees of freedom, coefficient vectors, matrices and linear solvers ...
void set_mesh_dimension(unsigned char d)
Resets the logical dimension of the mesh.
void uniformly_refine(unsigned int n=1)
Uniformly refines the mesh n times.
virtual Node * add_point(const Point &p, const dof_id_type id=DofObject::invalid_id, const processor_id_type proc_id=DofObject::invalid_processor_id) override
functions for adding /deleting nodes elements.
virtual dof_id_type n_active_elem() const override