libMesh::MeshBase Class Reference
#include <mesh_base.h>

Detailed Description
This is the MeshBase class. This class provides all the data necessary to describe a geometric entity. It allows for the description of a dim dimensional object that lives in LIBMESH_DIM-dimensional space.
- A mesh is made of nodes and elements, and this class provides data structures to store and access both. A mesh may be partitioned into a number of subdomains, and this class provides that functionality. Furthermore, this class provides functions for reading and writing a mesh to disk in various formats.
Definition at line 68 of file mesh_base.h.
Member Typedef Documentation
We need an empty, generic class to act as a predicate for this and derived mesh classes.
Definition at line 610 of file mesh_base.h.
Constructor & Destructor Documentation
| libMesh::MeshBase::MeshBase | ( | unsigned int | dim = 1 |
) |
Constructor. Takes dim, the dimension of the mesh. The mesh dimension can be changed (and may automatically be changed by mesh generation/loading) later.
Definition at line 46 of file mesh_base.C.
References _dim, and libMesh::initialized().
00046 : 00047 boundary_info (new BoundaryInfo(*this)), 00048 _n_parts (1), 00049 _dim (d), 00050 _is_prepared (false), 00051 _point_locator (NULL), 00052 _partitioner (NULL), 00053 _skip_partitioning(false), 00054 _skip_renumber_nodes_and_elements(false) 00055 { 00056 libmesh_assert_less_equal (LIBMESH_DIM, 3); 00057 libmesh_assert_greater_equal (LIBMESH_DIM, _dim); 00058 libmesh_assert (libMesh::initialized()); 00059 }
| libMesh::MeshBase::MeshBase | ( | const MeshBase & | other_mesh | ) |
Copy-constructor.
Definition at line 63 of file mesh_base.C.
References _partitioner, and libMesh::AutoPtr< Tp >::get().
00063 : 00064 boundary_info (new BoundaryInfo(*this)), 00065 _n_parts (other_mesh._n_parts), 00066 _dim (other_mesh._dim), 00067 _is_prepared (other_mesh._is_prepared), 00068 _point_locator (NULL), 00069 _partitioner (NULL), 00070 _skip_partitioning(other_mesh._skip_partitioning), 00071 _skip_renumber_nodes_and_elements(false) 00072 { 00073 if(other_mesh._partitioner.get()) 00074 { 00075 _partitioner = other_mesh._partitioner->clone(); 00076 } 00077 }
| libMesh::MeshBase::~MeshBase | ( | ) | [virtual] |
Destructor.
Definition at line 81 of file mesh_base.C.
References clear(), and libMesh::closed().
00082 { 00083 this->clear(); 00084 00085 libmesh_assert (!libMesh::closed()); 00086 }
Member Function Documentation
| virtual const_element_iterator libMesh::MeshBase::active_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::SFCPartitioner::_do_partition(), libMesh::MetisPartitioner::_do_partition(), libMesh::LinearPartitioner::_do_partition(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_side_list_from_node_list(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::Modification::distort(), DMLibMeshSetSystem(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::PointLocatorTree::enable_out_of_mesh_mode(), libMesh::LocationMap< T >::fill(), libMesh::MeshTools::find_boundary_nodes(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshTools::Modification::flatten(), libMesh::PointLocatorList::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::DofMap::invalidate_dofs(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), n_active_sub_elem(), libMesh::PointLocatorTree::operator()(), libMesh::System::read_legacy_data(), libMesh::GmshIO::read_mesh(), libMesh::VariationalMeshSmoother::readgr(), recalculate_n_partitions(), libMesh::DofMap::reinit(), libMesh::Partitioner::set_node_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), subdomain_ids(), libMesh::Tree< N >::Tree(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::MeshRefinement::uniformly_p_coarsen(), libMesh::MeshRefinement::uniformly_p_refine(), libMesh::MeshRefinement::uniformly_refine(), libMesh::TetGenIO::write(), libMesh::PostscriptIO::write(), libMesh::FroIO::write(), libMesh::TecplotIO::write_ascii(), libMesh::MEDITIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements_discontinuous(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates_discontinuous(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::GmshIO::write_post(), and libMesh::GnuPlotIO::write_solution().
| virtual const_element_iterator libMesh::MeshBase::active_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::SFCPartitioner::_do_partition(), libMesh::MetisPartitioner::_do_partition(), libMesh::LinearPartitioner::_do_partition(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_side_list_from_node_list(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshTools::Modification::distort(), DMLibMeshSetSystem(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::PointLocatorTree::enable_out_of_mesh_mode(), libMesh::LocationMap< T >::fill(), libMesh::MeshTools::find_boundary_nodes(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshTools::Modification::flatten(), libMesh::PointLocatorList::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::DofMap::invalidate_dofs(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::MeshRefinement::limit_level_mismatch_at_edge(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshCommunication::make_elems_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), n_active_sub_elem(), libMesh::PointLocatorTree::operator()(), libMesh::System::read_legacy_data(), libMesh::GmshIO::read_mesh(), libMesh::VariationalMeshSmoother::readgr(), recalculate_n_partitions(), libMesh::DofMap::reinit(), libMesh::Partitioner::set_node_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), subdomain_ids(), libMesh::Tree< N >::Tree(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::MeshRefinement::uniformly_p_coarsen(), libMesh::MeshRefinement::uniformly_p_refine(), libMesh::MeshRefinement::uniformly_refine(), libMesh::TetGenIO::write(), libMesh::PostscriptIO::write(), libMesh::FroIO::write(), libMesh::TecplotIO::write_ascii(), libMesh::MEDITIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements_discontinuous(), libMesh::GmshIO::write_mesh(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates_discontinuous(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::GmshIO::write_post(), and libMesh::GnuPlotIO::write_solution().
| virtual const_element_iterator libMesh::MeshBase::active_local_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_local_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::ParmetisPartitioner::build_graph(), libMesh::EquationSystems::build_solution_vector(), libMesh::DofMap::build_sparsity(), libMesh::System::calculate_norm(), libMesh::VTKIO::cells_to_vtk(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::MeshTools::find_hanging_nodes_and_parents(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::EquationSystems::get_solution(), libMesh::SystemSubsetBySubdomain::init(), libMesh::LaplaceMeshSmoother::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::System::local_dof_indices(), libMesh::DofMap::max_constraint_error(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), libMesh::MeshTools::n_active_local_levels(), libMesh::ErrorVector::plot_error(), libMesh::FEMSystem::postprocess(), libMesh::System::project_vector(), libMesh::HPSingularity::select_refinement(), libMesh::HPCoarsenTest::select_refinement(), libMesh::Nemesis_IO_Helper::write_exodus_initialization_info(), libMesh::EnsightIO::write_geometry_ascii(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::EnsightIO::write_vector_ascii(), and libMesh::System::zero_variable().
| virtual const_element_iterator libMesh::MeshBase::active_local_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_local_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::FEMSystem::assemble_qoi(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assembly(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::ParmetisPartitioner::build_graph(), libMesh::EquationSystems::build_solution_vector(), libMesh::DofMap::build_sparsity(), libMesh::System::calculate_norm(), libMesh::VTKIO::cells_to_vtk(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::MeshTools::find_hanging_nodes_and_parents(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::EquationSystems::get_solution(), libMesh::SystemSubsetBySubdomain::init(), libMesh::LaplaceMeshSmoother::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::System::local_dof_indices(), libMesh::DofMap::max_constraint_error(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), libMesh::MeshTools::n_active_local_levels(), libMesh::ErrorVector::plot_error(), libMesh::FEMSystem::postprocess(), libMesh::HPSingularity::select_refinement(), libMesh::HPCoarsenTest::select_refinement(), libMesh::Nemesis_IO_Helper::write_exodus_initialization_info(), libMesh::EnsightIO::write_geometry_ascii(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::EnsightIO::write_vector_ascii(), and libMesh::System::zero_variable().
| virtual const_element_iterator libMesh::MeshBase::active_local_subdomain_elements_begin | ( | const subdomain_id_type | subdomain_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_local_subdomain_elements_begin | ( | const subdomain_id_type | subdomain_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by DMCreateDomainDecomposition_libMesh(), and DMCreateFieldDecomposition_libMesh().
| virtual const_element_iterator libMesh::MeshBase::active_local_subdomain_elements_end | ( | const subdomain_id_type | subdomain_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_local_subdomain_elements_end | ( | const subdomain_id_type | subdomain_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by DMCreateDomainDecomposition_libMesh(), and DMCreateFieldDecomposition_libMesh().
| virtual const_node_iterator libMesh::MeshBase::active_nodes_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::active_nodes_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_node_iterator libMesh::MeshBase::active_nodes_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::active_nodes_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::active_not_local_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_not_local_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::DofMap::allgather_recursive_constraints(), and libMesh::DofMap::scatter_constraints().
| virtual const_element_iterator libMesh::MeshBase::active_not_local_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_not_local_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::DofMap::allgather_recursive_constraints(), and libMesh::DofMap::scatter_constraints().
| virtual const_element_iterator libMesh::MeshBase::active_pid_elements_begin | ( | const processor_id_type | proc_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_pid_elements_begin | ( | const processor_id_type | proc_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::ParmetisPartitioner::initialize(), and n_active_elem_on_proc().
| virtual const_element_iterator libMesh::MeshBase::active_pid_elements_end | ( | const processor_id_type | proc_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_pid_elements_end | ( | const processor_id_type | proc_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::ParmetisPartitioner::initialize(), and n_active_elem_on_proc().
| virtual const_element_iterator libMesh::MeshBase::active_subdomain_elements_begin | ( | const subdomain_id_type | subdomain_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_subdomain_elements_begin | ( | const subdomain_id_type | subdomain_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::TecplotIO::write_binary().
| virtual const_element_iterator libMesh::MeshBase::active_subdomain_elements_end | ( | const subdomain_id_type | subdomain_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_subdomain_elements_end | ( | const subdomain_id_type | subdomain_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::TecplotIO::write_binary().
| virtual const_element_iterator libMesh::MeshBase::active_type_elements_begin | ( | const ElemType | type | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_type_elements_begin | ( | const ElemType | type | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::n_active_elem_of_type().
| virtual const_element_iterator libMesh::MeshBase::active_type_elements_end | ( | const ElemType | type | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::active_type_elements_end | ( | const ElemType | type | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::n_active_elem_of_type().
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.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::GMVIO::_read_one_cell(), libMesh::MeshRefinement::add_elem(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::UNVIO::element_in(), libMesh::MeshTools::Modification::flatten(), libMesh::mesh_inserter_iterator< T >::operator=(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::VTKIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read_elements(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), and libMesh::TetGenMeshInterface::triangulate_pointset().
Add Node n to the end of the vertex array.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::mesh_inserter_iterator< T >::operator=().
| virtual Node* libMesh::MeshBase::add_point | ( | const Point & | p, | |
| const dof_id_type | id = DofObject::invalid_id, |
|||
| const processor_id_type | proc_id = DofObject::invalid_processor_id | |||
| ) | [pure virtual] |
Add a new Node at Point p to the end of the vertex array, with processor_id procid. Use DofObject::invalid_processor_id (default) to add a node to all processors, or libMesh::processor_id() to add a node to the local processor only. If adding a node locally, passing an id other than DofObject::invalid_id will set that specific node id. Only do this in parallel if you are manually keeping ids consistent.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::GMVIO::_read_nodes(), libMesh::MeshRefinement::add_point(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::UNVIO::node_in(), libMesh::mesh_inserter_iterator< T >::operator=(), libMesh::VTKIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::AbaqusIO::read_nodes(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), libMesh::TriangleInterface::triangulate(), and libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole().
| virtual void libMesh::MeshBase::all_first_order | ( | ) | [pure virtual] |
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.
Implemented in libMesh::UnstructuredMesh.
Referenced by libMesh::ErrorVector::plot_error().
| virtual void libMesh::MeshBase::all_second_order | ( | const bool | full_ordered = true |
) | [pure virtual] |
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. Note that for some elements like 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 ...
Implemented in libMesh::UnstructuredMesh.
| virtual void libMesh::MeshBase::allgather | ( | ) | [inline, virtual] |
Gathers all elements and nodes of the mesh onto every processor
Reimplemented in libMesh::ParallelMesh.
Definition at line 129 of file mesh_base.h.
Referenced by libMesh::EquationSystems::allgather(), and libMesh::MeshSerializer::MeshSerializer().
| bool libMesh::MeshBase::allow_renumbering | ( | ) | const [inline] |
Definition at line 502 of file mesh_base.h.
References _skip_renumber_nodes_and_elements.
Referenced by prepare_for_use(), and libMesh::UnstructuredMesh::read().
00502 { return !_skip_renumber_nodes_and_elements; }
| void libMesh::MeshBase::allow_renumbering | ( | bool | allow | ) | [inline] |
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, particulary when using a distributed mesh.
Definition at line 501 of file mesh_base.h.
References _skip_renumber_nodes_and_elements.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::AdjointRefinementEstimator::estimate_error(), and libMesh::ErrorVector::plot_error().
00501 { _skip_renumber_nodes_and_elements = !allow; }
| virtual const_element_iterator libMesh::MeshBase::ancestor_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::ancestor_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::ancestor_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::ancestor_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| void libMesh::MeshBase::clear | ( | ) | [virtual] |
Deletes all the data that are currently stored.
Reimplemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Definition at line 154 of file mesh_base.C.
References _is_prepared, _n_parts, boundary_info, and clear_point_locator().
Referenced by libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::VTKIO::read(), libMesh::GMVIO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read(), libMesh::LegacyXdrIO::read_ascii(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), libMesh::TriangleInterface::triangulate(), and ~MeshBase().
00155 { 00156 // Reset the number of partitions 00157 _n_parts = 1; 00158 00159 // Reset the _is_prepared flag 00160 _is_prepared = false; 00161 00162 // Clear boundary information 00163 this->boundary_info->clear(); 00164 00165 // Clear our point locator. 00166 this->clear_point_locator(); 00167 }
| void libMesh::MeshBase::clear_point_locator | ( | ) |
Releases the current PointLocator object.
Definition at line 379 of file mesh_base.C.
References _point_locator, and libMesh::AutoPtr< Tp >::reset().
Referenced by clear(), libMesh::UnstructuredMesh::contract(), and prepare_for_use().
00380 { 00381 _point_locator.reset(NULL); 00382 }
Virtual "copy constructor"
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::ErrorVector::plot_error().
| virtual bool libMesh::MeshBase::contract | ( | ) | [pure virtual] |
Delete subactive (i.e. children of coarsened) elements. This removes all elements descended from currently active elements in the mesh.
Implemented in libMesh::UnstructuredMesh.
Referenced by libMesh::EquationSystems::reinit().
| virtual void libMesh::MeshBase::delete_elem | ( | Elem * | e | ) | [pure virtual] |
Removes element e from the mesh. Note that calling this method may produce isolated nodes, i.e. nodes not connected to any element. This method must be implemented in derived classes in such a way that it does not invalidate element iterators.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::UnstructuredMesh::contract(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::MeshTools::Modification::flatten(), and libMesh::TetGenMeshInterface::pointset_convexhull().
| virtual void libMesh::MeshBase::delete_node | ( | Node * | n | ) | [pure virtual] |
Removes the Node n from the mesh.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_first_order().
| virtual void libMesh::MeshBase::delete_remote_elements | ( | ) | [inline, virtual] |
When supported, 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 in libMesh::ParallelMesh.
Definition at line 136 of file mesh_base.h.
Referenced by libMesh::MeshTools::Generation::build_extrusion(), libMesh::EquationSystems::init(), prepare_for_use(), libMesh::Nemesis_IO::read(), libMesh::BoundaryInfo::sync(), and libMesh::MeshSerializer::~MeshSerializer().
| virtual Elem* libMesh::MeshBase::elem | ( | const dof_id_type | i | ) | [pure virtual] |
Return a writeable pointer to the
element, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const Elem* libMesh::MeshBase::elem | ( | const dof_id_type | i | ) | const [pure virtual] |
Return a pointer to the
element, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::GMVIO::_read_materials(), libMesh::BoundaryInfo::add_side(), 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::DofMap::elem_ptr(), libMesh::MeshData::foreign_id_to_elem(), libMesh::ErrorVector::is_active_elem(), libMesh::BoundaryInfo::operator=(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::MeshTools::subdomain_bounding_box(), libMesh::BoundaryInfo::sync(), libMesh::Elem::topological_neighbor(), libMesh::Parallel::unpack(), libMesh::FroIO::write(), libMesh::Nemesis_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elements_discontinuous(), libMesh::LegacyXdrIO::write_mesh(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), and libMesh::DivaIO::write_stream().
| virtual const_element_iterator libMesh::MeshBase::elements_begin | ( | ) | const [pure virtual] |
const Elem iterator accessor functions.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::elements_begin | ( | ) | [pure virtual] |
Elem iterator accessor functions. These must be defined in Concrete base classes.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::add_p_to_h_refinement(), libMesh::VariationalMeshSmoother::adjust_adapt_data(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::EquationSystems::allgather(), libMesh::MeshData::assign(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::MeshTools::Modification::change_subdomain_id(), libMesh::TetGenMeshInterface::check_hull_integrity(), libMesh::MeshRefinement::clean_refinement_flags(), libMesh::MeshRefinement::coarsen_elements(), libMesh::CentroidPartitioner::compute_centroids(), libMesh::UnstructuredMesh::contract(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::DofMap::create_dof_constraints(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::DofMap::distribute_dofs(), libMesh::MeshTools::elem_types(), libMesh::UNVIO::element_out(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshTools::get_not_subactive_node_ids(), libMesh::EquationSystems::init(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::MeshTools::libmesh_assert_no_links_to_elem(), libMesh::MeshTools::libmesh_assert_old_dof_objects(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_node_pointers(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_refinement_tree(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_flags_parallel_consistent(), n_sub_elem(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::EquationSystems::reinit(), libMesh::DofMap::reinit(), libMesh::Partitioner::single_partition(), libMesh::MeshRefinement::switch_h_to_p_refinement(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::total_weight(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::UCDIO::write_interior_elems(), and libMesh::LegacyXdrIO::write_mesh().
| virtual const_element_iterator libMesh::MeshBase::elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_refine_elements(), libMesh::MeshRefinement::add_p_to_h_refinement(), libMesh::VariationalMeshSmoother::adjust_adapt_data(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::EquationSystems::allgather(), libMesh::MeshData::assign(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::MeshTools::Modification::change_subdomain_id(), libMesh::TetGenMeshInterface::check_hull_integrity(), libMesh::MeshRefinement::clean_refinement_flags(), libMesh::MeshRefinement::coarsen_elements(), libMesh::CentroidPartitioner::compute_centroids(), libMesh::UnstructuredMesh::contract(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::DofMap::create_dof_constraints(), libMesh::TetGenMeshInterface::delete_2D_hull_elements(), libMesh::DofMap::distribute_dofs(), libMesh::MeshTools::elem_types(), libMesh::UNVIO::element_out(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Modification::flatten(), libMesh::MeshTools::get_not_subactive_node_ids(), libMesh::EquationSystems::init(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::MeshTools::libmesh_assert_no_links_to_elem(), libMesh::MeshTools::libmesh_assert_old_dof_objects(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_node_pointers(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_refinement_tree(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_flags_parallel_consistent(), n_sub_elem(), libMesh::TetGenMeshInterface::pointset_convexhull(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::EquationSystems::reinit(), libMesh::DofMap::reinit(), libMesh::Partitioner::single_partition(), libMesh::MeshRefinement::switch_h_to_p_refinement(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::total_weight(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::UCDIO::write_interior_elems(), and libMesh::LegacyXdrIO::write_mesh().
| virtual void libMesh::MeshBase::find_neighbors | ( | const bool | reset_remote_elements = false, |
|
| const bool | reset_current_list = true | |||
| ) | [pure virtual] |
Locate element face (edge in 2D) neighbors. This is done with the help of a std::map that functions like a hash table. After this routine is called all the elements with a NULL neighbor pointer are guaranteed to be on the boundary. Thus this routine is useful for automatically determining the boundaries of the domain. If reset_remote_elements is left to false, remote neighbor links are not reset and searched for in the local mesh. If reset_current_list is left as true, then any existing links will be reset before initiating the algorithm, while honoring the value of the reset_remote_elements flag.
Implemented in libMesh::UnstructuredMesh.
Referenced by libMesh::InfElemBuilder::build_inf_elem(), and prepare_for_use().
| virtual void libMesh::MeshBase::fix_broken_node_and_element_numbering | ( | ) | [pure virtual] |
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(n)->id() == n.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::EquationSystems::_read_impl().
| subdomain_id_type libMesh::MeshBase::get_id_by_name | ( | const std::string & | name | ) | const |
Returns a the id of the requested block by name. Throws an error if a block by name is not found
Definition at line 406 of file mesh_base.C.
References _block_id_to_name, and libMesh::err.
00407 { 00408 // This function is searching the *values* of the map (linear search) 00409 // We might want to make this more efficient... 00410 std::map<subdomain_id_type, std::string>::const_iterator 00411 iter = _block_id_to_name.begin(), 00412 end_iter = _block_id_to_name.end(); 00413 00414 for ( ; iter != end_iter; ++iter) 00415 { 00416 if (iter->second == name) 00417 return iter->first; 00418 } 00419 00420 libMesh::err << "Block '" << name << "' does not exist in mesh" << std::endl; 00421 libmesh_error(); 00422 }
| std::string libMesh::MeshBase::get_info | ( | ) | const |
- Returns:
- a string containing relevant information about the mesh.
Definition at line 270 of file mesh_base.C.
References mesh_dimension(), n_active_elem(), n_elem(), n_local_elem(), n_local_nodes(), n_nodes(), n_partitions(), n_processors(), n_subdomains(), libMesh::n_threads(), processor_id(), and spatial_dimension().
Referenced by print_info().
00271 { 00272 std::ostringstream oss; 00273 00274 oss << " Mesh Information:" << '\n' 00275 << " mesh_dimension()=" << this->mesh_dimension() << '\n' 00276 << " spatial_dimension()=" << this->spatial_dimension() << '\n' 00277 << " n_nodes()=" << this->n_nodes() << '\n' 00278 << " n_local_nodes()=" << this->n_local_nodes() << '\n' 00279 << " n_elem()=" << this->n_elem() << '\n' 00280 << " n_local_elem()=" << this->n_local_elem() << '\n' 00281 #ifdef LIBMESH_ENABLE_AMR 00282 << " n_active_elem()=" << this->n_active_elem() << '\n' 00283 #endif 00284 << " n_subdomains()=" << this->n_subdomains() << '\n' 00285 << " n_partitions()=" << this->n_partitions() << '\n' 00286 << " n_processors()=" << libMesh::n_processors() << '\n' 00287 << " n_threads()=" << libMesh::n_threads() << '\n' 00288 << " processor_id()=" << this->processor_id() << '\n'; 00289 00290 return oss.str(); 00291 }
Insert elem e to the element array, preserving its id and replacing/deleting any existing element with the same id.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_first_order(), and libMesh::UnstructuredMesh::all_second_order().
| bool libMesh::MeshBase::is_prepared | ( | ) | const [inline] |
- Returns:
trueif the mesh has been prepared via a call toprepare_for_use,falseotherwise.
Definition at line 115 of file mesh_base.h.
References _is_prepared.
Referenced by libMesh::DofMap::build_sparsity(), libMesh::DofMap::create_dof_constraints(), libMesh::DofMap::distribute_dofs(), and libMesh::DofMap::reinit().
00116 { return _is_prepared; }
| virtual bool libMesh::MeshBase::is_serial | ( | ) | const [inline, virtual] |
- Returns:
trueif all elements and nodes of the mesh exist on the current processor,falseotherwise
Reimplemented in libMesh::ParallelMesh.
Definition at line 122 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MetisPartitioner::_do_partition(), libMesh::MeshRefinement::_refine_elements(), libMesh::UnstructuredMesh::all_second_order(), libMesh::EquationSystems::allgather(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshRefinement::coarsen_elements(), libMesh::DofMap::create_dof_constraints(), libMesh::LocationMap< T >::init(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshSerializer::MeshSerializer(), libMesh::BoundaryInfo::n_boundary_conds(), partition(), prepare_for_use(), libMesh::DofMap::process_constraints(), libMesh::Nemesis_IO::read(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::total_weight(), libMesh::EquationSystems::write(), libMesh::LegacyXdrIO::write_mesh(), and libMesh::XdrIO::write_parallel().
| virtual const_element_iterator libMesh::MeshBase::level_elements_begin | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::level_elements_begin | ( | const unsigned int | level | ) | [pure virtual] |
| virtual const_element_iterator libMesh::MeshBase::level_elements_end | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::level_elements_end | ( | const unsigned int | level | ) | [pure virtual] |
| virtual void libMesh::MeshBase::libmesh_assert_valid_parallel_ids | ( | ) | const [inline, virtual] |
Verify id and processor_id consistency of our elements and nodes containers. Calls libmesh_assert() on each possible failure. Currently only implemented on ParallelMesh; a serial data structure is much harder to get out of sync.
Reimplemented in libMesh::ParallelMesh.
Definition at line 670 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_refine_elements(), libMesh::InfElemBuilder::build_inf_elem(), and libMesh::MeshRefinement::refine_and_coarsen_elements().
| virtual const_element_iterator libMesh::MeshBase::local_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::local_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshCommunication::assign_global_indices(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshTools::n_local_levels(), and libMesh::MeshTools::n_p_levels().
| virtual const_element_iterator libMesh::MeshBase::local_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::local_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshCommunication::assign_global_indices(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshTools::n_local_levels(), and libMesh::MeshTools::n_p_levels().
| virtual const_element_iterator libMesh::MeshBase::local_level_elements_begin | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::local_level_elements_begin | ( | const unsigned int | level | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::XdrIO::write_serialized_bcs().
| virtual const_element_iterator libMesh::MeshBase::local_level_elements_end | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::local_level_elements_end | ( | const unsigned int | level | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::XdrIO::write_serialized_bcs().
| virtual const_node_iterator libMesh::MeshBase::local_nodes_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::local_nodes_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::bounding_box(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::VTKIO::nodes_to_vtk(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::System::zero_variable().
| virtual const_node_iterator libMesh::MeshBase::local_nodes_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::local_nodes_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::bounding_box(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::VTKIO::nodes_to_vtk(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::System::zero_variable().
| virtual const_element_iterator libMesh::MeshBase::local_not_level_elements_begin | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::local_not_level_elements_begin | ( | const unsigned int | level | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::local_not_level_elements_end | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::local_not_level_elements_end | ( | const unsigned int | level | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual dof_id_type libMesh::MeshBase::max_elem_id | ( | ) | const [pure virtual] |
Returns a number greater than or equal to the maximum element id in the mesh.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::InfElemBuilder::build_inf_elem(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::EquationSystems::get_solution(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), and libMesh::ErrorVector::plot_error().
| virtual dof_id_type libMesh::MeshBase::max_node_id | ( | ) | const [pure virtual] |
Returns a number greater than or equal to the maximum node id in the mesh.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::DofMap::add_neighbors_to_send_list(), libMesh::UnstructuredMesh::all_first_order(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::EquationSystems::build_solution_vector(), libMesh::ErrorVector::plot_error(), and libMesh::GMVIO::write_ascii_old_impl().
| unsigned int libMesh::MeshBase::mesh_dimension | ( | ) | const [inline] |
- Returns:
- the logical dimension of the mesh; i.e. the manifold dimension of the elements in the mesh. If we ever support multi-dimensional meshes (e.g. hexes and quads in the same mesh) then this will return the largest such dimension.
Definition at line 144 of file mesh_base.h.
References _dim.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::HPCoarsenTest::add_projection(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Generation::build_cube(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::EquationSystems::build_solution_vector(), libMesh::EquationSystems::build_variable_names(), libMesh::System::calculate_norm(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshTools::Modification::distort(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), get_info(), libMesh::MeshFunction::gradient(), libMesh::MeshFunction::hessian(), libMesh::PointLocatorTree::init(), libMesh::LaplaceMeshSmoother::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::FEInterface::n_vec_dim(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::BoundaryProjectSolution::operator()(), libMesh::ProjectSolution::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::MeshFunction::operator()(), prepare_for_use(), libMesh::VTKIO::read(), libMesh::Nemesis_IO::read(), libMesh::GMVIO::read(), libMesh::ExodusII_IO::read(), libMesh::System::read_header(), libMesh::UNVIO::read_implementation(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::MeshTools::Modification::rotate(), libMesh::HPCoarsenTest::select_refinement(), libMesh::MeshTools::Modification::smooth(), libMesh::BoundaryInfo::sync(), libMesh::DofMap::use_coupled_neighbor_dofs(), libMesh::PostscriptIO::write(), libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::GnuPlotIO::write_solution(), libMesh::DivaIO::write_stream(), and libMesh::EnsightIO::write_vector_ascii().
00145 { return static_cast<unsigned int>(_dim); }
| virtual dof_id_type libMesh::MeshBase::n_active_elem | ( | ) | const [pure virtual] |
Returns the number of active elements in the mesh. Implemented in terms of active_element_iterators.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::SFCPartitioner::_do_partition(), libMesh::MetisPartitioner::_do_partition(), libMesh::LinearPartitioner::_do_partition(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::Modification::flatten(), get_info(), libMesh::PointLocatorList::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::Partitioner::partition(), libMesh::Partitioner::repartition(), libMesh::VariationalMeshSmoother::smooth(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::GmshIO::write_mesh(), and libMesh::GnuPlotIO::write_solution().
| dof_id_type libMesh::MeshBase::n_active_elem_on_proc | ( | const processor_id_type | proc | ) | const |
Returns the number of active elements on processor proc.
Definition at line 231 of file mesh_base.C.
References active_pid_elements_begin(), active_pid_elements_end(), and libMesh::n_processors().
Referenced by n_active_local_elem().
00232 { 00233 libmesh_assert_less (proc_id, libMesh::n_processors()); 00234 return static_cast<dof_id_type>(std::distance (this->active_pid_elements_begin(proc_id), 00235 this->active_pid_elements_end (proc_id))); 00236 }
| dof_id_type libMesh::MeshBase::n_active_local_elem | ( | ) | const [inline] |
Returns the number of active elements on the local processor.
Definition at line 277 of file mesh_base.h.
References n_active_elem_on_proc(), and libMesh::processor_id().
Referenced by libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::ParmetisPartitioner::build_graph(), libMesh::VTKIO::cells_to_vtk(), and libMesh::ParmetisPartitioner::initialize().
00278 { return this->n_active_elem_on_proc (libMesh::processor_id()); }
| dof_id_type libMesh::MeshBase::n_active_sub_elem | ( | ) | const |
Same, but only counts active elements.
Definition at line 255 of file mesh_base.C.
References active_elements_begin(), active_elements_end(), and end.
Referenced by libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_old_impl(), and libMesh::TecplotIO::write_binary().
00256 { 00257 dof_id_type ne=0; 00258 00259 const_element_iterator el = this->active_elements_begin(); 00260 const const_element_iterator end = this->active_elements_end(); 00261 00262 for (; el!=end; ++el) 00263 ne += (*el)->n_sub_elem(); 00264 00265 return ne; 00266 }
| virtual dof_id_type libMesh::MeshBase::n_elem | ( | ) | const [pure virtual] |
Returns the number of elements in the mesh. The standard n_elem() function may return a cached value on distributed meshes, and so can be called by any processor at any time.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::SFCPartitioner::_do_partition(), libMesh::CentroidPartitioner::_do_partition(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::TetGenMeshInterface::check_hull_integrity(), libMesh::CentroidPartitioner::compute_centroids(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::distort(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), get_info(), libMesh::EquationSystems::get_solution(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::ErrorVector::plot_error(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::HPCoarsenTest::select_refinement(), libMesh::MeshTools::subdomain_bounding_box(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::XdrIO::write(), libMesh::TetGenIO::write(), libMesh::FroIO::write(), libMesh::UNVIO::write_implementation(), libMesh::LegacyXdrIO::write_mesh(), libMesh::System::write_serialized_vectors(), and libMesh::DivaIO::write_stream().
| dof_id_type libMesh::MeshBase::n_elem_on_proc | ( | const processor_id_type | proc | ) | const |
Returns the number of elements on processor proc.
Definition at line 218 of file mesh_base.C.
References libMesh::DofObject::invalid_processor_id, libMesh::n_processors(), pid_elements_begin(), and pid_elements_end().
Referenced by n_local_elem(), and n_unpartitioned_elem().
00219 { 00220 // We're either counting a processor's elements or unpartitioned 00221 // elements 00222 libmesh_assert (proc_id < libMesh::n_processors() || 00223 proc_id == DofObject::invalid_processor_id); 00224 00225 return static_cast<dof_id_type>(std::distance (this->pid_elements_begin(proc_id), 00226 this->pid_elements_end (proc_id))); 00227 }
| dof_id_type libMesh::MeshBase::n_local_elem | ( | ) | const [inline] |
Returns the number of elements on the local processor.
Definition at line 260 of file mesh_base.h.
References n_elem_on_proc(), and libMesh::processor_id().
Referenced by get_info(), and libMesh::ParallelMesh::parallel_n_elem().
00261 { return this->n_elem_on_proc (libMesh::processor_id()); }
| dof_id_type libMesh::MeshBase::n_local_nodes | ( | ) | const [inline] |
Returns the number of nodes on the local processor.
Definition at line 186 of file mesh_base.h.
References n_nodes_on_proc(), and libMesh::processor_id().
Referenced by get_info(), libMesh::VTKIO::nodes_to_vtk(), and libMesh::ParallelMesh::parallel_n_nodes().
00187 { return this->n_nodes_on_proc (libMesh::processor_id()); }
| virtual dof_id_type libMesh::MeshBase::n_nodes | ( | ) | const [pure virtual] |
Returns the number of nodes in the mesh. 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.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::build_nodes_to_elem_map(), libMesh::EquationSystems::build_solution_vector(), libMesh::GMVIO::copy_nodal_solution(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::distort(), libMesh::TetGenMeshInterface::fill_pointlist(), libMesh::MeshTools::find_boundary_nodes(), get_info(), libMesh::LaplaceMeshSmoother::init(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::TreeNode< N >::insert(), libMesh::MeshRefinement::limit_level_mismatch_at_node(), libMesh::ErrorVector::plot_error(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::VariationalMeshSmoother::smooth(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::MeshTools::subdomain_bounding_box(), libMesh::VTKIO::system_vectors_to_vtk(), libMesh::TreeNode< N >::transform_nodes_to_elements(), libMesh::MeshData::translate(), libMesh::TriangleInterface::triangulate(), libMesh::TetGenMeshInterface::triangulate_conformingDelaunayMesh_carvehole(), libMesh::XdrIO::write(), libMesh::TetGenIO::write(), libMesh::FroIO::write(), libMesh::TecplotIO::write_ascii(), libMesh::MEDITIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::UCDIO::write_header(), libMesh::UNVIO::write_implementation(), libMesh::GmshIO::write_mesh(), libMesh::GmshIO::write_post(), libMesh::XdrIO::write_serialized_nodes(), libMesh::System::write_serialized_vectors(), libMesh::UCDIO::write_soln(), libMesh::LegacyXdrIO::write_soln(), libMesh::DivaIO::write_stream(), and libMesh::VariationalMeshSmoother::writegr().
| dof_id_type libMesh::MeshBase::n_nodes_on_proc | ( | const processor_id_type | proc | ) | const |
Returns the number of nodes on processor proc.
Definition at line 205 of file mesh_base.C.
References libMesh::DofObject::invalid_processor_id, libMesh::n_processors(), pid_nodes_begin(), and pid_nodes_end().
Referenced by n_local_nodes(), and n_unpartitioned_nodes().
00206 { 00207 // We're either counting a processor's nodes or unpartitioned 00208 // nodes 00209 libmesh_assert (proc_id < libMesh::n_processors() || 00210 proc_id == DofObject::invalid_processor_id); 00211 00212 return static_cast<dof_id_type>(std::distance (this->pid_nodes_begin(proc_id), 00213 this->pid_nodes_end (proc_id))); 00214 }
| unsigned int libMesh::MeshBase::n_partitions | ( | ) | const [inline] |
Returns the number of partitions which have been defined via a call to either mesh.partition() or by building a Partitioner object and calling partition. Note that the partitioner objects are responsible for setting this value.
Definition at line 543 of file mesh_base.h.
References _n_parts.
Referenced by get_info(), libMesh::Partitioner::set_node_processor_ids(), libMesh::BoundaryInfo::sync(), libMesh::UnstructuredMesh::write(), libMesh::GMVIO::write_ascii_new_impl(), and libMesh::GMVIO::write_ascii_old_impl().
00544 { return _n_parts; }
| processor_id_type libMesh::MeshBase::n_processors | ( | ) | const [inline] |
- Returns:
- the number of processors used in the current simulation.
Definition at line 550 of file mesh_base.h.
Referenced by libMesh::ParallelMesh::add_elem(), libMesh::ParallelMesh::add_node(), libMesh::ParallelMesh::clear(), libMesh::UnstructuredMesh::create_pid_mesh(), get_info(), libMesh::UnstructuredMesh::read(), libMesh::ParallelMesh::update_parallel_id_counts(), libMesh::GMVIO::write_binary(), and libMesh::GMVIO::write_discontinuous_gmv().
00551 { return libmesh_cast_int<processor_id_type>(libMesh::n_processors()); }
| dof_id_type libMesh::MeshBase::n_sub_elem | ( | ) | const |
This function returns the number of elements that will be written out in the Tecplot format. 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 240 of file mesh_base.C.
References elements_begin(), elements_end(), and end.
00241 { 00242 dof_id_type ne=0; 00243 00244 const_element_iterator el = this->elements_begin(); 00245 const const_element_iterator end = this->elements_end(); 00246 00247 for (; el!=end; ++el) 00248 ne += (*el)->n_sub_elem(); 00249 00250 return ne; 00251 }
| subdomain_id_type libMesh::MeshBase::n_subdomains | ( | ) | const |
Returns the number of subdomains 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 190 of file mesh_base.C.
References subdomain_ids().
Referenced by get_info(), libMesh::XdrIO::write(), and libMesh::UnstructuredMesh::write().
00191 { 00192 // This requires an inspection on every processor 00193 parallel_only(); 00194 00195 std::set<subdomain_id_type> ids; 00196 00197 this->subdomain_ids (ids); 00198 00199 return ids.size(); 00200 }
| dof_id_type libMesh::MeshBase::n_unpartitioned_elem | ( | ) | const [inline] |
Returns the number of elements owned by no processor.
Definition at line 266 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and n_elem_on_proc().
Referenced by libMesh::ParallelMesh::parallel_n_elem().
00267 { return this->n_elem_on_proc (DofObject::invalid_processor_id); }
| dof_id_type libMesh::MeshBase::n_unpartitioned_nodes | ( | ) | const [inline] |
Returns the number of nodes owned by no processor.
Definition at line 192 of file mesh_base.h.
References libMesh::DofObject::invalid_processor_id, and n_nodes_on_proc().
Referenced by libMesh::ParallelMesh::parallel_n_nodes().
00193 { return this->n_nodes_on_proc (DofObject::invalid_processor_id); }
| virtual Node& libMesh::MeshBase::node | ( | const dof_id_type | i | ) | [pure virtual] |
Return a reference to the
node, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const Node& libMesh::MeshBase::node | ( | const dof_id_type | i | ) | const [pure virtual] |
Return a constant reference (for reading only) to the
node, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::VTKIO::cells_to_vtk(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::LegacyXdrIO::write_mesh(), and libMesh::GmshIO::write_mesh().
| virtual Node* libMesh::MeshBase::node_ptr | ( | const dof_id_type | i | ) | [pure virtual] |
Return a writeable pointer to the
node, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const Node* libMesh::MeshBase::node_ptr | ( | const dof_id_type | i | ) | const [pure virtual] |
Return a pointer to the
node, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::GMVIO::_read_one_cell(), libMesh::BoundaryInfo::add_node(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::TetGenMeshInterface::assign_nodes_to_elem(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::GMVIO::copy_nodal_solution(), libMesh::TriangleWrapper::copy_tri_to_mesh(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::distort(), libMesh::UNVIO::element_in(), libMesh::MeshData::foreign_id_to_node(), libMesh::DofMap::node_ptr(), libMesh::BoundaryInfo::operator=(), libMesh::VTKIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read_elements(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::DofMap::scatter_constraints(), libMesh::Partitioner::set_node_processor_ids(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::unpack(), libMesh::Elem::PackedElem::unpack(), and libMesh::Nemesis_IO_Helper::write_nodal_coordinates().
| virtual const_node_iterator libMesh::MeshBase::nodes_begin | ( | ) | const [pure virtual] |
const Node iterator accessor functions.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::nodes_begin | ( | ) | [pure virtual] |
non-const Node iterator accessor functions.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::UnstructuredMesh::all_first_order(), libMesh::EquationSystems::allgather(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::DofMap::distribute_dofs(), libMesh::LocationMap< T >::fill(), libMesh::TetGenMeshInterface::fill_pointlist(), libMesh::LocationMap< T >::init(), libMesh::EquationSystems::init(), libMesh::DofMap::invalidate_dofs(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::FEMSystem::mesh_position_set(), libMesh::UNVIO::node_out(), libMesh::System::read_legacy_data(), libMesh::VariationalMeshSmoother::readgr(), libMesh::EquationSystems::reinit(), libMesh::DofMap::reinit(), libMesh::MeshTools::Modification::rotate(), libMesh::MeshTools::Modification::scale(), libMesh::Partitioner::set_node_processor_ids(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::Modification::translate(), libMesh::MeshData::translate(), libMesh::Tree< N >::Tree(), libMesh::TriangleInterface::triangulate(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodes(), and libMesh::VariationalMeshSmoother::writegr().
| virtual const_node_iterator libMesh::MeshBase::nodes_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::nodes_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::EquationSystems::_add_system_to_nodes_and_elems(), libMesh::UnstructuredMesh::all_first_order(), libMesh::EquationSystems::allgather(), libMesh::MeshCommunication::assign_global_indices(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::DofMap::distribute_dofs(), libMesh::LocationMap< T >::fill(), libMesh::TetGenMeshInterface::fill_pointlist(), libMesh::LocationMap< T >::init(), libMesh::EquationSystems::init(), libMesh::DofMap::invalidate_dofs(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::FEMSystem::mesh_position_set(), libMesh::UNVIO::node_out(), libMesh::System::read_legacy_data(), libMesh::VariationalMeshSmoother::readgr(), libMesh::EquationSystems::reinit(), libMesh::DofMap::reinit(), libMesh::MeshTools::Modification::rotate(), libMesh::MeshTools::Modification::scale(), libMesh::Partitioner::set_node_processor_ids(), libMesh::Partitioner::single_partition(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::Modification::translate(), libMesh::MeshData::translate(), libMesh::Tree< N >::Tree(), libMesh::TriangleInterface::triangulate(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodes(), and libMesh::VariationalMeshSmoother::writegr().
| virtual const_element_iterator libMesh::MeshBase::not_active_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_active_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Partitioner::set_node_processor_ids().
| virtual const_element_iterator libMesh::MeshBase::not_active_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_active_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Partitioner::set_node_processor_ids().
| virtual const_element_iterator libMesh::MeshBase::not_ancestor_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_ancestor_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_ancestor_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_ancestor_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_level_elements_begin | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_level_elements_begin | ( | const unsigned int | level | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_level_elements_end | ( | const unsigned int | level | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_level_elements_end | ( | const unsigned int | level | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_local_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_local_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_local_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_local_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_subactive_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_subactive_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const_element_iterator libMesh::MeshBase::not_subactive_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::not_subactive_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
The default shallow assignment operator is a very bad idea, so we'll make it a compile-time error to try and do it from other classes and a link-time error to try and do it from this class. Use clone() if necessary.
| virtual dof_id_type libMesh::MeshBase::parallel_n_elem | ( | ) | const [pure virtual] |
Returns the number of elements in the mesh. The parallel_n_elem() function returns a newly calculated parallel-synchronized value on distributed meshes, and so must be called in parallel only.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Nemesis_IO_Helper::initialize(), and libMesh::Nemesis_IO::read().
| virtual dof_id_type libMesh::MeshBase::parallel_n_nodes | ( | ) | const [pure virtual] |
Returns the number of nodes in the mesh. This function and others must be defined in derived classes since the MeshBase class has no specific storage for nodes or elements. The parallel_n_nodes() function returns a newly calculated parallel-synchronized value on distributed meshes, and so must be called in parallel only.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Nemesis_IO_Helper::initialize(), and libMesh::Nemesis_IO::read().
| void libMesh::MeshBase::partition | ( | const unsigned int | n_parts = libMesh::n_processors() |
) | [virtual] |
Call the default partitioner (currently metis_partition()).
Definition at line 308 of file mesh_base.C.
References is_serial(), partitioner(), recalculate_n_partitions(), skip_partitioning(), and update_post_partitioning().
Referenced by prepare_for_use().
00309 { 00310 // NULL partitioner means don't partition 00311 // Non-serial meshes aren't ready for partitioning yet. 00312 if(!skip_partitioning() && 00313 partitioner().get() && 00314 this->is_serial()) 00315 { 00316 partitioner()->partition (*this, n_parts); 00317 } 00318 else 00319 { 00320 // Make sure locally cached partition count 00321 this->recalculate_n_partitions(); 00322 00323 // Make sure any other locally cached data is correct 00324 this->update_post_partitioning(); 00325 } 00326 }
| virtual AutoPtr<Partitioner>& libMesh::MeshBase::partitioner | ( | ) | [inline, virtual] |
A partitioner to use at each prepare_for_use()
Definition at line 104 of file mesh_base.h.
References _partitioner.
Referenced by libMesh::AdjointRefinementEstimator::estimate_error(), partition(), and libMesh::BoundaryInfo::sync().
00104 { return _partitioner; }
| virtual const_element_iterator libMesh::MeshBase::pid_elements_begin | ( | const processor_id_type | proc_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::pid_elements_begin | ( | const processor_id_type | proc_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by n_elem_on_proc(), libMesh::MeshTools::processor_bounding_box(), libMesh::BoundaryInfo::sync(), and libMesh::MeshTools::weight().
| virtual const_element_iterator libMesh::MeshBase::pid_elements_end | ( | const processor_id_type | proc_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::pid_elements_end | ( | const processor_id_type | proc_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by n_elem_on_proc(), libMesh::MeshTools::processor_bounding_box(), libMesh::BoundaryInfo::sync(), and libMesh::MeshTools::weight().
| virtual const_node_iterator libMesh::MeshBase::pid_nodes_begin | ( | const processor_id_type | proc_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::pid_nodes_begin | ( | const processor_id_type | proc_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::bounding_box(), and n_nodes_on_proc().
| virtual const_node_iterator libMesh::MeshBase::pid_nodes_end | ( | const processor_id_type | proc_id | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual node_iterator libMesh::MeshBase::pid_nodes_end | ( | const processor_id_type | proc_id | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::bounding_box(), and n_nodes_on_proc().
| virtual const Point& libMesh::MeshBase::point | ( | const dof_id_type | i | ) | const [pure virtual] |
Return a constant reference (for reading only) to the
point, which should be present in this processor's subset of the mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::subdomain_bounding_box(), libMesh::TetGenIO::write(), libMesh::FroIO::write(), libMesh::TecplotIO::write_ascii(), libMesh::MEDITIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GnuPlotIO::write_solution(), and libMesh::DivaIO::write_stream().
| const PointLocatorBase & libMesh::MeshBase::point_locator | ( | ) | const |
returns a pointer to a PointLocatorBase object for this mesh, constructing a master PointLocator first if necessary. This should never be used in threaded or non-parallel_only code, and so is deprecated.
Definition at line 348 of file mesh_base.C.
References _point_locator, libMesh::PointLocatorBase::build(), libMesh::AutoPtr< Tp >::get(), libMesh::Threads::in_threads, libMesh::AutoPtr< Tp >::reset(), and libMeshEnums::TREE.
00349 { 00350 libmesh_deprecated(); 00351 00352 if (_point_locator.get() == NULL) 00353 { 00354 // PointLocator construction may not be safe within threads 00355 libmesh_assert(!Threads::in_threads); 00356 00357 _point_locator.reset (PointLocatorBase::build(TREE, *this).release()); 00358 } 00359 00360 return *_point_locator; 00361 }
| void libMesh::MeshBase::prepare_for_use | ( | const bool | skip_renumber_nodes_and_elements = false |
) |
Prepare a newly created (or read) mesh for use. This involves 3 steps: 1.) call find_neighbors() 2.) call partition() 3.) call renumber_nodes_and_elements()
The argument to skip renumbering is now deprecated - to prevent a mesh from being renumbered, set allow_renumbering(false).
Definition at line 90 of file mesh_base.C.
References _is_prepared, _skip_renumber_nodes_and_elements, allow_renumbering(), clear_point_locator(), libMesh::CommWorld, delete_remote_elements(), find_neighbors(), is_serial(), libMesh::Parallel::Communicator::max(), mesh_dimension(), partition(), renumber_nodes_and_elements(), set_mesh_dimension(), update_parallel_id_counts(), and libMesh::Parallel::Communicator::verify().
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::MeshRefinement::coarsen_elements(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshTools::Modification::flatten(), libMesh::UnstructuredMesh::read(), libMesh::GMVIO::read(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::SerialMesh::stitch_meshes(), libMesh::BoundaryInfo::sync(), libMesh::MeshRefinement::uniformly_coarsen(), and libMesh::MeshRefinement::uniformly_refine().
00091 { 00092 parallel_only(); 00093 00094 // A distributed mesh may have processors with no elements (or 00095 // processors with no elements of higher dimension, if we ever 00096 // support mixed-dimension meshes), but we want consistent 00097 // mesh_dimension anyways. 00098 libmesh_assert(CommWorld.verify(this->is_serial())); 00099 00100 if (!this->is_serial()) 00101 { 00102 unsigned int dim = this->mesh_dimension(); 00103 CommWorld.max(dim); 00104 this->set_mesh_dimension(dim); 00105 } 00106 00107 // Renumber the nodes and elements so that they in contiguous 00108 // blocks. By default, _skip_renumber_nodes_and_elements is false. 00109 // 00110 // We may currently change that by passing 00111 // skip_renumber_nodes_and_elements==true to this function, but we 00112 // should use the allow_renumbering() accessor instead. 00113 // 00114 // Instances where you if prepare_for_use() should not renumber the nodes 00115 // and elements include reading in e.g. an xda/r or gmv file. In 00116 // this case, the ordering of the nodes may depend on an accompanying 00117 // solution, and the node ordering cannot be changed. 00118 00119 if (skip_renumber_nodes_and_elements) 00120 { 00121 libmesh_deprecated(); 00122 this->allow_renumbering(false); 00123 } 00124 00125 // Mesh modification operations might not leave us with consistent 00126 // id counts, but our partitioner might need that consistency. 00127 if(!_skip_renumber_nodes_and_elements) 00128 this->renumber_nodes_and_elements(); 00129 else 00130 this->update_parallel_id_counts(); 00131 00132 // Let all the elements find their neighbors 00133 this->find_neighbors(); 00134 00135 // Partition the mesh. 00136 this->partition(); 00137 00138 // If we're using ParallelMesh, we'll want it parallelized. 00139 this->delete_remote_elements(); 00140 00141 if(!_skip_renumber_nodes_and_elements) 00142 this->renumber_nodes_and_elements(); 00143 00144 // Reset our PointLocator. This needs to happen any time the elements 00145 // in the underlying elements in the mesh have changed, so we do it here. 00146 this->clear_point_locator(); 00147 00148 // The mesh is now prepared for use. 00149 _is_prepared = true; 00150 }
| void libMesh::MeshBase::print_info | ( | std::ostream & | os = libMesh::out |
) | const |
Prints relevant information about the mesh.
Definition at line 294 of file mesh_base.C.
References get_info().
Referenced by libMesh::InfElemBuilder::build_inf_elem(), and libMesh::operator<<().
00295 { 00296 os << this->get_info() 00297 << std::endl; 00298 }
| processor_id_type libMesh::MeshBase::processor_id | ( | ) | const [inline] |
- Returns:
- the subdomain id for this processor.
Definition at line 556 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::DofMap::build_sparsity(), libMesh::ParallelMesh::clear(), libMesh::UnstructuredMesh::find_neighbors(), get_info(), libMesh::SparsityPattern::Build::join(), libMesh::SparsityPattern::Build::operator()(), libMesh::UnstructuredMesh::read(), libMesh::MeshData::read_xdr(), libMesh::GMVIO::write_discontinuous_gmv(), and libMesh::System::write_header().
00557 { return libmesh_cast_int<processor_id_type>(libMesh::processor_id()); }
| virtual Elem* libMesh::MeshBase::query_elem | ( | const dof_id_type | i | ) | [pure virtual] |
Return a writeable pointer to the
element, or NULL if no such element exists in this processor's mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const Elem* libMesh::MeshBase::query_elem | ( | const dof_id_type | i | ) | const [pure virtual] |
Return a pointer to the
element, or NULL if no such element exists in this processor's mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::Parallel::unpack(), and libMesh::Elem::PackedElem::unpack().
| virtual Node* libMesh::MeshBase::query_node_ptr | ( | const dof_id_type | i | ) | [pure virtual] |
Return a writeable pointer to the
node, or NULL if no such node exists in this processor's mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual const Node* libMesh::MeshBase::query_node_ptr | ( | const dof_id_type | i | ) | const [pure virtual] |
Return a pointer to the
node, or NULL if no such node exists in this processor's mesh data structure.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Parallel::unpack().
| virtual void libMesh::MeshBase::read | ( | const std::string & | name, | |
| MeshData * | mesh_data = NULL, |
|||
| bool | skip_renumber_nodes_and_elements = false | |||
| ) | [pure virtual] |
Interfaces for reading/writing a mesh to/from a file. Must be implemented in derived classes.
Implemented in libMesh::UnstructuredMesh.
| unsigned int libMesh::MeshBase::recalculate_n_partitions | ( | ) |
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 328 of file mesh_base.C.
References _n_parts, active_elements_begin(), active_elements_end(), libMesh::CommWorld, end, libMesh::Parallel::Communicator::max(), and std::max().
Referenced by partition().
00329 { 00330 const_element_iterator el = this->active_elements_begin(); 00331 const const_element_iterator end = this->active_elements_end(); 00332 00333 unsigned int max_proc_id=0; 00334 00335 for (; el!=end; ++el) 00336 max_proc_id = std::max(max_proc_id, static_cast<unsigned int>((*el)->processor_id())); 00337 00338 // The number of partitions is one more than the max processor ID. 00339 _n_parts = max_proc_id+1; 00340 00341 CommWorld.max(_n_parts); 00342 00343 return _n_parts; 00344 }
| virtual void libMesh::MeshBase::redistribute | ( | ) | [inline, virtual] |
Redistribute elements between processors. This gets called automatically by the Partitioner, and is a no-op in the case of a SerialMesh or serialized ParallelMesh
Reimplemented in libMesh::ParallelMesh.
Definition at line 487 of file mesh_base.h.
Referenced by libMesh::Partitioner::partition().
| virtual void libMesh::MeshBase::renumber_elem | ( | dof_id_type | old_id, | |
| dof_id_type | new_id | |||
| ) | [pure virtual] |
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.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshCommunication::make_elems_parallel_consistent().
| virtual void libMesh::MeshBase::renumber_node | ( | dof_id_type | old_id, | |
| dof_id_type | new_id | |||
| ) | [pure virtual] |
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.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshCommunication::make_node_ids_parallel_consistent().
| virtual void libMesh::MeshBase::renumber_nodes_and_elements | ( | ) | [pure virtual] |
After partitoning a mesh it is useful to renumber the nodes and elements so that they lie in contiguous blocks on the processors. This method does just that.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::UnstructuredMesh::contract(), libMesh::ErrorVector::plot_error(), and prepare_for_use().
| virtual void libMesh::MeshBase::reserve_elem | ( | const dof_id_type | ne | ) | [pure virtual] |
Reserves space for a known number of elements. Note that this method may or may not do anything, depending on the actual 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.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::XdrIO::read(), libMesh::ExodusII_IO::read(), libMesh::LegacyXdrIO::read_mesh(), and libMesh::GmshIO::read_mesh().
| virtual void libMesh::MeshBase::reserve_nodes | ( | const dof_id_type | nn | ) | [pure virtual] |
Reserves space for a known number of nodes. Note that this method may or may not do anything, depending on the actual 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.
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::XdrIO::read(), libMesh::ExodusII_IO::read(), libMesh::LegacyXdrIO::read_mesh(), and libMesh::GmshIO::read_mesh().
| void libMesh::MeshBase::set_mesh_dimension | ( | unsigned int | d | ) | [inline] |
Resets the logical dimension of the mesh.
Definition at line 150 of file mesh_base.h.
References _dim.
Referenced by libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::TriangleWrapper::copy_tri_to_mesh(), prepare_for_use(), libMesh::VTKIO::read(), libMesh::TetGenIO::read(), libMesh::Nemesis_IO::read(), libMesh::GMVIO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read_elements(), libMesh::UNVIO::read_implementation(), libMesh::LegacyXdrIO::read_mesh(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::BoundaryInfo::sync(), and libMesh::TriangleInterface::triangulate().
00151 { _dim = d; }
| unsigned int& libMesh::MeshBase::set_n_partitions | ( | ) | [inline, protected] |
Returns a writeable reference to the number of partitions.
Definition at line 825 of file mesh_base.h.
References _n_parts.
Referenced by libMesh::Partitioner::partition(), libMesh::Partitioner::repartition(), and libMesh::BoundaryInfo::sync().
00826 { return _n_parts; }
| bool libMesh::MeshBase::skip_partitioning | ( | ) | const [inline] |
Definition at line 517 of file mesh_base.h.
References _skip_partitioning.
Referenced by partition().
00517 { return _skip_partitioning; }
| void libMesh::MeshBase::skip_partitioning | ( | bool | skip | ) | [inline] |
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 Serial Mesh _before_ the first partitioning has happened... because no elements would get assigned to your processor pool.
Note that turning on skip_partitioning() can have adverse effects on your performance when using AMR... ie you could get large load imbalances.
However you might still want to use this if the communication and computation of the rebalance and repartition is too high for your application.
Definition at line 516 of file mesh_base.h.
References _skip_partitioning.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements().
00516 { _skip_partitioning = skip; }
| unsigned int libMesh::MeshBase::spatial_dimension | ( | ) | const [inline] |
Returns the spatial dimension of the mesh. Note that this is defined at compile time in the header libmesh_common.h.
Definition at line 157 of file mesh_base.h.
Referenced by libMesh::ExactSolution::_compute_error(), get_info(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::UNVIO::node_out(), libMesh::MeshTools::Modification::scale(), libMesh::MeshTools::subdomain_bounding_box(), and libMesh::Nemesis_IO_Helper::write_exodus_initialization_info().
| AutoPtr< PointLocatorBase > libMesh::MeshBase::sub_point_locator | ( | ) | const |
returns a pointer to a subordinate 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 364 of file mesh_base.C.
References _point_locator, libMesh::PointLocatorBase::build(), libMesh::AutoPtr< Tp >::get(), libMesh::Threads::in_threads, libMesh::AutoPtr< Tp >::reset(), and libMeshEnums::TREE.
Referenced by libMesh::DofMap::create_dof_constraints(), libMesh::MeshFunction::init(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), and libMesh::System::point_value().
00365 { 00366 if (_point_locator.get() == NULL) 00367 { 00368 // PointLocator construction may not be safe within threads 00369 libmesh_assert(!Threads::in_threads); 00370 00371 _point_locator.reset (PointLocatorBase::build(TREE, *this).release()); 00372 } 00373 00374 return PointLocatorBase::build(TREE, *this, _point_locator.get()); 00375 }
| virtual const_element_iterator libMesh::MeshBase::subactive_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::subactive_elements_begin | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Partitioner::set_node_processor_ids().
| virtual const_element_iterator libMesh::MeshBase::subactive_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::subactive_elements_end | ( | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::Partitioner::set_node_processor_ids().
| void libMesh::MeshBase::subdomain_ids | ( | std::set< subdomain_id_type > & | ids | ) | const |
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 171 of file mesh_base.C.
References active_elements_begin(), active_elements_end(), libMesh::CommWorld, end, and libMesh::Parallel::Communicator::set_union().
Referenced by n_subdomains(), and libMesh::TecplotIO::TecplotIO().
00172 { 00173 // This requires an inspection on every processor 00174 parallel_only(); 00175 00176 ids.clear(); 00177 00178 const_element_iterator el = this->active_elements_begin(); 00179 const const_element_iterator end = this->active_elements_end(); 00180 00181 for (; el!=end; ++el) 00182 ids.insert((*el)->subdomain_id()); 00183 00184 // Some subdomains may only live on other processors 00185 CommWorld.set_union(ids); 00186 }
| const std::string & libMesh::MeshBase::subdomain_name | ( | subdomain_id_type | id | ) | const |
Definition at line 391 of file mesh_base.C.
References _block_id_to_name.
00392 { 00393 // An empty string to return when no matching subdomain name is found 00394 static const std::string empty; 00395 00396 std::map<subdomain_id_type, std::string>::const_iterator iter = _block_id_to_name.find(id); 00397 if (iter == _block_id_to_name.end()) 00398 return empty; 00399 else 00400 return iter->second; 00401 }
| std::string & libMesh::MeshBase::subdomain_name | ( | subdomain_id_type | id | ) |
Returns a writable reference for getting/setting an optional name for a subdomain.
Definition at line 386 of file mesh_base.C.
References _block_id_to_name.
Referenced by DMLibMeshSetSystem(), libMesh::ExodusII_IO::read(), libMesh::TecplotIO::write_binary(), and libMesh::ExodusII_IO_Helper::write_elements().
00387 { 00388 return _block_id_to_name[id]; 00389 }
| virtual const_element_iterator libMesh::MeshBase::type_elements_begin | ( | const ElemType | type | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::type_elements_begin | ( | const ElemType | type | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::n_elem_of_type(), and libMesh::MeshTools::n_non_subactive_elem_of_type_at_level().
| virtual const_element_iterator libMesh::MeshBase::type_elements_end | ( | const ElemType | type | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::type_elements_end | ( | const ElemType | type | ) | [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshTools::n_elem_of_type(), and libMesh::MeshTools::n_non_subactive_elem_of_type_at_level().
| virtual const_element_iterator libMesh::MeshBase::unpartitioned_elements_begin | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::unpartitioned_elements_begin | ( | ) | [pure virtual] |
| virtual const_element_iterator libMesh::MeshBase::unpartitioned_elements_end | ( | ) | const [pure virtual] |
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
| virtual element_iterator libMesh::MeshBase::unpartitioned_elements_end | ( | ) | [pure virtual] |
| virtual void libMesh::MeshBase::update_parallel_id_counts | ( | ) | [pure virtual] |
Updates parallel caches so that methods like n_elem() accurately reflect changes on other processors
Implemented in libMesh::ParallelMesh, and libMesh::SerialMesh.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::MeshRefinement::_refine_elements(), and prepare_for_use().
| virtual void libMesh::MeshBase::update_post_partitioning | ( | ) | [inline, virtual] |
Recalculate any cached data after elements and nodes have been repartitioned.
Reimplemented in libMesh::ParallelMesh.
Definition at line 493 of file mesh_base.h.
Referenced by libMesh::Partitioner::partition(), partition(), and libMesh::Nemesis_IO::read().
| virtual void libMesh::MeshBase::write | ( | const std::string & | name, | |
| MeshData * | mesh_data = NULL | |||
| ) | [pure virtual] |
Implemented in libMesh::UnstructuredMesh.
Friends And Related Function Documentation
friend class BoundaryInfo [friend] |
Make the BoundaryInfo class a friend so that it can create and interact with BoundaryMesh.
Definition at line 895 of file mesh_base.h.
| std::ostream& operator<< | ( | std::ostream & | os, | |
| const MeshBase & | m | |||
| ) | [friend] |
Equivalent to calling print_info() above, but now you can write: Mesh mesh; libMesh::out << mesh << std::endl;
friend class Partitioner [friend] |
The partitioner class is a friend so that it can set the number of partitions.
Definition at line 889 of file mesh_base.h.
Member Data Documentation
std::map<subdomain_id_type, std::string> libMesh::MeshBase::_block_id_to_name [protected] |
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 883 of file mesh_base.h.
Referenced by get_id_by_name(), and subdomain_name().
unsigned int libMesh::MeshBase::_dim [protected] |
The logical dimension of the mesh.
Definition at line 842 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::UnstructuredMesh::find_neighbors(), mesh_dimension(), MeshBase(), and set_mesh_dimension().
bool libMesh::MeshBase::_is_prepared [protected] |
Flag indicating if the mesh has been prepared for use.
Definition at line 847 of file mesh_base.h.
Referenced by libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), clear(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), is_prepared(), and prepare_for_use().
unsigned int libMesh::MeshBase::_n_parts [protected] |
The number of partitions the mesh has. This is set by the partitioners, and may not be changed directly by the user. **NOTE** The number of partitions *need not* equal libMesh::n_processors(), consider for example the case where you simply want to partition a mesh on one processor and view the result in GMV.
Definition at line 837 of file mesh_base.h.
Referenced by clear(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), n_partitions(), recalculate_n_partitions(), and set_n_partitions().
AutoPtr<Partitioner> libMesh::MeshBase::_partitioner [protected] |
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 864 of file mesh_base.h.
Referenced by MeshBase(), libMesh::ParallelMesh::ParallelMesh(), partitioner(), and libMesh::SerialMesh::SerialMesh().
AutoPtr<PointLocatorBase> libMesh::MeshBase::_point_locator [mutable, protected] |
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 856 of file mesh_base.h.
Referenced by clear_point_locator(), point_locator(), and sub_point_locator().
bool libMesh::MeshBase::_skip_partitioning [protected] |
If this is true then no partitioning should be done.
Definition at line 869 of file mesh_base.h.
Referenced by skip_partitioning().
bool libMesh::MeshBase::_skip_renumber_nodes_and_elements [protected] |
If this is true then renumbering will be kept to a miniumum.
This is set when prepare_for_use() is called.
Definition at line 876 of file mesh_base.h.
Referenced by allow_renumbering(), prepare_for_use(), libMesh::SerialMesh::renumber_nodes_and_elements(), and libMesh::ParallelMesh::renumber_nodes_and_elements().
This class holds the boundary information. It can store nodes, edges, and faces with a corresponding id that facilitates setting boundary conditions.
Definition at line 99 of file mesh_base.h.
Referenced by libMesh::MeshRefinement::_coarsen_elements(), libMesh::UnstructuredMesh::all_first_order(), libMesh::UnstructuredMesh::all_second_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::MeshTools::Modification::change_boundary_id(), clear(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::FEGenericBase< OutputType >::compute_periodic_constraints(), libMesh::FEAbstract::compute_periodic_node_constraints(), libMesh::UnstructuredMesh::create_submesh(), libMesh::SerialMesh::delete_elem(), libMesh::ParallelMesh::delete_elem(), libMesh::SerialMesh::delete_node(), libMesh::ParallelMesh::delete_node(), libMesh::MeshTools::Modification::flatten(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_discontinuous(), libMesh::BoundaryProjectSolution::operator()(), libMesh::Parallel::pack(), libMesh::Parallel::packable_size(), libMesh::ParallelMesh::ParallelMesh(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::AbaqusIO::read(), libMesh::LegacyXdrIO::read_mesh(), libMesh::GmshIO::read_mesh(), libMesh::SerialMesh::renumber_nodes_and_elements(), libMesh::ParallelMesh::renumber_nodes_and_elements(), libMesh::SerialMesh::SerialMesh(), libMesh::SerialMesh::stitch_meshes(), libMesh::Elem::topological_neighbor(), libMesh::Parallel::unpack(), libMesh::XdrIO::write(), libMesh::FroIO::write(), libMesh::LegacyXdrIO::write_mesh(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::XdrIO::write_serialized_bcs(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::LegacyXdrIO::write_soln(), and libMesh::DivaIO::write_stream().
The documentation for this class was generated from the following files:
Site Created By: libMesh Developers
Last modified: February 05 2013 19:55:29 UTC
Hosted By: