#include <parallel_mesh.h>
Public Types | |
typedef Predicates::multi_predicate | Predicate |
Public Attributes | |
std::unique_ptr< BoundaryInfo > | boundary_info |
Protected Member Functions | |
unsigned int & | set_n_partitions () |
Definition at line 34 of file parallel_mesh.h.
|
inherited |
We need an empty, generic class to act as a predicate for this and derived mesh classes.
Definition at line 931 of file mesh_base.h.
|
inlineexplicit |
Definition at line 38 of file parallel_mesh.h.
|
inline |
Definition at line 42 of file parallel_mesh.h.
|
inline |
Definition at line 47 of file parallel_mesh.h.
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 305 of file distributed_mesh.h.
References libMesh::DistributedMesh::active_elements_begin(), and libMesh::DistributedMesh::active_elements_end().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 306 of file distributed_mesh.h.
References libMesh::DistributedMesh::active_elements_begin(), and libMesh::DistributedMesh::active_elements_end().
|
overridevirtualinherited |
Active, local, and negation forms of the element iterators described above. An "active" element is an element without children (i.e. has not been refined). A "local" element is one whose processor_id() matches the current processor.
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::active_element_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::active_element_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 362 of file distributed_mesh.h.
References libMesh::DistributedMesh::active_local_elements_begin(), and libMesh::DistributedMesh::active_local_elements_end().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 363 of file distributed_mesh.h.
References libMesh::DistributedMesh::active_local_elements_begin(), and libMesh::DistributedMesh::active_local_elements_end().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::active_local_element_ptr_range(), and libMesh::DistributedMesh::n_active_elem().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::active_local_element_ptr_range(), and libMesh::DistributedMesh::n_active_elem().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over only the active nodes in the Mesh.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::n_active_elem().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::n_active_elem().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over active unpartitioned elements in the Mesh.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Add elem e
to the end of the element array. To add an element locally, set e->processor_id() before adding it. To ensure a specific element id, call e->set_id() before adding it; only do this in parallel if you are manually keeping ids consistent.
Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.
Implements libMesh::MeshBase.
Definition at line 385 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_max_elem_id, libMesh::DistributedMesh::_n_elem, libMesh::DistributedMesh::_next_free_local_elem_id, libMesh::DistributedMesh::_next_free_unpartitioned_elem_id, libMesh::MeshBase::_next_unique_id, libMesh::DistributedMesh::_next_unpartitioned_unique_id, libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, std::max(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::DofObject::set_id(), libMesh::DofObject::set_unique_id(), libMesh::DofObject::valid_id(), and libMesh::DofObject::valid_unique_id().
Referenced by libMesh::DistributedMesh::add_extra_ghost_elem().
|
virtualinherited |
Inserts the element and adds it to a list of elements that should not get deleted or have their descendants deleted by delete_remote_elements. This is handy for inserting otherwise off-processor elements that you want to keep track of on this processor.
Definition at line 1407 of file distributed_mesh.C.
References libMesh::DistributedMesh::_extra_ghost_elems, and libMesh::DistributedMesh::add_elem().
|
inlineinherited |
Adds a functor which can specify ghosting requirements for use on distributed meshes. Multiple ghosting functors can be added; any element which is required by any functor will be ghosted.
GhostingFunctor memory must be managed by the code which calls this function; the GhostingFunctor lifetime is expected to extend until either the functor is removed or the Mesh is destructed.
Definition at line 823 of file mesh_base.h.
References libMesh::MeshBase::_ghosting_functors.
Referenced by libMesh::DofMap::add_algebraic_ghosting_functor(), and libMesh::DofMap::add_coupling_functor().
Add Node
n
to the end of the vertex array.
Implements libMesh::MeshBase.
Definition at line 596 of file distributed_mesh.C.
References libMesh::DistributedMesh::_max_node_id, libMesh::DistributedMesh::_n_nodes, libMesh::DistributedMesh::_next_free_local_node_id, libMesh::DistributedMesh::_next_free_unpartitioned_node_id, libMesh::MeshBase::_next_unique_id, libMesh::DistributedMesh::_next_unpartitioned_unique_id, libMesh::DistributedMesh::_nodes, libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, std::max(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::DofObject::set_id(), libMesh::DofObject::set_unique_id(), libMesh::DofObject::valid_id(), and libMesh::DofObject::valid_unique_id().
Referenced by libMesh::DistributedMesh::add_point(), libMesh::DistributedMesh::insert_node(), and libMesh::DistributedMesh::own_node().
|
overridevirtualinherited |
functions for adding /deleting nodes elements.
Implements libMesh::MeshBase.
Definition at line 558 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes, libMesh::DistributedMesh::add_node(), libMesh::Node::build(), libMesh::DofObject::id(), and libMesh::DofObject::processor_id().
|
overridevirtualinherited |
Converts a mesh with higher-order elements into a mesh with linear elements. For example, a mesh consisting of Tet10
will be converted to a mesh with Tet4
etc.
Prepare to identify (and then delete) a bunch of no-longer-used nodes.
If the second order element had any boundary conditions they should be transferred to the first-order element. The old boundary conditions will be removed from the BoundaryInfo data structure by insert_elem.
Implements libMesh::MeshBase.
Definition at line 832 of file unstructured_mesh.C.
References libMesh::MeshBase::_is_prepared, libMesh::Elem::add_child(), libMesh::Elem::build(), libMesh::Elem::child_ptr(), libMesh::BoundaryInfo::copy_boundary_ids(), libMesh::MeshBase::delete_node(), libMesh::MeshBase::element_ptr_range(), libMesh::Elem::first_order_equivalent_type(), libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::MeshBase::insert_elem(), libMesh::MeshBase::max_node_id(), libMesh::Elem::n_vertices(), libMesh::MeshBase::node(), libMesh::Elem::node_id(), libMesh::MeshBase::node_ptr_range(), libMesh::Elem::parent(), libMesh::MeshBase::prepare_for_use(), libMesh::DofObject::processor_id(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::remote_elem, libMesh::MeshBase::renumber_nodes_and_elements(), libMesh::Elem::replace_child(), libMesh::DofObject::set_id(), libMesh::Elem::set_neighbor(), libMesh::Elem::set_node(), libMesh::Partitioner::set_node_processor_ids(), libMesh::Elem::set_p_level(), libMesh::Elem::set_p_refinement_flag(), libMesh::Elem::set_parent(), libMesh::Elem::set_refinement_flag(), libMesh::DofObject::set_unique_id(), and libMesh::Elem::subdomain_id().
|
overridevirtualinherited |
Converts a (conforming, non-refined) mesh with linear elements into a mesh with second-order elements. For example, a mesh consisting of Tet4
will be converted to a mesh with Tet10
etc.
Hex8
there exist two higher order equivalents, Hex20
and Hex27
. When full_ordered
is true
(default), then Hex27
is built. Otherwise, Hex20
is built. The same holds obviously for Quad4
, Prism6
, etc. Loop over the low-ordered elements in the elements vector. First make sure they _are indeed low-order, and then replace them with an equivalent second-order element. Don't forget to delete the low-order element, or else it will leak!
If the linear element had any boundary conditions they should be transferred to the second-order element. The old boundary conditions will be removed from the BoundaryInfo data structure by insert_elem.
Also, prepare_for_use() will reconstruct most of our neighbor links, but if we have any remote_elem links in a distributed mesh, they need to be preserved. We do that in the same loop here.
Implements libMesh::MeshBase.
Definition at line 969 of file unstructured_mesh.C.
References libMesh::MeshBase::_is_prepared, libMesh::MeshBase::add_point(), libMesh::Elem::build(), libMesh::ParallelObject::comm(), libMesh::BoundaryInfo::copy_boundary_ids(), libMesh::Elem::default_order(), libMesh::MeshBase::elements_begin(), libMesh::MeshBase::elements_end(), libMesh::FIRST, libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::MeshBase::insert_elem(), libMesh::DofObject::invalid_id, libMesh::MeshBase::is_replicated(), libMesh::MeshBase::is_serial(), libMesh::Elem::level(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::Parallel::Communicator::max(), libMesh::MeshBase::mesh_dimension(), std::min(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_nodes(), libMesh::Elem::n_vertices(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::node_ptr(), libMesh::MeshBase::own_node(), libMesh::MeshBase::point(), libMesh::MeshBase::prepare_for_use(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::Real, libMesh::remote_elem, libMesh::MeshBase::renumber_nodes_and_elements(), libMesh::MeshBase::reserve_nodes(), libMesh::Elem::second_order_equivalent_type(), libMesh::Elem::side_index_range(), libMesh::Elem::subdomain_id(), libMesh::Elem::type(), and libMesh::DofObject::unique_id().
|
overridevirtualinherited |
Gathers all elements and nodes of the mesh onto every processor
Reimplemented from libMesh::MeshBase.
Definition at line 1418 of file distributed_mesh.C.
References libMesh::DistributedMesh::_is_serial, libMesh::DistributedMesh::_is_serial_on_proc_0, libMesh::MeshCommunication::allgather(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::DistributedMesh::max_elem_id(), libMesh::DistributedMesh::max_node_id(), libMesh::DistributedMesh::n_elem(), libMesh::DistributedMesh::n_nodes(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::parallel_n_elem(), and libMesh::DistributedMesh::parallel_n_nodes().
|
inlineinherited |
If false is passed in then this mesh will no longer have remote elements deleted when being prepared for use; i.e. even a DistributedMesh will remain (if it is already) serialized. This may adversely affect performance and memory use.
Definition at line 791 of file mesh_base.h.
References libMesh::MeshBase::_allow_remote_element_removal.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements().
|
inlineinherited |
Definition at line 792 of file mesh_base.h.
References libMesh::MeshBase::_allow_remote_element_removal.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements().
|
inlineinherited |
If false is passed in then this mesh will no longer be renumbered when being prepared for use. This may slightly adversely affect performance during subsequent element access, particularly when using a distributed mesh.
Important! When allow_renumbering(false) is set, ReplicatedMesh::n_elem() and ReplicatedMesh::n_nodes() will return wrong values whenever adaptive refinement is followed by adaptive coarsening. (Uniform refinement followed by uniform coarsening is OK.) This is due to the fact that n_elem() and n_nodes() are currently O(1) functions that just return the size of the respective underlying vectors, and this size is wrong when the numbering includes "gaps" from nodes and elements that have been deleted. We plan to implement a caching mechanism in the near future that will fix this incorrect behavior.
Definition at line 782 of file mesh_base.h.
References libMesh::MeshBase::_skip_renumber_nodes_and_elements.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::NameBasedIO::read(), and libMesh::GMVIO::read().
|
inlineinherited |
Definition at line 783 of file mesh_base.h.
References libMesh::MeshBase::_skip_renumber_nodes_and_elements.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshBase::prepare_for_use(), and libMesh::UnstructuredMesh::read().
|
overridevirtualinherited |
Iterate over elements for which elem->ancestor() is true.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over nodes for which BoundaryInfo::has_boundary_id(node, bndry_id) is true.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over nodes for which BoundaryInfo::n_boundary_ids(node) > 0.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inherited |
Search the mesh and cache the different dimensions of the elements present in the mesh. This is done in prepare_for_use(), but can be done manually by other classes after major mesh modifications.
Definition at line 574 of file mesh_base.C.
References libMesh::MeshBase::_elem_dims, libMesh::MeshBase::_spatial_dimension, libMesh::MeshBase::active_element_ptr_range(), libMesh::ParallelObject::comm(), libMesh::Elem::dim(), libMesh::MeshBase::elem(), libMesh::MeshBase::mesh_dimension(), libMesh::MeshBase::node(), libMesh::MeshBase::node_ptr_range(), and libMesh::Parallel::Communicator::set_union().
Referenced by libMesh::MeshBase::prepare_for_use().
|
overridevirtualinherited |
Clear all internal data.
Reimplemented from libMesh::MeshBase.
Definition at line 764 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_is_serial, libMesh::DistributedMesh::_is_serial_on_proc_0, libMesh::DistributedMesh::_max_elem_id, libMesh::DistributedMesh::_max_node_id, libMesh::DistributedMesh::_n_elem, libMesh::DistributedMesh::_n_nodes, libMesh::DistributedMesh::_next_free_local_elem_id, libMesh::DistributedMesh::_next_free_local_node_id, libMesh::DistributedMesh::_next_free_unpartitioned_elem_id, libMesh::DistributedMesh::_next_free_unpartitioned_node_id, libMesh::DistributedMesh::_nodes, libMesh::MeshBase::clear(), libMesh::MeshBase::elem(), libMesh::ParallelObject::n_processors(), libMesh::MeshBase::node(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::BoundaryMesh::~BoundaryMesh().
|
inlinevirtualinherited |
Clears extra ghost elements.
Definition at line 216 of file distributed_mesh.h.
References libMesh::DistributedMesh::_extra_ghost_elems.
|
inherited |
Releases the current PointLocator
object.
Definition at line 517 of file mesh_base.C.
References libMesh::MeshBase::_point_locator.
Referenced by libMesh::MeshBase::clear(), libMesh::UnstructuredMesh::contract(), libMesh::MeshCommunication::delete_remote_elements(), and libMesh::MeshBase::prepare_for_use().
|
inlineoverridevirtual |
Virtual copy-constructor, creates a copy of this mesh
Reimplemented from libMesh::DistributedMesh.
Definition at line 44 of file parallel_mesh.h.
|
inlineinherited |
Parallel::Communicator
object used by this mesh. Definition at line 89 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_jacobian(), libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_tao_equality_constraints(), libMesh::__libmesh_tao_equality_constraints_jacobian(), libMesh::__libmesh_tao_gradient(), libMesh::__libmesh_tao_hessian(), libMesh::__libmesh_tao_inequality_constraints(), libMesh::__libmesh_tao_inequality_constraints_jacobian(), libMesh::__libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult_add(), libMesh::EquationSystems::_read_impl(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::_smooth_flags(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::ImplicitSystem::add_matrix(), libMesh::System::add_vector(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assemble_qoi(), libMesh::MeshCommunication::assign_global_indices(), libMesh::DofMap::attach_matrix(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::MeshBase::cache_elem_dims(), libMesh::System::calculate_norm(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::PetscDMWrapper::check_section_n_dofs(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::create_bounding_box(), libMesh::MeshTools::create_nodal_bounding_box(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), DMlibMeshSetSystem_libMesh(), DMVariableBounds_libMesh(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::EpetraVector< T >::EpetraVector(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::DofMap::get_info(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::EigenSystem::init_data(), libMesh::EigenSystem::init_matrices(), libMesh::OptimizationSystem::initialize_equality_constraints_storage(), libMesh::OptimizationSystem::initialize_inequality_constraints_storage(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::libmesh_petsc_snes_fd_residual(), libMesh::libmesh_petsc_snes_jacobian(), libMesh::libmesh_petsc_snes_mffd_residual(), libMesh::libmesh_petsc_snes_postcheck(), libMesh::libmesh_petsc_snes_residual(), libMesh::libmesh_petsc_snes_residual_helper(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::limit_overrefined_boundary(), libMesh::MeshRefinement::limit_underrefined_boundary(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_flags_parallel_consistent(), libMesh::MeshCommunication::make_new_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_new_nodes_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshCommunication::make_p_levels_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::FEMSystem::mesh_position_set(), libMesh::DistributedMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::MeshTools::n_p_levels(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::MeshTools::paranoid_n_levels(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::CheckpointIO::select_split_config(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::split_mesh(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::MeshRefinement::test_level_one(), libMesh::MeshRefinement::test_unflagged(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
overridevirtualinherited |
Delete subactive (i.e. children of coarsened) elements. This removes all elements descended from currently active elements in the mesh.
Implements libMesh::MeshBase.
Definition at line 769 of file unstructured_mesh.C.
References libMesh::Elem::active(), libMesh::Elem::ancestor(), libMesh::as_range(), libMesh::MeshBase::clear_point_locator(), libMesh::Elem::contract(), libMesh::MeshBase::delete_elem(), libMesh::MeshBase::elem(), libMesh::MeshBase::element_ptr_range(), libMesh::MeshBase::ghosting_functors_begin(), libMesh::MeshBase::ghosting_functors_end(), libMesh::Elem::parent(), libMesh::MeshBase::renumber_nodes_and_elements(), and libMesh::Elem::subactive().
|
virtualinherited |
Deep copy of another unstructured mesh class (used by subclass copy constructors)
Definition at line 61 of file unstructured_mesh.C.
References libMesh::MeshBase::_is_prepared, libMesh::MeshBase::_n_parts, libMesh::Elem::add_child(), libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_point(), libMesh::MeshBase::allow_remote_element_removal(), libMesh::MeshBase::allow_renumbering(), libMesh::Elem::build(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::element_ptr_range(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_nodes(), libMesh::Elem::neighbor_ptr(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::node_ptr_range(), libMesh::Elem::parent(), libMesh::MeshBase::prepare_for_use(), libMesh::DofObject::processor_id(), libMesh::remote_elem, libMesh::MeshBase::reserve_elem(), libMesh::MeshBase::reserve_nodes(), libMesh::Elem::set_neighbor(), libMesh::DofObject::set_unique_id(), libMesh::MeshBase::skip_partitioning(), and libMesh::Elem::subdomain_id().
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::ReplicatedMesh(), and libMesh::ReplicatedMesh::stitching_helper().
|
inherited |
Generates a new mesh containing all the elements which are assigned to processor pid
. This mesh is written to the pid_mesh reference which you must create and pass to the function.
Definition at line 655 of file unstructured_mesh.C.
References libMesh::MeshBase::active_pid_elements_begin(), libMesh::MeshBase::active_pid_elements_end(), libMesh::UnstructuredMesh::create_submesh(), libMesh::ParallelObject::n_processors(), and libMesh::out.
|
inherited |
Constructs a mesh called "new_mesh" from the current mesh by iterating over the elements between it and it_end and adding them to the new mesh.
Definition at line 690 of file unstructured_mesh.C.
References libMesh::MeshBase::add_elem(), libMesh::MeshBase::add_point(), libMesh::BoundaryInfo::add_side(), libMesh::as_range(), libMesh::BoundaryInfo::boundary_ids(), libMesh::Elem::build(), libMesh::MeshBase::clear(), libMesh::MeshBase::delete_remote_elements(), libMesh::MeshBase::get_boundary_info(), libMesh::MeshBase::is_serial(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::node_ptr(), libMesh::MeshBase::prepare_for_use(), libMesh::DofObject::processor_id(), libMesh::MeshBase::query_node_ptr(), libMesh::DofObject::set_id(), libMesh::Elem::set_node(), libMesh::DofObject::set_unique_id(), and libMesh::Elem::subdomain_id().
Referenced by libMesh::UnstructuredMesh::create_pid_mesh().
|
inlineinherited |
Default ghosting functor
Definition at line 847 of file mesh_base.h.
References libMesh::MeshBase::_default_ghosting.
|
overridevirtualinherited |
Removes element e
from the mesh. This method must be implemented in derived classes in such a way that it does not invalidate element iterators. Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.
Implements libMesh::MeshBase.
Definition at line 515 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_n_elem, libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and libMesh::BoundaryInfo::remove().
Referenced by libMesh::DistributedMesh::insert_elem().
|
overridevirtualinherited |
Removes the Node n from the mesh.
Implements libMesh::MeshBase.
Definition at line 700 of file distributed_mesh.C.
References libMesh::DistributedMesh::_n_nodes, libMesh::DistributedMesh::_nodes, libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and libMesh::BoundaryInfo::remove().
|
overridevirtualinherited |
Deletes all nonlocal elements of the mesh except for "ghosts" which touch a local element, and deletes all nodes which are not part of a local or ghost element
Reimplemented from libMesh::MeshBase.
Definition at line 1338 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_extra_ghost_elems, libMesh::DistributedMesh::_is_serial, libMesh::DistributedMesh::_is_serial_on_proc_0, libMesh::DistributedMesh::_nodes, libMesh::MeshCommunication::delete_remote_elements(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::MeshTools::libmesh_assert_valid_refinement_tree(), libMesh::DistributedMesh::max_elem_id(), libMesh::DistributedMesh::max_node_id(), libMesh::DistributedMesh::n_elem(), libMesh::DistributedMesh::n_nodes(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
inherited |
Search the mesh for elements that have a neighboring element of dim+1 and set that element as the interior parent
Definition at line 633 of file mesh_base.C.
References libMesh::MeshBase::active_element_ptr_range(), libMesh::Elem::dim(), libMesh::MeshBase::elem(), libMesh::MeshBase::elem_dimensions(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::elem_ref(), libMesh::MeshBase::element_ptr_range(), libMesh::DofObject::id(), libMesh::MeshBase::max_elem_id(), libMesh::Elem::n_vertices(), and libMesh::Elem::node_id().
Referenced by libMesh::MeshBase::prepare_for_use().
|
inlinevirtualinherited |
Definition at line 537 of file mesh_base.h.
References libMesh::MeshBase::elem_ptr().
Referenced by libMesh::MeshBase::cache_elem_dims(), libMesh::ReplicatedMesh::clear(), libMesh::DistributedMesh::clear(), libMesh::UnstructuredMesh::contract(), libMesh::MeshBase::detect_interior_parents(), libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshBase::n_active_sub_elem(), libMesh::MeshBase::n_sub_elem(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::MeshBase::subdomain_ids().
|
inlinevirtualinherited |
Definition at line 552 of file mesh_base.h.
References libMesh::MeshBase::elem_ptr().
|
inlineinherited |
Definition at line 220 of file mesh_base.h.
References libMesh::MeshBase::_elem_dims.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::System::calculate_norm(), libMesh::MeshBase::detect_interior_parents(), and libMesh::TreeNode< N >::insert().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 331 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements.
Referenced by libMesh::DistributedMesh::DistributedMesh().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 342 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements.
|
inlinevirtualinherited |
Definition at line 504 of file mesh_base.h.
References libMesh::MeshBase::elem_ptr().
Referenced by libMesh::SyncRefinementFlags::act_on_data(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::AbaqusIO::assign_subdomain_ids(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::MeshBase::detect_interior_parents(), libMesh::SyncRefinementFlags::gather_data(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_remote_elem(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::FroIO::write(), libMesh::Nemesis_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::GmshIO::write_mesh(), and libMesh::ExodusII_IO_Helper::write_sidesets().
|
inlinevirtualinherited |
Definition at line 513 of file mesh_base.h.
References libMesh::MeshBase::elem_ptr().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 298 of file distributed_mesh.h.
References libMesh::DistributedMesh::elements_begin(), and libMesh::DistributedMesh::elements_end().
Referenced by libMesh::DistributedMesh::renumber_nodes_and_elements().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 299 of file distributed_mesh.h.
References libMesh::DistributedMesh::elements_begin(), and libMesh::DistributedMesh::elements_end().
|
overridevirtualinherited |
Elem iterator accessor functions.
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::element_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::element_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over elements in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over nodes in the Mesh where the solution (as distributed by the given DofMap) can be evaluated, for the given variable var_num, or for all variables by default.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over elements which are on or have a neighbor on the current processor.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Other functions from MeshBase requiring re-definition.
Here we look at all of the child elements which don't already have valid neighbors.
If a child element has a nullptr neighbor it is either because it is on the boundary or because its neighbor is at a different level. In the latter case we must get the neighbor from the parent.
If a child element has a remote_elem neighbor on a boundary it shares with its parent, that info may have become out-dated through coarsening of the neighbor's parent. In this case, if the parent's neighbor is active then the child should share it.
Furthermore, that neighbor better be active, otherwise we missed a child somewhere.
We also need to look through children ordered by increasing refinement level in order to add new interior_parent() links in boundary elements which have just been generated by refinement, and fix links in boundary elements whose previous interior_parent() has just been coarsened away.
Implements libMesh::MeshBase.
Definition at line 240 of file unstructured_mesh.C.
References libMesh::Elem::active(), libMesh::Elem::ancestor(), libMesh::as_range(), libMesh::Elem::centroid(), libMesh::Elem::child_ptr(), libMesh::Elem::child_ref_range(), libMesh::MeshBase::element_ptr_range(), libMesh::err, libMesh::Elem::has_children(), libMesh::Elem::hmin(), libMesh::DofObject::id(), libMesh::Elem::interior_parent(), libMesh::Elem::is_ancestor_of(), libMesh::Elem::is_child_on_side(), libMesh::Elem::level(), libMesh::MeshBase::level_elements_begin(), libMesh::MeshBase::level_elements_end(), libMesh::MeshTools::libmesh_assert_valid_amr_interior_parents(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::Elem::n_children(), libMesh::MeshTools::n_levels(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::neighbor_ptr_range(), libMesh::Elem::parent(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::Real, libMesh::remote_elem, libMesh::Elem::set_interior_parent(), libMesh::Elem::set_neighbor(), libMesh::Elem::side_ptr(), libMesh::Elem::subactive(), libMesh::TOLERANCE, libMesh::Elem::which_child_am_i(), and libMesh::NameBasedIO::write().
Referenced by libMesh::TriangleWrapper::copy_tri_to_mesh(), and libMesh::DistributedMesh::redistribute().
|
overridevirtualinherited |
There is no reason for a user to ever call this function.
This function restores a previously broken element/node numbering such that mesh.node_ref(n)
.id() == n.
Implements libMesh::MeshBase.
Definition at line 1297 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, and libMesh::DistributedMesh::_nodes.
|
overridevirtualinherited |
Iterate over all elements with a specified refinement flag.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over all elements with a specified refinement flag on a specified processor.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Gathers all elements and nodes of the mesh onto processor zero
Reimplemented from libMesh::MeshBase.
Definition at line 1449 of file distributed_mesh.C.
References libMesh::DistributedMesh::_is_serial_on_proc_0, and libMesh::MeshCommunication::gather().
|
inlineinherited |
The information about boundary ids on the mesh
Definition at line 131 of file mesh_base.h.
References libMesh::MeshBase::boundary_info.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::Modification::change_boundary_id(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshTools::Modification::flatten(), libMesh::UNVIO::groups_in(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::Parallel::Packing< T >::pack(), libMesh::Parallel::Packing< T >::packable_size(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::Nemesis_IO::prepare_to_write_nodal_data(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_bcs(), libMesh::CheckpointIO::read_header(), libMesh::GmshIO::read_mesh(), libMesh::CheckpointIO::read_nodesets(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::Packing< T >::unpack(), libMesh::FroIO::write(), libMesh::Nemesis_IO::write(), libMesh::ExodusII_IO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::XdrIO::write_serialized_nodesets(), and libMesh::ExodusII_IO_Helper::write_sidesets().
|
inlineinherited |
Writable information about boundary ids on the mesh
Definition at line 136 of file mesh_base.h.
References libMesh::MeshBase::boundary_info.
|
inherited |
Get the current value of _count_lower_dim_elems_in_point_locator.
Definition at line 531 of file mesh_base.C.
References libMesh::MeshBase::_count_lower_dim_elems_in_point_locator.
Referenced by libMesh::TreeNode< N >::insert().
|
inherited |
Elem::invalid_subdomain_id
otherwise. Definition at line 558 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name, libMesh::Elem::invalid_subdomain_id, and libMesh::Quality::name().
|
inherited |
Definition at line 378 of file mesh_base.C.
References libMesh::MeshBase::_elem_dims, libMesh::MeshBase::n_active_elem(), libMesh::MeshBase::n_elem(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::MeshBase::n_nodes(), libMesh::MeshBase::n_partitions(), libMesh::ParallelObject::n_processors(), libMesh::MeshBase::n_subdomains(), libMesh::n_threads(), libMesh::ParallelObject::processor_id(), and libMesh::MeshBase::spatial_dimension().
Referenced by libMesh::MeshBase::print_info().
|
inlineinherited |
Definition at line 1337 of file mesh_base.h.
References libMesh::MeshBase::_block_id_to_name.
Referenced by libMesh::XdrIO::write_serialized_subdomain_names(), and libMesh::CheckpointIO::write_subdomain_names().
|
overridevirtualinherited |
Iterate over "ghost" elements in the Mesh. A ghost element is one which is not local, but is semilocal.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inlineinherited |
Beginning of range of ghosting functors
Definition at line 835 of file mesh_base.h.
References libMesh::MeshBase::_ghosting_functors.
Referenced by libMesh::UnstructuredMesh::contract(), libMesh::MeshCommunication::delete_remote_elements(), and libMesh::query_ghosting_functors().
|
inlineinherited |
End of range of ghosting functors
Definition at line 841 of file mesh_base.h.
References libMesh::MeshBase::_ghosting_functors.
Referenced by libMesh::UnstructuredMesh::contract(), libMesh::MeshCommunication::delete_remote_elements(), and libMesh::query_ghosting_functors().
Insert elem e
to the element array, preserving its id and replacing/deleting any existing element with the same id.
Users should call MeshBase::prepare_for_use() after elements are added to and/or deleted from the mesh.
Implements libMesh::MeshBase.
Definition at line 481 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_n_elem, libMesh::MeshBase::_next_unique_id, libMesh::DistributedMesh::_next_unpartitioned_unique_id, libMesh::DistributedMesh::delete_elem(), libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), libMesh::DofObject::set_unique_id(), and libMesh::DofObject::valid_unique_id().
Calls add_node().
Implements libMesh::MeshBase.
Definition at line 693 of file distributed_mesh.C.
References libMesh::DistributedMesh::add_node().
|
inlineinherited |
true
if the mesh has been prepared via a call to prepare_for_use
, false
otherwise. Definition at line 147 of file mesh_base.h.
References libMesh::MeshBase::_is_prepared.
Referenced by libMesh::DofMap::create_dof_constraints().
|
inlineoverridevirtualinherited |
true
if new elements and nodes can and should be created in synchronization on all processors, false
otherwise Reimplemented from libMesh::MeshBase.
Definition at line 141 of file distributed_mesh.h.
|
inlineoverridevirtualinherited |
true
if all elements and nodes of the mesh exist on the current processor, false
otherwise Reimplemented from libMesh::MeshBase.
Definition at line 119 of file distributed_mesh.h.
References libMesh::DistributedMesh::_is_serial.
Referenced by libMesh::DistributedMesh::redistribute().
|
inlineoverridevirtualinherited |
true
if all elements and nodes of the mesh exist on the processor 0, false
otherwise Reimplemented from libMesh::MeshBase.
Definition at line 126 of file distributed_mesh.h.
References libMesh::DistributedMesh::_is_serial, and libMesh::DistributedMesh::_is_serial_on_proc_0.
|
overridevirtualinherited |
Iterate over elements of a given level.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inherited |
Verify refinement_flag and p_refinement_flag consistency of our elements containers. Calls libmesh_assert() on each possible failure.
Definition at line 931 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::Elem::active(), libMesh::ParallelObject::comm(), libMesh::invalid_uint, libMesh::Elem::p_refinement_flag(), libMesh::DistributedMesh::parallel_max_elem_id(), and libMesh::Elem::refinement_flag().
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
overridevirtualinherited |
Verify id and processor_id consistency of our elements and nodes containers. Calls libmesh_assert() on each possible failure.
Reimplemented from libMesh::MeshBase.
Definition at line 900 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_nodes, and libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids().
Referenced by libMesh::BoundaryInfo::add_elements(), libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
inherited |
Verify id, processor_id, and if applicable unique_id consistency of a parallel objects container. Calls libmesh_assert() on each possible failure in that container.
Definition at line 844 of file distributed_mesh.C.
References libMesh::ParallelObject::comm(), libMesh::DofObject::invalid_id, libMesh::DofObject::invalid_processor_id, std::max(), libMesh::Parallel::Communicator::min(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids().
|
inherited |
Verify p_level consistency of our elements containers. Calls libmesh_assert() on each possible failure.
Definition at line 908 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::Elem::active(), libMesh::ParallelObject::comm(), libMesh::invalid_uint, libMesh::Elem::p_level(), and libMesh::DistributedMesh::parallel_max_elem_id().
Referenced by libMesh::DistributedMesh::renumber_nodes_and_elements().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 491 of file distributed_mesh.h.
References libMesh::DistributedMesh::local_nodes_begin(), and libMesh::DistributedMesh::local_nodes_end().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 492 of file distributed_mesh.h.
References libMesh::DistributedMesh::local_nodes_begin(), and libMesh::DistributedMesh::local_nodes_end().
|
overridevirtualinherited |
Iterate over local nodes (nodes whose processor_id() matches the current processor).
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::local_node_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::local_node_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 224 of file distributed_mesh.h.
References libMesh::DistributedMesh::_max_elem_id.
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 220 of file distributed_mesh.h.
References libMesh::DistributedMesh::_max_node_id.
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
inherited |
Definition at line 126 of file mesh_base.C.
References libMesh::MeshBase::_elem_dims.
Referenced by libMesh::HPCoarsenTest::add_projection(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::EquationSystems::build_variable_names(), libMesh::MeshBase::cache_elem_dims(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::Modification::distort(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::LaplaceMeshSmoother::init(), libMesh::PointLocatorTree::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::read(), libMesh::VTKIO::read(), libMesh::System::read_header(), libMesh::UCDIO::read_implementation(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::MeshTools::Modification::smooth(), libMesh::PostscriptIO::write(), libMesh::CheckpointIO::write(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::UCDIO::write_implementation(), libMesh::UCDIO::write_nodal_data(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::GnuPlotIO::write_solution(), and libMesh::EnsightIO::write_vector_ascii().
|
overridevirtualinherited |
Implemented in terms of active_element_iterators.
Implements libMesh::MeshBase.
Definition at line 1317 of file distributed_mesh.C.
References libMesh::DistributedMesh::active_local_elements_begin(), libMesh::DistributedMesh::active_local_elements_end(), libMesh::DistributedMesh::active_pid_elements_begin(), libMesh::DistributedMesh::active_pid_elements_end(), libMesh::ParallelObject::comm(), libMesh::DofObject::invalid_processor_id, and libMesh::Parallel::Communicator::sum().
|
inherited |
proc
. Definition at line 345 of file mesh_base.C.
References libMesh::MeshBase::active_pid_elements_begin(), libMesh::MeshBase::active_pid_elements_end(), and libMesh::ParallelObject::n_processors().
Referenced by libMesh::MeshBase::n_active_local_elem().
|
inlineinherited |
Definition at line 403 of file mesh_base.h.
References libMesh::MeshBase::n_active_elem_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::VTKIO::cells_to_vtk().
|
inherited |
Same as n_sub_elem()
, but only counts active elements.
Definition at line 366 of file mesh_base.C.
References libMesh::MeshBase::active_element_ptr_range(), libMesh::MeshBase::elem(), and libMesh::Elem::n_sub_elem().
Referenced by libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_old_impl(), and libMesh::TecplotIO::write_binary().
|
inlineoverridevirtualinherited |
The standard n_elem() function may return a cached value on distributed meshes, and so can be called by any processor at any time.
Implements libMesh::MeshBase.
Definition at line 222 of file distributed_mesh.h.
References libMesh::DistributedMesh::_n_elem.
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
inherited |
proc
. Definition at line 332 of file mesh_base.C.
References libMesh::DofObject::invalid_processor_id, libMesh::ParallelObject::n_processors(), libMesh::MeshBase::pid_elements_begin(), and libMesh::MeshBase::pid_elements_end().
Referenced by libMesh::MeshBase::n_local_elem(), and libMesh::MeshBase::n_unpartitioned_elem().
|
inlineinherited |
Definition at line 386 of file mesh_base.h.
References libMesh::MeshBase::n_elem_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::MeshBase::get_info(), and libMesh::DistributedMesh::parallel_n_elem().
|
inlineinherited |
Definition at line 286 of file mesh_base.h.
References libMesh::MeshBase::n_nodes_on_proc(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::MeshBase::get_info(), libMesh::VTKIO::nodes_to_vtk(), and libMesh::DistributedMesh::parallel_n_nodes().
|
inlineoverridevirtualinherited |
This function and others must be defined in derived classes since the MeshBase class has no specific storage for nodes or elements. The standard n_nodes()
function may return a cached value on distributed meshes, and so can be called by any processor at any time.
Implements libMesh::MeshBase.
Definition at line 219 of file distributed_mesh.h.
References libMesh::DistributedMesh::_n_nodes.
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
inherited |
proc
. Definition at line 319 of file mesh_base.C.
References libMesh::DofObject::invalid_processor_id, libMesh::ParallelObject::n_processors(), libMesh::MeshBase::pid_nodes_begin(), and libMesh::MeshBase::pid_nodes_end().
Referenced by libMesh::MeshBase::n_local_nodes(), and libMesh::MeshBase::n_unpartitioned_nodes().
|
inlineinherited |
Definition at line 875 of file mesh_base.h.
References libMesh::MeshBase::_n_parts.
Referenced by libMesh::MeshBase::get_info(), libMesh::BoundaryInfo::sync(), libMesh::NameBasedIO::write(), libMesh::GMVIO::write_ascii_new_impl(), and libMesh::GMVIO::write_ascii_old_impl().
|
inlineinherited |
Definition at line 95 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::size().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assembly(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshBase::get_info(), libMesh::SystemSubsetBySubdomain::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::DistributedMesh::insert_elem(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::MeshBase::partition(), libMesh::PetscLinearSolver< T >::PetscLinearSolver(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::CheckpointIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::XdrIO::read_header(), libMesh::CheckpointIO::read_nodes(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
|
inherited |
For example, a 9-noded quadrilateral will be broken into 4 linear sub-elements for plotting purposes. Thus, for a mesh of 2 QUAD9
elements n_tecplot_elem()
will return 8. Implemented in terms of element_iterators.
Definition at line 354 of file mesh_base.C.
References libMesh::MeshBase::elem(), libMesh::MeshBase::element_ptr_range(), and libMesh::Elem::n_sub_elem().
|
inherited |
Definition at line 304 of file mesh_base.C.
References libMesh::MeshBase::subdomain_ids().
Referenced by libMesh::MeshBase::get_info(), libMesh::XdrIO::write(), and libMesh::NameBasedIO::write_nodal_data().
|
inlineinherited |
Definition at line 392 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and libMesh::MeshBase::n_elem_on_proc().
Referenced by libMesh::DistributedMesh::parallel_n_elem(), and libMesh::MeshBase::partition().
|
inlineinherited |
Definition at line 292 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and libMesh::MeshBase::n_nodes_on_proc().
Referenced by libMesh::DistributedMesh::parallel_n_nodes().
|
inlineinherited |
Definition at line 305 of file mesh_base.h.
References libMesh::MeshBase::_next_unique_id.
|
inlinevirtualinherited |
Definition at line 454 of file mesh_base.h.
References libMesh::MeshBase::node_ptr().
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::MeshBase::cache_elem_dims(), libMesh::ReplicatedMesh::clear(), libMesh::DistributedMesh::clear(), and libMesh::ReplicatedMesh::renumber_nodes_and_elements().
|
inlinevirtualinherited |
Definition at line 468 of file mesh_base.h.
References libMesh::MeshBase::node_ptr().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 277 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 288 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes.
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 479 of file distributed_mesh.h.
References libMesh::DistributedMesh::nodes_begin(), and libMesh::DistributedMesh::nodes_end().
|
inlineoverridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 480 of file distributed_mesh.h.
References libMesh::DistributedMesh::nodes_begin(), and libMesh::DistributedMesh::nodes_end().
|
inlinevirtualinherited |
Definition at line 434 of file mesh_base.h.
References libMesh::MeshBase::node_ptr().
Referenced by libMesh::SyncNodalPositions::act_on_data(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ReplicatedMesh::point(), libMesh::DistributedMesh::point(), libMesh::XdrIO::read_serialized_nodes(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::ReplicatedMesh::stitching_helper(), and libMesh::GmshIO::write_mesh().
|
inlinevirtualinherited |
Definition at line 442 of file mesh_base.h.
References libMesh::MeshBase::node_ptr().
|
overridevirtualinherited |
Node iterator accessor functions.
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::node_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Referenced by libMesh::DistributedMesh::node_ptr_range().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Takes ownership of node n
on this partition of a distributed mesh, by setting n.processor_id() to this->processor_id(), as well as changing n.id() and moving it in the mesh's internal container to give it a new authoritative id.
Reimplemented from libMesh::MeshBase.
Definition at line 582 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes, libMesh::DistributedMesh::add_node(), libMesh::DofObject::id(), libMesh::DofObject::invalid_id, libMesh::ParallelObject::processor_id(), libMesh::DofObject::processor_id(), and libMesh::DofObject::set_id().
|
inherited |
Definition at line 182 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::ParallelObject::comm(), and libMesh::Parallel::Communicator::max().
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
inherited |
Definition at line 240 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes, libMesh::ParallelObject::comm(), and libMesh::Parallel::Communicator::max().
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 213 of file distributed_mesh.C.
References libMesh::MeshBase::_next_unique_id, libMesh::DistributedMesh::_next_unpartitioned_unique_id, libMesh::ParallelObject::comm(), std::max(), and libMesh::Parallel::Communicator::max().
Referenced by libMesh::DistributedMesh::update_parallel_id_counts().
|
overridevirtualinherited |
The parallel_n_elem() function computes a parallel-synchronized value on distributed meshes, and so must be called in parallel only.
Implements libMesh::MeshBase.
Definition at line 169 of file distributed_mesh.C.
References libMesh::ParallelObject::comm(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_unpartitioned_elem(), and libMesh::Parallel::Communicator::sum().
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
overridevirtualinherited |
This function and others must be overridden in derived classes since the MeshBase class has no specific storage for nodes or elements. The parallel_n_nodes()
function computes a parallel-synchronized value on distributed meshes, and so must be called in parallel only.
Implements libMesh::MeshBase.
Definition at line 227 of file distributed_mesh.C.
References libMesh::ParallelObject::comm(), libMesh::MeshBase::n_local_nodes(), libMesh::MeshBase::n_unpartitioned_nodes(), and libMesh::Parallel::Communicator::sum().
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
virtualinherited |
Call the default partitioner (currently metis_partition()
).
Definition at line 426 of file mesh_base.C.
References libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshBase::is_serial(), libMesh::MeshBase::n_unpartitioned_elem(), libMesh::MeshBase::partitioner(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshBase::skip_partitioning(), and libMesh::MeshBase::update_post_partitioning().
Referenced by libMesh::split_mesh().
|
inlineinherited |
Definition at line 749 of file mesh_base.h.
References libMesh::ParallelObject::n_processors().
Referenced by libMesh::MeshBase::prepare_for_use().
|
inlinevirtualinherited |
A partitioner to use at each prepare_for_use()
Definition at line 126 of file mesh_base.h.
References libMesh::MeshBase::_partitioner.
Referenced by libMesh::MeshBase::partition(), and libMesh::BoundaryInfo::sync().
|
overridevirtualinherited |
Iterate over all elements with a specified processor id.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over nodes with processor_id() == proc_id
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 270 of file distributed_mesh.C.
References libMesh::MeshBase::node_ref().
|
inherited |
PointLocatorBase
object for this mesh, constructing a master PointLocator first if necessary.Definition at line 479 of file mesh_base.C.
References libMesh::MeshBase::_point_locator, libMesh::PointLocatorBase::build(), libMesh::Threads::in_threads, and libMesh::TREE_ELEMENTS.
|
inherited |
Prepare a newly created (or read) mesh for use. This involves 4 steps: 1.) call find_neighbors()
2.) call partition()
3.) call renumber_nodes_and_elements()
4.) call cache_elem_dims()
The argument to skip renumbering is now deprecated - to prevent a mesh from being renumbered, set allow_renumbering(false).
If this is a distributed mesh, local copies of remote elements will be deleted here - to keep those elements replicated during preparation, set allow_remote_element_removal(false).
Definition at line 152 of file mesh_base.C.
References libMesh::MeshBase::_allow_remote_element_removal, libMesh::MeshBase::_ghosting_functors, libMesh::MeshBase::_is_prepared, libMesh::MeshBase::_skip_renumber_nodes_and_elements, libMesh::MeshBase::allow_renumbering(), libMesh::MeshBase::cache_elem_dims(), libMesh::MeshBase::clear_point_locator(), libMesh::ParallelObject::comm(), libMesh::MeshBase::delete_remote_elements(), libMesh::MeshBase::detect_interior_parents(), libMesh::MeshBase::find_neighbors(), libMesh::MeshBase::is_serial(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), libMesh::MeshBase::partition(), libMesh::MeshBase::renumber_nodes_and_elements(), and libMesh::MeshBase::update_parallel_id_counts().
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshRefinement::coarsen_elements(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), libMesh::GMVIO::read(), libMesh::UnstructuredMesh::read(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::ReplicatedMesh::stitching_helper(), libMesh::BoundaryInfo::sync(), libMesh::TriangleInterface::triangulate(), libMesh::MeshRefinement::uniformly_coarsen(), and libMesh::MeshRefinement::uniformly_refine().
|
inherited |
Prints relevant information about the mesh.
Definition at line 412 of file mesh_base.C.
References libMesh::MeshBase::get_info().
Referenced by libMesh::InfElemBuilder::build_inf_elem(), and libMesh::operator<<().
|
inlineinherited |
Definition at line 101 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::rank().
Referenced by libMesh::BoundaryInfo::_find_id_maps(), libMesh::EquationSystems::_read_impl(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DistributedMesh::add_elem(), libMesh::BoundaryInfo::add_elements(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::DistributedMesh::add_node(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::FEMSystem::assembly(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::DistributedMesh::clear(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::ExodusII_IO_Helper::create(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshFunction::find_element(), libMesh::MeshFunction::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::DofMap::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SparsityPattern::Build::handle_vi_vj(), libMesh::SystemSubsetBySubdomain::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::DistributedMesh::insert_elem(), libMesh::DofMap::is_evaluable(), libMesh::SparsityPattern::Build::join(), libMesh::DofMap::last_dof(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMap::n_local_dofs(), libMesh::System::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::BoundaryInfo::n_shellface_conds(), libMesh::SparsityPattern::Build::operator()(), libMesh::DistributedMesh::own_node(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::CheckpointIO::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::ExodusII_IO_Helper::read_global_values(), libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_header(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::CheckpointIO::select_split_config(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::total_weight(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::Parallel::Packing< T >::unpack(), libMesh::DistributedMesh::update_parallel_id_counts(), libMesh::NameBasedIO::write(), libMesh::XdrIO::write(), libMesh::CheckpointIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), libMesh::ExodusII_IO_Helper::write_timestep(), and libMesh::ExodusII_IO::write_timestep_discontinuous().
|
inlinevirtualinherited |
Definition at line 578 of file mesh_base.h.
References libMesh::MeshBase::query_elem_ptr().
|
inlinevirtualinherited |
Definition at line 592 of file mesh_base.h.
References libMesh::MeshBase::query_elem_ptr().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 353 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, and libMesh::DofObject::id().
|
overridevirtualinherited |
Implements libMesh::MeshBase.
Definition at line 369 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, and libMesh::DofObject::id().
|
overridevirtualinherited |
nullptr
if no such node exists in this processor's mesh data structure. Implements libMesh::MeshBase.
Definition at line 299 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes, and libMesh::DofObject::id().
|
overridevirtualinherited |
nullptr
if no such node exists in this processor's mesh data structure. Implements libMesh::MeshBase.
Definition at line 315 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes, and libMesh::DofObject::id().
|
overridevirtualinherited |
Reads the file specified by name
. Attempts to figure out the proper method by the file extension. This is now the only way to read a mesh. The UnstructuredMesh
then initializes its data structures and is ready for use.
The skip_renumber_nodes_and_elements argument is now deprecated - to disallow renumbering, set MeshBase::allow_renumbering(false)
.
Set skip_find_neighbors=true to skip the find-neighbors operation during prepare_for_use. This operation isn't always necessary and it can be time-consuming, which is why we provide an option to skip it.
Implements libMesh::MeshBase.
Definition at line 603 of file unstructured_mesh.C.
References libMesh::MeshBase::allow_renumbering(), libMesh::Quality::name(), libMesh::MeshBase::prepare_for_use(), and libMesh::NameBasedIO::read().
|
inherited |
In a few (very rare) cases, the user may have manually tagged the elements with specific processor IDs by hand, without using a partitioner. In this case, the Mesh will not know that the total number of partitions, _n_parts, has changed, unless you call this function. This is an O(N active elements) calculation. The return value is the number of partitions, and _n_parts is also set by this function.
Definition at line 458 of file mesh_base.C.
References libMesh::MeshBase::_n_parts, libMesh::MeshBase::active_local_element_ptr_range(), libMesh::ParallelObject::comm(), libMesh::MeshBase::elem(), std::max(), libMesh::Parallel::Communicator::max(), and libMesh::DofObject::processor_id().
Referenced by libMesh::MeshBase::partition().
|
overridevirtualinherited |
Redistribute elements between processors. This gets called automatically by the Partitioner, and is a no-op in the case of a serialized mesh.
Reimplemented from libMesh::MeshBase.
Definition at line 803 of file distributed_mesh.C.
References libMesh::UnstructuredMesh::find_neighbors(), libMesh::DistributedMesh::is_serial(), libMesh::MeshCommunication::redistribute(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
inherited |
Removes a functor which was previously added to the set of ghosting functors.
Definition at line 281 of file mesh_base.C.
References libMesh::MeshBase::_ghosting_functors.
Referenced by libMesh::DofMap::clear(), libMesh::DofMap::remove_algebraic_ghosting_functor(), libMesh::DofMap::remove_coupling_functor(), and libMesh::DofMap::~DofMap().
|
inherited |
Renumber a parallel objects container.
Definition at line 961 of file distributed_mesh.C.
References libMesh::Parallel::Communicator::allgather(), libMesh::mapvector< Val, index_t >::begin(), libMesh::ParallelObject::comm(), data, libMesh::mapvector< Val, index_t >::end(), end, libMesh::mapvector< Val, index_t >::erase(), libMesh::index_range(), libMesh::DofObject::invalid_processor_id, libMesh::DofObject::invalid_unique_id, libMesh::ParallelObject::n_processors(), libMesh::MeshTools::Subdivision::next, libMesh::ParallelObject::processor_id(), and libMesh::Parallel::pull_parallel_vector_data().
Referenced by libMesh::DistributedMesh::renumber_nodes_and_elements().
|
overridevirtualinherited |
Changes the id of element old_id
, both by changing elem(old_id)->id() and by moving elem(old_id) in the mesh's internal container. No element with the id new_id
should already exist.
Implements libMesh::MeshBase.
Definition at line 543 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DofObject::id(), and libMesh::DofObject::set_id().
|
overridevirtualinherited |
Changes the id of node old_id
, both by changing node(old_id)->id() and by moving node(old_id) in the mesh's internal container. No element with the id new_id
should already exist.
Implements libMesh::MeshBase.
Definition at line 729 of file distributed_mesh.C.
References libMesh::DistributedMesh::_nodes, libMesh::DofObject::id(), and libMesh::DofObject::set_id().
|
overridevirtualinherited |
Remove nullptr elements from arrays.
Implements libMesh::MeshBase.
Definition at line 1211 of file distributed_mesh.C.
References libMesh::DistributedMesh::_elements, libMesh::DistributedMesh::_n_elem, libMesh::DistributedMesh::_n_nodes, libMesh::DistributedMesh::_nodes, libMesh::MeshBase::_skip_renumber_nodes_and_elements, libMesh::MeshBase::elem(), libMesh::DistributedMesh::element_ptr_range(), end, libMesh::MeshBase::get_boundary_info(), libMesh::DofObject::id(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::DistributedMesh::max_elem_id(), libMesh::DistributedMesh::max_node_id(), libMesh::DistributedMesh::n_elem(), libMesh::DistributedMesh::n_nodes(), libMesh::Elem::n_nodes(), libMesh::Elem::node_id(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), libMesh::BoundaryInfo::remove(), libMesh::DistributedMesh::renumber_dof_objects(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
inlineoverridevirtualinherited |
Reserves space for a known number of elements.
Mesh
implementation. If you know the number of elements you will add and call this method before repeatedly calling add_point()
the implementation will be more efficient. Implements libMesh::MeshBase.
Definition at line 225 of file distributed_mesh.h.
|
inlineoverridevirtualinherited |
Reserves space for a known number of nodes.
Mesh
implementation. If you know the number of nodes you will add and call this method before repeatedly calling add_point()
the implementation will be more efficient. Implements libMesh::MeshBase.
Definition at line 221 of file distributed_mesh.h.
|
overridevirtualinherited |
Iterate over elements for which elem->is_semilocal() is true for the current processor.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inherited |
In the point locator, do we count lower dimensional elements when we refine point locator regions? This is relevant in tree-based point locators, for example.
Definition at line 524 of file mesh_base.C.
References libMesh::MeshBase::_count_lower_dim_elems_in_point_locator.
|
inlineoverridevirtualinherited |
Asserts that not all elements and nodes of the mesh necessarily exist on the current processor.
Reimplemented from libMesh::MeshBase.
Definition at line 133 of file distributed_mesh.h.
References libMesh::DistributedMesh::_is_serial, and libMesh::DistributedMesh::_is_serial_on_proc_0.
|
inlineinherited |
Resets the logical dimension of the mesh. If the mesh has elements of multiple dimensions, this should be set to the largest dimension. E.g. if the mesh has 1D and 2D elements, this should be set to 2. If the mesh has 2D and 3D elements, this should be set to 3.
Definition at line 213 of file mesh_base.h.
References libMesh::MeshBase::_elem_dims.
Referenced by libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::read(), libMesh::VTKIO::read(), libMesh::CheckpointIO::read_connectivity(), libMesh::CheckpointIO::read_header(), libMesh::UCDIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), and libMesh::TriangleInterface::triangulate().
|
inlineprotectedinherited |
Definition at line 1371 of file mesh_base.h.
References libMesh::MeshBase::_n_parts.
Referenced by libMesh::BoundaryInfo::sync().
|
inlineinherited |
Sets the next unique id to be used.
Definition at line 310 of file mesh_base.h.
References libMesh::MeshBase::_next_unique_id.
|
inherited |
Sets the "spatial dimension" of the Mesh. See the documentation for Mesh::spatial_dimension() for more information.
Definition at line 142 of file mesh_base.C.
References libMesh::MeshBase::_spatial_dimension.
|
inlineinherited |
Definition at line 1335 of file mesh_base.h.
References libMesh::MeshBase::_block_id_to_name.
Referenced by libMesh::CheckpointIO::read_header(), libMesh::XdrIO::read_serialized_subdomain_names(), and libMesh::CheckpointIO::read_subdomain_names().
|
inlineinherited |
If true is passed in then this mesh will no longer be (re)partitioned. It would probably be a bad idea to call this on a DistributedMesh before the first partitioning has happened... because no elements would get assigned to your processor pool.
It is also possible, for backwards-compatibility purposes, to skip partitioning by resetting the partitioner() pointer for this mesh.
Definition at line 811 of file mesh_base.h.
References libMesh::MeshBase::_skip_partitioning.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), and libMesh::MeshTools::correct_node_proc_ids().
|
inlineinherited |
Definition at line 812 of file mesh_base.h.
References libMesh::MeshBase::_partitioner, and libMesh::MeshBase::_skip_partitioning.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), and libMesh::MeshBase::partition().
|
inherited |
The spatial dimension is defined as:
1 - for an exactly x-aligned mesh of 1D elements 2 - for an exactly x-y planar mesh of 2D elements 3 - otherwise
No tolerance checks are performed to determine whether the Mesh is x-aligned or x-y planar, only strict equality with zero in the higher dimensions is checked. Also, x-z and y-z planar meshes are considered to have spatial dimension == 3.
The spatial dimension is updated during prepare_for_use() based on the dimensions of the various elements present in the Mesh, but is never automatically decreased by this function.
For example, if the user calls set_spatial_dimension(2) and then later inserts 3D elements into the mesh, Mesh::spatial_dimension() will return 3 after the next call to prepare_for_use(). On the other hand, if the user calls set_spatial_dimension(3) and then inserts only x-aligned 1D elements into the Mesh, mesh.spatial_dimension() will remain 3.
Definition at line 135 of file mesh_base.C.
References libMesh::MeshBase::_spatial_dimension.
Referenced by libMesh::MeshBase::get_info(), and libMesh::ExodusII_IO_Helper::initialize().
|
inherited |
PointLocatorBase
object for this mesh, constructing a master PointLocator first if necessary. This should not be used in threaded or non-parallel_only code unless the master has already been constructed. Definition at line 496 of file mesh_base.C.
References libMesh::MeshBase::_point_locator, libMesh::PointLocatorBase::build(), libMesh::Threads::in_threads, and libMesh::TREE_ELEMENTS.
Referenced by libMesh::DofMap::create_dof_constraints(), libMesh::MeshFunction::init(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::DefaultCoupling::mesh_reinit(), libMesh::PointNeighborCoupling::mesh_reinit(), and libMesh::MeshRefinement::test_level_one().
|
overridevirtualinherited |
Iterate over elements for which elem->subactive() is true.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
inherited |
Constructs a list of all subdomain identifiers in the global mesh. Subdomains correspond to separate subsets of the mesh which could correspond e.g. to different materials in a solid mechanics application, or regions where different physical processes are important. The subdomain mapping is independent from the parallel decomposition.
Definition at line 288 of file mesh_base.C.
References libMesh::MeshBase::active_local_element_ptr_range(), libMesh::ParallelObject::comm(), libMesh::MeshBase::elem(), libMesh::Parallel::Communicator::set_union(), and libMesh::Elem::subdomain_id().
Referenced by libMesh::MeshBase::n_subdomains(), and libMesh::TecplotIO::TecplotIO().
|
inherited |
Definition at line 538 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name.
Referenced by libMesh::AbaqusIO::assign_subdomain_ids(), DMlibMeshSetSystem_libMesh(), libMesh::UNVIO::groups_in(), libMesh::ExodusII_IO::read(), libMesh::GmshIO::read_mesh(), libMesh::TecplotIO::write_binary(), and libMesh::ExodusII_IO_Helper::write_elements().
|
inherited |
Definition at line 543 of file mesh_base.C.
References libMesh::MeshBase::_block_id_to_name.
|
overridevirtualinherited |
Iterate over all elements with a specified geometric type.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Iterate over unpartitioned elements in the Mesh.
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Implements libMesh::MeshBase.
|
overridevirtualinherited |
Updates parallel caches so that methods like n_elem() accurately reflect changes on other processors
Implements libMesh::MeshBase.
Definition at line 127 of file distributed_mesh.C.
References libMesh::DistributedMesh::_max_elem_id, libMesh::DistributedMesh::_max_node_id, libMesh::DistributedMesh::_n_elem, libMesh::DistributedMesh::_n_nodes, libMesh::DistributedMesh::_next_free_local_elem_id, libMesh::DistributedMesh::_next_free_local_node_id, libMesh::DistributedMesh::_next_free_unpartitioned_elem_id, libMesh::DistributedMesh::_next_free_unpartitioned_node_id, libMesh::MeshBase::_next_unique_id, libMesh::DistributedMesh::_next_unpartitioned_unique_id, libMesh::ParallelObject::n_processors(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_n_elem(), libMesh::DistributedMesh::parallel_n_nodes(), and libMesh::ParallelObject::processor_id().
Referenced by libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::redistribute(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_post_partitioning().
|
overridevirtualinherited |
Recalculate cached data after elements and nodes have been repartitioned.
Reimplemented from libMesh::MeshBase.
Definition at line 833 of file distributed_mesh.C.
References libMesh::DistributedMesh::update_parallel_id_counts().
|
overridevirtualinherited |
Write the file specified by name
. Attempts to figure out the proper method by the file extension.
Implements libMesh::MeshBase.
Definition at line 633 of file unstructured_mesh.C.
References libMesh::Quality::name(), and libMesh::NameBasedIO::write().
|
inherited |
Write to the file specified by name
. Attempts to figure out the proper method by the file extension. Also writes data.
Definition at line 642 of file unstructured_mesh.C.
References libMesh::Quality::name(), and libMesh::NameBasedIO::write_nodal_data().
|
protectedinherited |
If this is false then even on DistributedMesh remote elements will not be deleted during mesh preparation.
This is true by default.
Definition at line 1439 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_remote_element_removal(), and libMesh::MeshBase::prepare_for_use().
|
protectedinherited |
This structure maintains the mapping of named blocks for file formats that support named blocks. Currently this is only implemented for ExodusII
Definition at line 1446 of file mesh_base.h.
Referenced by libMesh::MeshBase::get_id_by_name(), libMesh::MeshBase::get_subdomain_name_map(), libMesh::MeshBase::set_subdomain_name_map(), and libMesh::MeshBase::subdomain_name().
|
protectedinherited |
Definition at line 107 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::ParallelObject::comm(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), and libMesh::ParallelObject::processor_id().
|
protectedinherited |
Do we count lower dimensional elements in point locator refinement? This is relevant in tree-based point locators, for example.
Definition at line 1404 of file mesh_base.h.
Referenced by libMesh::MeshBase::get_count_lower_dim_elems_in_point_locator(), and libMesh::MeshBase::set_count_lower_dim_elems_in_point_locator().
|
protectedinherited |
The default geometric GhostingFunctor, used to implement standard libMesh element ghosting behavior. We use a base class pointer here to avoid dragging in more header dependencies.
Definition at line 1466 of file mesh_base.h.
Referenced by libMesh::MeshBase::default_ghosting(), and libMesh::MeshBase::MeshBase().
|
protectedinherited |
We cache the dimension of the elements present in the mesh. So, if we have a mesh with 1D and 2D elements, this structure will contain 1 and 2.
Definition at line 1453 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_dims(), libMesh::MeshBase::clear(), libMesh::MeshBase::elem_dimensions(), libMesh::MeshBase::get_info(), libMesh::MeshBase::mesh_dimension(), libMesh::MeshBase::MeshBase(), and libMesh::MeshBase::set_mesh_dimension().
|
protectedinherited |
The elements in the mesh.
Definition at line 533 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::elem_ptr(), libMesh::DistributedMesh::fix_broken_node_and_element_numbering(), libMesh::DistributedMesh::insert_elem(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::query_elem_ptr(), libMesh::DistributedMesh::renumber_elem(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
protectedinherited |
These are extra ghost elements that we want to make sure not to delete when we call delete_remote_elements()
Definition at line 570 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_extra_ghost_elem(), libMesh::DistributedMesh::clear_extra_ghost_elems(), libMesh::DistributedMesh::delete_remote_elements(), and libMesh::DistributedMesh::DistributedMesh().
|
protectedinherited |
The list of all GhostingFunctor objects to be used when distributing a DistributedMesh.
Basically unused by ReplicatedMesh for now, but belongs to MeshBase because the cost is trivial.
Definition at line 1475 of file mesh_base.h.
Referenced by libMesh::MeshBase::add_ghosting_functor(), libMesh::MeshBase::ghosting_functors_begin(), libMesh::MeshBase::ghosting_functors_end(), libMesh::MeshBase::MeshBase(), libMesh::MeshBase::prepare_for_use(), and libMesh::MeshBase::remove_ghosting_functor().
|
protectedinherited |
Flag indicating if the mesh has been prepared for use.
Definition at line 1389 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshBase::clear(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshBase::is_prepared(), and libMesh::MeshBase::prepare_for_use().
|
protectedinherited |
A boolean remembering whether we're serialized or not
Definition at line 538 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::is_serial(), libMesh::DistributedMesh::is_serial_on_zero(), and libMesh::DistributedMesh::set_distributed().
|
protectedinherited |
A boolean remembering whether we're serialized to proc 0 or not
Definition at line 543 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::allgather(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::gather_to_zero(), libMesh::DistributedMesh::is_serial_on_zero(), and libMesh::DistributedMesh::set_distributed().
|
protectedinherited |
Definition at line 548 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::max_elem_id(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Definition at line 548 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::max_node_id(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Definition at line 548 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::delete_elem(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::insert_elem(), libMesh::DistributedMesh::n_elem(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Cached data from the last renumber_nodes_and_elements call
Definition at line 548 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::delete_node(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::n_nodes(), libMesh::DistributedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
The number of partitions the mesh has. This is set by the partitioners, and may not be changed directly by the user.
Definition at line 1384 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshBase::n_partitions(), libMesh::MeshBase::recalculate_n_partitions(), and libMesh::MeshBase::set_n_partitions().
|
protectedinherited |
Definition at line 554 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Guaranteed globally unused IDs for use when adding new nodes or elements.
Definition at line 554 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Definition at line 556 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
Definition at line 556 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::DistributedMesh(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
The next available unique id for assigning ids to DOF objects
Definition at line 1418 of file mesh_base.h.
Referenced by libMesh::ReplicatedMesh::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::ReplicatedMesh::add_node(), libMesh::DistributedMesh::add_node(), libMesh::ReplicatedMesh::add_point(), libMesh::DistributedMesh::DistributedMesh(), libMesh::ReplicatedMesh::insert_elem(), libMesh::DistributedMesh::insert_elem(), libMesh::ReplicatedMesh::insert_node(), libMesh::MeshBase::next_unique_id(), libMesh::ReplicatedMesh::parallel_max_unique_id(), libMesh::DistributedMesh::parallel_max_unique_id(), libMesh::ReplicatedMesh::ReplicatedMesh(), libMesh::MeshBase::set_next_unique_id(), libMesh::ReplicatedMesh::update_parallel_id_counts(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
The next available unique id for assigning ids to unpartitioned DOF objects
Definition at line 563 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_elem(), libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::DistributedMesh(), libMesh::DistributedMesh::insert_elem(), libMesh::DistributedMesh::parallel_max_unique_id(), and libMesh::DistributedMesh::update_parallel_id_counts().
|
protectedinherited |
The vertices (spatial coordinates) of the mesh.
Definition at line 528 of file distributed_mesh.h.
Referenced by libMesh::DistributedMesh::add_node(), libMesh::DistributedMesh::add_point(), libMesh::DistributedMesh::clear(), libMesh::DistributedMesh::delete_node(), libMesh::DistributedMesh::delete_remote_elements(), libMesh::DistributedMesh::fix_broken_node_and_element_numbering(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_ids(), libMesh::DistributedMesh::node_ptr(), libMesh::DistributedMesh::own_node(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::DistributedMesh::query_node_ptr(), libMesh::DistributedMesh::renumber_node(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
protectedinherited |
A partitioner to use at each prepare_for_use().
This will be built in the constructor of each derived class, but can be replaced by the user through the partitioner() accessor.
Definition at line 1412 of file mesh_base.h.
Referenced by libMesh::DistributedMesh::DistributedMesh(), libMesh::MeshBase::MeshBase(), libMesh::MeshBase::partitioner(), libMesh::ReplicatedMesh::ReplicatedMesh(), and libMesh::MeshBase::skip_partitioning().
|
mutableprotectedinherited |
A PointLocator
class for this mesh. This will not actually be built unless needed. Further, since we want our point_locator()
method to be const
(yet do the dynamic allocating) this needs to be mutable. Since the PointLocatorBase::build() member is used, and it operates on a constant reference to the mesh, this is OK.
Definition at line 1398 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear_point_locator(), libMesh::MeshBase::point_locator(), and libMesh::MeshBase::sub_point_locator().
|
protectedinherited |
If this is true then no partitioning should be done.
Definition at line 1424 of file mesh_base.h.
Referenced by libMesh::MeshBase::skip_partitioning().
|
protectedinherited |
If this is true then renumbering will be kept to a minimum.
This is set when prepare_for_use() is called.
Definition at line 1431 of file mesh_base.h.
Referenced by libMesh::MeshBase::allow_renumbering(), libMesh::MeshBase::prepare_for_use(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), and libMesh::DistributedMesh::renumber_nodes_and_elements().
|
protectedinherited |
The "spatial dimension" of the Mesh. See the documentation for Mesh::spatial_dimension() for more information.
Definition at line 1459 of file mesh_base.h.
Referenced by libMesh::MeshBase::cache_elem_dims(), libMesh::MeshBase::set_spatial_dimension(), and libMesh::MeshBase::spatial_dimension().
|
inherited |
This class holds the boundary information. It can store nodes, edges, and faces with a corresponding id that facilitates setting boundary conditions.
Direct access to this class will be removed in future libMesh versions. Use the get_boundary_info()
accessor instead.
Definition at line 1363 of file mesh_base.h.
Referenced by libMesh::MeshBase::clear(), and libMesh::MeshBase::get_boundary_info().