Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
aa69f30
Make is_prepared more fine-grained
roystgnr Jan 3, 2024
ca50100
Assert our cache is still good
roystgnr Jan 22, 2024
b2b95e0
Make PerfLog name accurate
roystgnr Dec 1, 2025
9b3e41c
More detailed preparation comments
roystgnr Dec 1, 2025
95432e8
Test partially-prepared status validity too
roystgnr Dec 3, 2025
de39e08
Update comments
roystgnr Dec 3, 2025
1814a35
Don't try to use an unprepared mesh in testing
roystgnr Dec 3, 2025
64b5b0f
cache_elem_data() after modifying mesh subdomains
roystgnr Dec 3, 2025
cc28c22
Prepare mesh_copy before smoother solves on it
roystgnr Dec 3, 2025
f29a462
Assert that we only assemble on prepared meshes
roystgnr Dec 3, 2025
a4fa81c
MeshModification shouldn't leave invalid caches
roystgnr Dec 3, 2025
d19bcb2
Assign _children_on_boundary in BoundaryInfo =
roystgnr Dec 4, 2025
97725fe
Clarify prepare_for_use() doxygen
roystgnr Dec 4, 2025
aa107d4
Get interior parent pointers *right* when copying
roystgnr Dec 5, 2025
e39fc75
More testing of preparation() validity in dbg mode
roystgnr Dec 5, 2025
8000dc5
Update bcid sets with new bcids in eigen ex3
roystgnr Dec 5, 2025
8b0d7cb
Update boundary id sets after boundary update
roystgnr Dec 8, 2025
8e20d3b
Remove unnecessary side_id_map computation
roystgnr Dec 9, 2025
2e00e24
Fix side_id_map generation on refined meshes
roystgnr Dec 9, 2025
a8a3184
Added MeshBase::assert_equal_to
roystgnr Dec 10, 2025
a190504
Add MeshTools::libmesh_assert_valid_is_prepared()
roystgnr Dec 10, 2025
e72b98b
Enable !NDEBUG libmesh_assert_X as libmesh_assert
roystgnr Dec 10, 2025
b3d674a
Better libmesh_assert_valid_is_prepared messages
roystgnr Dec 10, 2025
6da6844
Update subdomain sets after subdomains
roystgnr Dec 10, 2025
8c40204
Fix broken error message
roystgnr Dec 10, 2025
223ee3c
Fix unused-parameter warnings
roystgnr Dec 10, 2025
ad56caa
Use libmesh_assert_valid_is_prepared()
roystgnr Dec 10, 2025
d75d3a5
Mark inline alternatives as inline
roystgnr Dec 10, 2025
91559ea
Add clone() to our test GhostingFunctor subclasses
roystgnr Dec 11, 2025
ab86a36
More updates of mesh caches
roystgnr Dec 11, 2025
eaa0c2c
Implement clone() for misc_ex9 ghosting functor
roystgnr Dec 11, 2025
8ed38bb
GhostingFunctor clone is pure virtual
roystgnr Dec 11, 2025
5d237d7
Only enforce preparation with --disable-deprecated
roystgnr Dec 11, 2025
3bb4e11
Mark overriding functions with override
roystgnr Dec 11, 2025
15f48ed
Allow for remote_elem interior_parent() values
roystgnr Dec 12, 2025
bf8fdf3
Fix InfQuad::is_child_on_side()
roystgnr Dec 12, 2025
d130b95
More InfElem test coverage for is_child_on_*
roystgnr Dec 12, 2025
624c8d7
Handle skip_partitioning() in assertions
roystgnr Dec 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions examples/eigenproblems/eigenproblems_ex3/eigenproblems_ex3.C
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ int main (int argc, char ** argv)
if (elem->neighbor_ptr (side) == nullptr)
mesh.get_boundary_info().add_side(elem, side, BOUNDARY_ID);

mesh.get_boundary_info().regenerate_id_sets();

// Print information about the mesh to the screen.
mesh.print_info();

Expand Down
4 changes: 4 additions & 0 deletions examples/fem_system/fem_system_ex3/fem_system_ex3.C
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,10 @@ int main (int argc, char ** argv)
mesh.get_boundary_info().add_edge(elem, e, edge_boundary_id);
}

// We're all done adding to the boundary_info; let's make sure its
// caches know about it.
mesh.get_boundary_info().regenerate_id_sets();

// Create an equation systems object.
EquationSystems equation_systems (mesh);

Expand Down
3 changes: 3 additions & 0 deletions examples/fem_system/fem_system_ex4/fem_system_ex4.C
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,9 @@ int main (int argc, char ** argv)
if (elem->dim() < dim)
elem->subdomain_id() = 1;

// Make sure the mesh knows we added new subdomains.
mesh.cache_elem_data();

mesh_refinement.uniformly_refine(coarserefinements);

// Print information about the mesh to the screen.
Expand Down
3 changes: 3 additions & 0 deletions examples/fem_system/fem_system_ex5/fem_system_ex5.C
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,9 @@ int main (int argc, char ** argv)
}
}

// We're done modifying the BoundaryInfo; get its caches up to date.
mesh.get_boundary_info().regenerate_id_sets();

// Create an equation systems object.
EquationSystems equation_systems (mesh);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,13 @@ class AugmentSparsityOnInterface : public GhostingFunctor
boundary_id_type crack_boundary_lower,
boundary_id_type crack_boundary_upper);


virtual std::unique_ptr<GhostingFunctor> clone () const override
{
return std::make_unique<AugmentSparsityOnInterface>
(_mesh, _crack_boundary_lower, _crack_boundary_upper);
}

/**
* @return a const reference to the lower-to-upper element ID map.
*/
Expand Down
3 changes: 3 additions & 0 deletions examples/subdomains/subdomains_ex1/subdomains_ex1.C
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,9 @@ int main (int argc, char ** argv)
elem->subdomain_id() = 1;
}

// Make sure the mesh knows we added new subdomains.
mesh.cache_elem_data();

// Create an equation systems object.
EquationSystems equation_systems (mesh);

Expand Down
3 changes: 3 additions & 0 deletions examples/subdomains/subdomains_ex2/subdomains_ex2.C
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,9 @@ int main (int argc, char ** argv)
elem->subdomain_id() = 1;
}

// Make sure the mesh knows we added new subdomains.
mesh.cache_elem_data();

// Print information about the mesh to the screen.
mesh.print_info();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,10 @@ int main (int argc, char ** argv)
mesh.get_boundary_info().add_edge(elem, e, EDGE_BOUNDARY_ID);
}

// We're all done adding to the boundary_info; let's make sure its
// caches know about it.
mesh.get_boundary_info().regenerate_id_sets();

// Create an equation systems object.
EquationSystems equation_systems (mesh);

Expand Down
10 changes: 6 additions & 4 deletions include/ghosting/ghosting_functor.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,10 +213,12 @@ class GhostingFunctor : public ReferenceCountedObject<GhostingFunctor>
* different meshes. The operations in GhostingFunctor are mesh dependent.
*/
virtual std::unique_ptr<GhostingFunctor> clone () const
// Let us return nullptr for backward compatibility.
// We will come back to mark this function as pure virtual
// once the API upgrade is done.
{ return nullptr; }
#ifndef LIBMESH_ENABLE_DEPRECATED
= 0;
#else
// Return nullptr for backward compatibility.
{ libmesh_deprecated(); return nullptr; }
#endif

/**
* It should be called after cloning a ghosting functor.
Expand Down
2 changes: 1 addition & 1 deletion include/mesh/distributed_mesh.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class DistributedMesh : public UnstructuredMesh
* Shim to allow operator == (&) to behave like a virtual function
* without having to be one.
*/
virtual bool subclass_locally_equals (const MeshBase & other_mesh) const override;
virtual std::string_view subclass_first_difference_from (const MeshBase & other_mesh_base) const override;

/**
* Virtual copy-constructor, creates a copy of this mesh
Expand Down
Loading