$extrastylesheet
#include <checkpoint_io.h>

Public Types | |
| typedef largest_id_type | xdr_id_type |
| typedef uint32_t | header_id_type |
Public Member Functions | |
| CheckpointIO (MeshBase &, const bool=false) | |
| CheckpointIO (const MeshBase &, const bool=false) | |
| virtual | ~CheckpointIO () |
| virtual void | read (const std::string &) |
| virtual void | write (const std::string &) |
| bool | binary () const |
| bool & | binary () |
| const std::string & | version () const |
| std::string & | version () |
| virtual void | write_equation_systems (const std::string &, const EquationSystems &, const std::set< std::string > *system_names=NULL) |
| virtual void | write_nodal_data (const std::string &, const std::vector< Number > &, const std::vector< std::string > &) |
| unsigned int & | ascii_precision () |
| const Parallel::Communicator & | comm () const |
| processor_id_type | n_processors () const |
| processor_id_type | processor_id () const |
Protected Member Functions | |
| MeshBase & | mesh () |
| void | set_n_partitions (unsigned int n_parts) |
| void | skip_comment_lines (std::istream &in, const char comment_start) |
| const MeshBase & | mesh () const |
Protected Attributes | |
| std::vector< bool > | elems_of_dimension |
| const bool | _is_parallel_format |
| const Parallel::Communicator & | _communicator |
Private Member Functions | |
| void | write_subdomain_names (Xdr &io) const |
| void | write_connectivity (Xdr &io) const |
| void | write_nodes (Xdr &io) const |
| void | write_bcs (Xdr &io) const |
| void | write_nodesets (Xdr &io) const |
| void | write_bc_names (Xdr &io, const BoundaryInfo &info, bool is_sideset) const |
| void | read_subdomain_names (Xdr &io) |
| void | read_connectivity (Xdr &io) |
| void | read_nodes (Xdr &io) |
| void | read_bcs (Xdr &io) |
| void | read_nodesets (Xdr &io) |
| void | read_bc_names (Xdr &io, BoundaryInfo &info, bool is_sideset) |
| unsigned int | n_active_levels_on_processor (const MeshBase &mesh) const |
Private Attributes | |
| bool | _binary |
| std::string | _version |
Definition at line 50 of file checkpoint_io.h.
| typedef uint32_t libMesh::CheckpointIO::header_id_type |
Definition at line 59 of file checkpoint_io.h.
Definition at line 56 of file checkpoint_io.h.
| libMesh::CheckpointIO::CheckpointIO | ( | MeshBase & | mesh, |
| const bool | binary_in = false |
||
| ) | [explicit] |
Constructor. Takes a writeable reference to a mesh object. This is the constructor required to read a mesh. The optional parameter binary can be used to switch between ASCII (false, the default) or binary (true) files.
Definition at line 50 of file checkpoint_io.C.
| libMesh::CheckpointIO::CheckpointIO | ( | const MeshBase & | mesh, |
| const bool | binary_in = false |
||
| ) | [explicit] |
Constructor. Takes a reference to a constant mesh object. This constructor will only allow us to write the mesh. The optional parameter binary can be used to switch between ASCII (false, the default) or binary (true) files.
Definition at line 61 of file checkpoint_io.C.
: MeshOutput<MeshBase>(mesh,/* is_parallel_format = */ true), ParallelObject (mesh), _binary (binary_in) { }
| libMesh::CheckpointIO::~CheckpointIO | ( | ) | [virtual] |
| unsigned int& libMesh::MeshOutput< MeshBase >::ascii_precision | ( | ) | [inherited] |
Return/set the precision to use when writing ASCII files.
By default we use numeric_limits<Real>::digits10 + 2, which should be enough to write out to ASCII and get the exact same Real back when reading in.
Referenced by libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), and libMesh::GMVIO::write_ascii_old_impl().
| bool libMesh::CheckpointIO::binary | ( | ) | const [inline] |
| bool& libMesh::CheckpointIO::binary | ( | ) | [inline] |
| const Parallel::Communicator& libMesh::ParallelObject::comm | ( | ) | const [inline, inherited] |
Parallel::Communicator object used by this mesh. Definition at line 86 of file parallel_object.h.
References libMesh::ParallelObject::_communicator.
Referenced by libMesh::__libmesh_petsc_diff_solver_monitor(), libMesh::__libmesh_petsc_diff_solver_residual(), libMesh::__libmesh_petsc_snes_residual(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::ExactSolution::_compute_error(), libMesh::MetisPartitioner::_do_partition(), libMesh::ParmetisPartitioner::_do_repartition(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< T >::_petsc_shell_matrix_mult_add(), libMesh::EquationSystems::_read_impl(), libMesh::MeshRefinement::_refine_elements(), libMesh::ImplicitSystem::add_matrix(), libMesh::System::add_vector(), libMesh::UnstructuredMesh::all_second_order(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assemble_qoi(), libMesh::MeshCommunication::assign_global_indices(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::DofMap::attach_matrix(), libMesh::MeshTools::bounding_box(), libMesh::MeshBase::cache_elem_dims(), libMesh::System::calculate_norm(), libMesh::MeshRefinement::coarsen_elements(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Problem_Interface::computeF(), libMesh::Problem_Interface::computeJacobian(), libMesh::Problem_Interface::computePreconditioner(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::MeshCommunication::delete_remote_elements(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshSetSystem_libMesh(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::WeightedPatchRecoveryErrorEstimator::estimate_error(), libMesh::PatchRecoveryErrorEstimator::estimate_error(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::LocationMap< T >::init(), libMesh::TimeSolver::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::EigenSystem::init_data(), libMesh::EigenSystem::init_matrices(), libMesh::ParmetisPartitioner::initialize(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::ParallelMesh::libmesh_assert_valid_parallel_flags(), libMesh::MeshTools::libmesh_assert_valid_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), 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_flags_parallel_consistent(), libMesh::MeshCommunication::make_node_ids_parallel_consistent(), libMesh::MeshCommunication::make_node_proc_ids_parallel_consistent(), libMesh::MeshCommunication::make_nodes_parallel_consistent(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::FEMSystem::mesh_position_set(), libMesh::MeshSerializer::MeshSerializer(), libMesh::ParallelMesh::n_active_elem(), libMesh::MeshTools::n_active_levels(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::CondensedEigenSystem::n_global_non_condensed_dofs(), libMesh::MeshTools::n_levels(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::MeshTools::n_p_levels(), libMesh::ParallelMesh::parallel_max_elem_id(), libMesh::ParallelMesh::parallel_max_node_id(), libMesh::ParallelMesh::parallel_n_elem(), libMesh::ParallelMesh::parallel_n_nodes(), libMesh::Partitioner::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::petsc_auto_fieldsplit(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshBase::prepare_for_use(), libMesh::System::project_vector(), libMesh::Nemesis_IO::read(), libMesh::XdrIO::read(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::MeshBase::recalculate_n_partitions(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshBase::subdomain_ids(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id(), libMesh::MeshRefinement::test_level_one(), libMesh::MeshRefinement::test_unflagged(), libMesh::MeshTools::total_weight(), libMesh::NameBasedIO::write(), write(), libMesh::XdrIO::write(), libMesh::LegacyXdrIO::write_mesh(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), and libMesh::DivaIO::write_stream().
{ return _communicator; }
| MeshBase & libMesh::MeshInput< MeshBase >::mesh | ( | ) | [protected, inherited] |
Returns the object as a writeable reference.
Referenced by libMesh::GMVIO::_read_materials(), libMesh::GMVIO::_read_nodes(), libMesh::GMVIO::_read_one_cell(), libMesh::AbaqusIO::assign_boundary_node_ids(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::AbaqusIO::assign_subdomain_ids(), libMesh::VTKIO::cells_to_vtk(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::GMVIO::copy_nodal_solution(), libMesh::TetGenIO::element_in(), libMesh::UNVIO::elements_in(), libMesh::UNVIO::elements_out(), libMesh::UNVIO::groups_in(), libMesh::TetGenIO::node_in(), libMesh::UNVIO::nodes_in(), libMesh::UNVIO::nodes_out(), libMesh::VTKIO::nodes_to_vtk(), libMesh::AbaqusIO::read(), libMesh::NameBasedIO::read(), libMesh::TetGenIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::read(), read(), libMesh::XdrIO::read(), libMesh::VTKIO::read(), libMesh::LegacyXdrIO::read_ascii(), read_bcs(), read_connectivity(), libMesh::AbaqusIO::read_elements(), libMesh::UCDIO::read_implementation(), libMesh::UNVIO::read_implementation(), libMesh::GmshIO::read_mesh(), libMesh::LegacyXdrIO::read_mesh(), libMesh::AbaqusIO::read_nodes(), read_nodes(), read_nodesets(), libMesh::XdrIO::read_serialized_bcs(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), read_subdomain_names(), libMesh::NameBasedIO::write(), libMesh::TetGenIO::write(), libMesh::Nemesis_IO::write(), libMesh::ExodusII_IO::write(), write(), libMesh::XdrIO::write(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), write_bcs(), libMesh::GMVIO::write_binary(), write_connectivity(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::UCDIO::write_implementation(), libMesh::GmshIO::write_mesh(), libMesh::LegacyXdrIO::write_mesh(), libMesh::UCDIO::write_nodal_data(), libMesh::VTKIO::write_nodal_data(), libMesh::Nemesis_IO::write_nodal_data(), libMesh::NameBasedIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_common(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), write_nodes(), write_nodesets(), libMesh::XdrIO::write_parallel(), libMesh::GmshIO::write_post(), libMesh::XdrIO::write_serialized_bcs(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::LegacyXdrIO::write_soln(), and write_subdomain_names().
| const MeshBase & libMesh::MeshOutput< MeshBase >::mesh | ( | ) | const [protected, inherited] |
Returns the object as a read-only reference.
Referenced by libMesh::TecplotIO::elem_dimension(), libMesh::FroIO::write(), libMesh::DivaIO::write(), libMesh::TecplotIO::write(), libMesh::PostscriptIO::write(), libMesh::MEDITIO::write(), libMesh::EnsightIO::write(), libMesh::MEDITIO::write_ascii(), libMesh::TecplotIO::write_ascii(), libMesh::TecplotIO::write_binary(), libMesh::EnsightIO::write_geometry_ascii(), libMesh::TecplotIO::write_nodal_data(), libMesh::MEDITIO::write_nodal_data(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::GnuPlotIO::write_solution(), libMesh::DivaIO::write_stream(), and libMesh::EnsightIO::write_vector_ascii().
| unsigned int libMesh::CheckpointIO::n_active_levels_on_processor | ( | const MeshBase & | mesh | ) | const [private] |
Return the number of levels of refinement in the active mesh on this processor. NOTE: This includes _all_ elements on this processor even those not owned by this processor! Implemented by looping over all the active elements and finding the maximum level.
Definition at line 731 of file checkpoint_io.C.
References libMesh::MeshBase::active_elements_begin(), libMesh::MeshBase::active_elements_end(), std::max(), and libMesh::MeshTools::max_level().
Referenced by write_connectivity().
{
unsigned int max_level = 0;
MeshBase::const_element_iterator el = mesh.active_elements_begin();
const MeshBase::const_element_iterator end_el = mesh.active_elements_end();
for( ; el != end_el; ++el)
max_level = std::max((*el)->level(), max_level);
return max_level + 1;
}
| processor_id_type libMesh::ParallelObject::n_processors | ( | ) | const [inline, inherited] |
Definition at line 92 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::size().
Referenced by libMesh::ParmetisPartitioner::_do_repartition(), libMesh::ParallelMesh::add_elem(), libMesh::ParallelMesh::add_node(), libMesh::LaplaceMeshSmoother::allgather_graph(), libMesh::FEMSystem::assembly(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::ParallelMesh::assign_unique_ids(), libMesh::AztecLinearSolver< T >::AztecLinearSolver(), libMesh::ParallelMesh::clear(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::UnstructuredMesh::create_pid_mesh(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::EnsightIO::EnsightIO(), libMesh::MeshBase::get_info(), libMesh::EquationSystems::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::Nemesis_IO_Helper::initialize(), libMesh::MeshTools::libmesh_assert_valid_dof_ids(), libMesh::MeshTools::libmesh_assert_valid_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::DofMap::local_variable_indices(), libMesh::MeshBase::n_active_elem_on_proc(), libMesh::MeshBase::n_elem_on_proc(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::Partitioner::partition(), libMesh::MeshBase::partition(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::PetscLinearSolver< T >::PetscLinearSolver(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::MeshTools::processor_bounding_box(), libMesh::System::project_vector(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), read(), libMesh::XdrIO::read(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vector(), libMesh::Partitioner::repartition(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::BoundaryInfo::sync(), libMesh::ParallelMesh::update_parallel_id_counts(), write(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bcs(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), and libMesh::XdrIO::write_serialized_nodesets().
{ return cast_int<processor_id_type>(_communicator.size()); }
| processor_id_type libMesh::ParallelObject::processor_id | ( | ) | const [inline, inherited] |
Definition at line 98 of file parallel_object.h.
References libMesh::ParallelObject::_communicator, and libMesh::Parallel::Communicator::rank().
Referenced by libMesh::MetisPartitioner::_do_partition(), libMesh::EquationSystems::_read_impl(), libMesh::SerialMesh::active_local_elements_begin(), libMesh::ParallelMesh::active_local_elements_begin(), libMesh::SerialMesh::active_local_elements_end(), libMesh::ParallelMesh::active_local_elements_end(), libMesh::SerialMesh::active_local_subdomain_elements_begin(), libMesh::ParallelMesh::active_local_subdomain_elements_begin(), libMesh::SerialMesh::active_local_subdomain_elements_end(), libMesh::ParallelMesh::active_local_subdomain_elements_end(), libMesh::SerialMesh::active_not_local_elements_begin(), libMesh::ParallelMesh::active_not_local_elements_begin(), libMesh::SerialMesh::active_not_local_elements_end(), libMesh::ParallelMesh::active_not_local_elements_end(), libMesh::ParallelMesh::add_elem(), libMesh::DofMap::add_neighbors_to_send_list(), libMesh::ParallelMesh::add_node(), libMesh::UnstructuredMesh::all_second_order(), libMesh::FEMSystem::assembly(), libMesh::ParmetisPartitioner::assign_partitioning(), libMesh::ParallelMesh::assign_unique_ids(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::ParmetisPartitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::DofMap::build_sparsity(), libMesh::ParallelMesh::clear(), libMesh::ExodusII_IO_Helper::close(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ExodusII_IO_Helper::create(), libMesh::ParallelMesh::delete_elem(), libMesh::ParallelMesh::delete_node(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_local_dofs_node_major(), libMesh::DofMap::distribute_local_dofs_var_major(), libMesh::DofMap::end_dof(), libMesh::DofMap::end_old_dof(), libMesh::EnsightIO::EnsightIO(), libMesh::SerialMesh::facelocal_elements_begin(), libMesh::ParallelMesh::facelocal_elements_begin(), libMesh::SerialMesh::facelocal_elements_end(), libMesh::ParallelMesh::facelocal_elements_end(), libMesh::MeshFunction::find_element(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::DofMap::first_dof(), libMesh::DofMap::first_old_dof(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::MeshBase::get_info(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::SystemSubsetBySubdomain::init(), libMesh::ParmetisPartitioner::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::ExodusII_IO_Helper::initialize_global_variables(), libMesh::ExodusII_IO_Helper::initialize_nodal_variables(), libMesh::ParallelMesh::insert_elem(), libMesh::SparsityPattern::Build::join(), libMesh::DofMap::last_dof(), libMesh::MeshTools::libmesh_assert_valid_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_procids< Node >(), libMesh::SerialMesh::local_elements_begin(), libMesh::ParallelMesh::local_elements_begin(), libMesh::SerialMesh::local_elements_end(), libMesh::ParallelMesh::local_elements_end(), libMesh::SerialMesh::local_level_elements_begin(), libMesh::ParallelMesh::local_level_elements_begin(), libMesh::SerialMesh::local_level_elements_end(), libMesh::ParallelMesh::local_level_elements_end(), libMesh::SerialMesh::local_nodes_begin(), libMesh::ParallelMesh::local_nodes_begin(), libMesh::SerialMesh::local_nodes_end(), libMesh::ParallelMesh::local_nodes_end(), libMesh::SerialMesh::local_not_level_elements_begin(), libMesh::ParallelMesh::local_not_level_elements_begin(), libMesh::SerialMesh::local_not_level_elements_end(), libMesh::ParallelMesh::local_not_level_elements_end(), libMesh::DofMap::local_variable_indices(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::MeshBase::n_active_local_elem(), libMesh::BoundaryInfo::n_boundary_conds(), libMesh::BoundaryInfo::n_edge_conds(), libMesh::DofMap::n_local_dofs(), libMesh::System::n_local_dofs(), libMesh::MeshBase::n_local_elem(), libMesh::MeshBase::n_local_nodes(), libMesh::BoundaryInfo::n_nodeset_conds(), libMesh::SerialMesh::not_local_elements_begin(), libMesh::ParallelMesh::not_local_elements_begin(), libMesh::SerialMesh::not_local_elements_end(), libMesh::ParallelMesh::not_local_elements_end(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::SparsityPattern::Build::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::ParallelMesh::ParallelMesh(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::System::project_vector(), libMesh::Nemesis_IO_Helper::put_cmap_params(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_elem_map(), libMesh::Nemesis_IO_Helper::put_loadbal_param(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Nemesis_IO_Helper::put_node_map(), libMesh::NameBasedIO::read(), libMesh::Nemesis_IO::read(), read(), libMesh::XdrIO::read(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::System::read_header(), libMesh::System::read_legacy_data(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::System::read_parallel_data(), libMesh::System::read_SCALAR_dofs(), libMesh::XdrIO::read_serialized_bc_names(), libMesh::XdrIO::read_serialized_bcs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::System::read_serialized_data(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::XdrIO::read_serialized_subdomain_names(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::MeshData::read_xdr(), libMesh::SerialMesh::semilocal_elements_begin(), libMesh::ParallelMesh::semilocal_elements_begin(), libMesh::SerialMesh::semilocal_elements_end(), libMesh::ParallelMesh::semilocal_elements_end(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::BoundaryInfo::sync(), libMesh::MeshTools::total_weight(), libMesh::ParallelMesh::update_parallel_id_counts(), libMesh::MeshTools::weight(), libMesh::NameBasedIO::write(), libMesh::ExodusII_IO::write(), write(), libMesh::XdrIO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO::write_element_data(), libMesh::ExodusII_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO::write_global_data(), libMesh::ExodusII_IO_Helper::write_global_values(), libMesh::System::write_header(), libMesh::ExodusII_IO::write_information_records(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::UCDIO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::ExodusII_IO::write_nodal_data_discontinuous(), libMesh::ExodusII_IO_Helper::write_nodal_values(), libMesh::ExodusII_IO_Helper::write_nodesets(), libMesh::Nemesis_IO_Helper::write_nodesets(), libMesh::System::write_parallel_data(), libMesh::System::write_SCALAR_dofs(), libMesh::XdrIO::write_serialized_bc_names(), libMesh::XdrIO::write_serialized_bcs(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::System::write_serialized_data(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::XdrIO::write_serialized_subdomain_names(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::ExodusII_IO_Helper::write_sidesets(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO::write_timestep(), and libMesh::ExodusII_IO_Helper::write_timestep().
{ return cast_int<processor_id_type>(_communicator.rank()); }
| void libMesh::CheckpointIO::read | ( | const std::string & | name | ) | [virtual] |
This method implements reading a mesh from a specified file.
Implements libMesh::MeshInput< MeshBase >.
Definition at line 402 of file checkpoint_io.C.
References _version, binary(), libMesh::MeshCommunication::broadcast(), libMesh::Xdr::data(), libMesh::DECODE, libMesh::MeshInput< MeshBase >::mesh(), libMesh::ParallelObject::n_processors(), libMesh::Quality::name(), libMesh::ParallelObject::processor_id(), libMesh::READ, read_bcs(), read_connectivity(), read_nodes(), read_nodesets(), read_subdomain_names(), and libMesh::START_LOG().
Referenced by libMesh::NameBasedIO::read().
{
START_LOG("read()","CheckpointIO");
MeshBase &mesh = MeshInput<MeshBase>::mesh();
// Try to dynamic cast the mesh to see if it's a ParallelMesh object
// Note: Just using is_serial() is not good enough because the Mesh won't
// have been prepared yet when is when that flag gets set to false... sigh.
bool parallel_mesh = dynamic_cast<ParallelMesh*>(&mesh);
// If this is a serial mesh then we're going to only read it on processor 0 and broadcast it
if(parallel_mesh || this->processor_id() == 0)
{
std::ostringstream file_name_stream;
file_name_stream << name;
if(parallel_mesh)
file_name_stream << "-" << this->processor_id();
{
std::ifstream in (file_name_stream.str().c_str());
if (!in.good())
libmesh_error_msg("ERROR: cannot locate specified file:\n\t" << file_name_stream.str());
}
Xdr io (file_name_stream.str(), this->binary() ? DECODE : READ);
// read the version
io.data (_version);
// Check if the mesh we're reading is the same as the one that was written
{
unsigned int parallel;
io.data(parallel, "# parallel");
if(static_cast<unsigned int>(parallel_mesh) != parallel)
libmesh_error_msg("Attempted to utilize a checkpoint file with an incompatible mesh distribution!");
}
// If this is a parallel mesh then we need to check to ensure we're reading this on the same number of procs
if(parallel_mesh)
{
largest_id_type n_procs;
io.data(n_procs, "# n_procs");
if(n_procs != this->n_processors())
libmesh_error_msg("Attempted to utilize a checkpoint file on " << this->n_processors() << " processors but it was written using " << n_procs << "!!");
}
// read subdomain names
this->read_subdomain_names(io);
// read the nodal locations
this->read_nodes (io);
// read connectivity
this->read_connectivity (io);
// read the boundary conditions
this->read_bcs (io);
// read the nodesets
this->read_nodesets (io);
io.close();
}
// If the mesh is serial then we only read it on processor 0 so we need to broadcast it
if(!parallel_mesh)
MeshCommunication().broadcast(mesh);
STOP_LOG("read()","CheckpointIO");
}
| void libMesh::CheckpointIO::read_bc_names | ( | Xdr & | io, |
| BoundaryInfo & | info, | ||
| bool | is_sideset | ||
| ) | [private] |
Read boundary names information (sideset and nodeset) - NEW in 0.9.2 format
Definition at line 704 of file checkpoint_io.C.
References libMesh::Xdr::data(), libMesh::BoundaryInfo::set_nodeset_name_map(), and libMesh::BoundaryInfo::set_sideset_name_map().
Referenced by read_bcs().
{
std::map<boundary_id_type, std::string> & boundary_map = is_sideset ?
info.set_sideset_name_map() : info.set_nodeset_name_map();
std::vector<boundary_id_type> boundary_ids;
std::vector<std::string> boundary_names;
header_id_type n_boundary_names = 0;
if (is_sideset)
io.data(n_boundary_names, "# sideset id to name map");
else
io.data(n_boundary_names, "# nodeset id to name map");
if (n_boundary_names)
{
io.data(boundary_ids);
io.data(boundary_names);
}
// Add them back into the map
for(unsigned int i=0; i<boundary_ids.size(); i++)
boundary_map[boundary_ids[i]] = boundary_names[i];
}
| void libMesh::CheckpointIO::read_bcs | ( | Xdr & | io | ) | [private] |
Read the boundary conditions for a parallel, distributed mesh
Definition at line 658 of file checkpoint_io.C.
References libMesh::BoundaryInfo::add_side(), libMesh::Xdr::data(), libMesh::MeshBase::get_boundary_info(), libMesh::MeshInput< MeshBase >::mesh(), and read_bc_names().
Referenced by read().
{
// convenient reference to our mesh
MeshBase &mesh = MeshInput<MeshBase>::mesh();
// and our boundary info object
BoundaryInfo &boundary_info = mesh.get_boundary_info();
// Version 0.9.2+ introduces entity names
read_bc_names(io, boundary_info, true); // sideset names
read_bc_names(io, boundary_info, false); // nodeset names
std::vector<dof_id_type> element_id_list;
std::vector<unsigned short int> side_list;
std::vector<boundary_id_type> bc_id_list;
io.data(element_id_list, "# element ids for bcs");
io.data(side_list, "# sides of elements for bcs");
io.data(bc_id_list, "# bc ids");
for(unsigned int i=0; i<element_id_list.size(); i++)
boundary_info.add_side(element_id_list[i], side_list[i], bc_id_list[i]);
}
| void libMesh::CheckpointIO::read_connectivity | ( | Xdr & | io | ) | [private] |
Read the connectivity for a parallel, distributed mesh
Definition at line 560 of file checkpoint_io.C.
References libMesh::MeshBase::add_elem(), libMesh::Elem::build(), libMesh::Xdr::data(), libMesh::Xdr::data_stream(), libMesh::Elem::dim(), libMesh::MeshBase::elem(), libMesh::Elem::hack_p_level(), libMesh::Elem::INACTIVE, libMesh::DofObject::invalid_processor_id, libMesh::Elem::JUST_REFINED, libMesh::libmesh_assert(), libMesh::MeshInput< MeshBase >::mesh(), libMesh::MeshTools::n_active_levels(), n_nodes, libMesh::Elem::n_nodes(), libMesh::MeshBase::node_ptr(), libMesh::DofObject::processor_id(), libMesh::DofObject::set_id(), libMesh::MeshBase::set_mesh_dimension(), libMesh::Elem::set_node(), libMesh::Elem::set_refinement_flag(), libMesh::DofObject::set_unique_id(), libMesh::Elem::subdomain_id(), and libMesh::Elem::type_to_n_nodes_map.
Referenced by read().
{
// convenient reference to our mesh
MeshBase &mesh = MeshInput<MeshBase>::mesh();
unsigned int n_active_levels;
io.data(n_active_levels, "# n_active_levels");
// Keep track of the highest dimensional element we've added to the mesh
unsigned int highest_elem_dim = 1;
for(unsigned int level=0; level < n_active_levels; level++)
{
xdr_id_type n_elem_at_level = 0;
io.data (n_elem_at_level, "");
for (unsigned int i=0; i<n_elem_at_level; i++)
{
// id type pid subdomain_id parent_id
std::vector<largest_id_type> elem_data(5);
io.data_stream
(&elem_data[0], cast_int<unsigned int>(elem_data.size()),
cast_int<unsigned int>(elem_data.size()));
#ifdef LIBMESH_ENABLE_UNIQUE_ID
largest_id_type unique_id = 0;
io.data(unique_id, "# unique id");
#endif
#ifdef LIBMESH_ENABLE_AMR
unsigned int p_level = 0;
io.data(p_level, "# p_level");
#endif
unsigned int n_nodes = Elem::type_to_n_nodes_map[elem_data[1]];
// Snag the node ids this element was connected to
std::vector<largest_id_type> conn_data(n_nodes);
io.data_stream
(&conn_data[0], cast_int<unsigned int>(conn_data.size()),
cast_int<unsigned int>(conn_data.size()));
const dof_id_type id =
cast_int<dof_id_type> (elem_data[0]);
const ElemType elem_type =
static_cast<ElemType> (elem_data[1]);
const processor_id_type proc_id =
cast_int<processor_id_type>(elem_data[2]);
const subdomain_id_type subdomain_id =
cast_int<subdomain_id_type>(elem_data[3]);
const dof_id_type parent_id =
cast_int<dof_id_type> (elem_data[4]);
Elem * parent = (parent_id == DofObject::invalid_processor_id) ? NULL : mesh.elem(parent_id);
// Create the element
Elem * elem = Elem::build(elem_type, parent).release();
#ifdef LIBMESH_ENABLE_UNIQUE_ID
elem->set_unique_id() = unique_id;
#endif
if(elem->dim() > highest_elem_dim)
highest_elem_dim = elem->dim();
elem->set_id() = id;
elem->processor_id() = proc_id;
elem->subdomain_id() = subdomain_id;
#ifdef LIBMESH_ENABLE_AMR
elem->hack_p_level(p_level);
// Set parent connections
if(parent)
{
parent->add_child(elem);
parent->set_refinement_flag (Elem::INACTIVE);
elem->set_refinement_flag (Elem::JUST_REFINED);
}
#endif
libmesh_assert(elem->n_nodes() == conn_data.size());
// Connect all the nodes to this element
for (unsigned int n=0; n<conn_data.size(); n++)
elem->set_node(n) =
mesh.node_ptr(cast_int<dof_id_type>(conn_data[n]));
mesh.add_elem(elem);
}
}
mesh.set_mesh_dimension(cast_int<unsigned char>(highest_elem_dim));
}
| void libMesh::CheckpointIO::read_nodes | ( | Xdr & | io | ) | [private] |
Read the nodal locations for a parallel, distributed mesh
Definition at line 510 of file checkpoint_io.C.
References libMesh::MeshBase::add_point(), libMesh::Xdr::data(), libMesh::Xdr::data_stream(), libMesh::MeshInput< MeshBase >::mesh(), and libMesh::DofObject::set_unique_id().
Referenced by read().
{
// convenient reference to our mesh
MeshBase &mesh = MeshInput<MeshBase>::mesh();
unsigned int n_nodes_here;
io.data(n_nodes_here, "# n_nodes on proc");
// Will hold the node id and pid
std::vector<largest_id_type> id_pid(2);
// For the coordinates
std::vector<Real> coords(LIBMESH_DIM);
for(unsigned int i=0; i<n_nodes_here; i++)
{
io.data_stream(&id_pid[0], 2, 2);
#ifdef LIBMESH_ENABLE_UNIQUE_ID
largest_id_type unique_id = 0;
io.data(unique_id, "# unique id");
#endif
io.data_stream(&coords[0], LIBMESH_DIM, LIBMESH_DIM);
Point p;
p(0) = coords[0];
#if LIBMESH_DIM > 1
p(1) = coords[1];
#endif
#if LIBMESH_DIM > 2
p(2) = coords[2];
#endif
#ifdef LIBMESH_ENABLE_UNIQUE_ID
Node * node =
#endif
mesh.add_point(p, cast_int<dof_id_type>(id_pid[0]),
cast_int<processor_id_type>(id_pid[1]));
#ifdef LIBMESH_ENABLE_UNIQUE_ID
node->set_unique_id() = unique_id;
#endif
}
}
| void libMesh::CheckpointIO::read_nodesets | ( | Xdr & | io | ) | [private] |
Read the nodeset conditions for a parallel, distributed mesh
Definition at line 684 of file checkpoint_io.C.
References libMesh::BoundaryInfo::add_node(), libMesh::Xdr::data(), libMesh::MeshBase::get_boundary_info(), and libMesh::MeshInput< MeshBase >::mesh().
Referenced by read().
{
// convenient reference to our mesh
MeshBase &mesh = MeshInput<MeshBase>::mesh();
// and our boundary info object
BoundaryInfo &boundary_info = mesh.get_boundary_info();
std::vector<dof_id_type> node_id_list;
std::vector<boundary_id_type> bc_id_list;
io.data(node_id_list, "# node id list");
io.data(bc_id_list, "# nodeset bc id list");
for(unsigned int i=0; i<node_id_list.size(); i++)
boundary_info.add_node(node_id_list[i], bc_id_list[i]);
}
| void libMesh::CheckpointIO::read_subdomain_names | ( | Xdr & | io | ) | [private] |
Read subdomain name information - NEW in 0.9.2 format
Definition at line 481 of file checkpoint_io.C.
References libMesh::Xdr::data(), libMesh::MeshInput< MeshBase >::mesh(), and libMesh::MeshBase::set_subdomain_name_map().
Referenced by read().
{
MeshBase &mesh = MeshInput<MeshBase>::mesh();
std::map<subdomain_id_type, std::string> & subdomain_map =
mesh.set_subdomain_name_map();
std::vector<header_id_type> subdomain_ids;
subdomain_ids.reserve(subdomain_map.size());
std::vector<std::string> subdomain_names;
subdomain_names.reserve(subdomain_map.size());
header_id_type n_subdomain_names = 0;
io.data(n_subdomain_names, "# subdomain id to name map");
if(n_subdomain_names)
{
io.data(subdomain_ids);
io.data(subdomain_names);
for(unsigned int i=0; i<subdomain_ids.size(); i++)
subdomain_map[cast_int<subdomain_id_type>(subdomain_ids[i])] =
subdomain_names[i];
}
}
| void libMesh::MeshInput< MeshBase >::set_n_partitions | ( | unsigned int | n_parts | ) | [inline, protected, inherited] |
Sets the number of partitions in the mesh. Typically this gets done by the partitioner, but some parallel file formats begin "pre-partitioned".
Definition at line 94 of file mesh_input.h.
References libMesh::MeshInput< MT >::mesh().
Referenced by libMesh::Nemesis_IO::read(), and libMesh::XdrIO::read().
{ this->mesh().set_n_partitions() = n_parts; }
| void libMesh::MeshInput< MeshBase >::skip_comment_lines | ( | std::istream & | in, |
| const char | comment_start | ||
| ) | [protected, inherited] |
Reads input from in, skipping all the lines that start with the character comment_start.
Referenced by libMesh::TetGenIO::read(), and libMesh::UCDIO::read_implementation().
| const std::string& libMesh::CheckpointIO::version | ( | ) | const [inline] |
Get/Set the version string.
Definition at line 106 of file checkpoint_io.h.
References _version.
{ return _version; }
| std::string& libMesh::CheckpointIO::version | ( | ) | [inline] |
| void libMesh::CheckpointIO::write | ( | const std::string & | name | ) | [virtual] |
This method implements writing a mesh to a specified file.
Implements libMesh::MeshOutput< MeshBase >.
Definition at line 77 of file checkpoint_io.C.
References _version, libMesh::Parallel::Communicator::barrier(), binary(), libMesh::ParallelObject::comm(), libMesh::Xdr::data(), libMesh::ENCODE, libMesh::MeshInput< MeshBase >::mesh(), libMesh::ParallelObject::n_processors(), libMesh::Quality::name(), libMesh::ParallelObject::processor_id(), libMesh::START_LOG(), libMesh::WRITE, write_bcs(), write_connectivity(), write_nodes(), write_nodesets(), and write_subdomain_names().
{
START_LOG("write()","CheckpointIO");
// convenient reference to our mesh
const MeshBase &mesh = MeshOutput<MeshBase>::mesh();
// Try to dynamic cast the mesh to see if it's a ParallelMesh object
// Note: Just using is_serial() is not good enough because the Mesh won't
// have been prepared yet when is when that flag gets set to false... sigh.
bool parallel_mesh = dynamic_cast<const ParallelMesh*>(&mesh);
// If this is a serial mesh then we're only going to write it on processor 0
if(parallel_mesh || this->processor_id() == 0)
{
std::ostringstream file_name_stream;
file_name_stream << name;
if(parallel_mesh)
file_name_stream << "-" << this->processor_id();
Xdr io (file_name_stream.str(), this->binary() ? ENCODE : WRITE);
// write the version
io.data(_version, "# version");
// Write out whether or not this is a serial mesh (helps with error checking on read)
{
unsigned int parallel = parallel_mesh;
io.data(parallel, "# parallel");
}
// If we're writing out a parallel mesh then we need to write the number of processors
// so we can check it upon reading the file
if(parallel_mesh)
{
largest_id_type n_procs = this->n_processors();
io.data(n_procs, "# n_procs");
}
// write subdomain names
this->write_subdomain_names(io);
// write the nodal locations
this->write_nodes (io);
// write connectivity
this->write_connectivity (io);
// write the boundary condition information
this->write_bcs (io);
// write the nodeset information
this->write_nodesets (io);
// pause all processes until the writing ends -- this will
// protect for the pathological case where a write is
// followed immediately by a read. The write must be
// guaranteed to complete first.
io.close();
}
this->comm().barrier();
STOP_LOG("write()","CheckpointIO");
}
| void libMesh::CheckpointIO::write_bc_names | ( | Xdr & | io, |
| const BoundaryInfo & | info, | ||
| bool | is_sideset | ||
| ) | const [private] |
Write boundary names information (sideset and nodeset) - NEW in 0.9.2 format
Definition at line 365 of file checkpoint_io.C.
References libMesh::Xdr::data(), libMesh::BoundaryInfo::get_nodeset_name_map(), and libMesh::BoundaryInfo::get_sideset_name_map().
Referenced by write_bcs().
{
const std::map<boundary_id_type, std::string> & boundary_map = is_sideset ?
info.get_sideset_name_map() : info.get_nodeset_name_map();
std::vector<boundary_id_type> boundary_ids; boundary_ids.reserve(boundary_map.size());
std::vector<std::string> boundary_names; boundary_names.reserve(boundary_map.size());
// We need to loop over the map and make sure that there aren't any invalid entries. Since we
// return writable references in boundary_info, it's possible for the user to leave some entity names
// blank. We can't write those to the XDA file.
header_id_type n_boundary_names = 0;
std::map<boundary_id_type, std::string>::const_iterator it_end = boundary_map.end();
for (std::map<boundary_id_type, std::string>::const_iterator it = boundary_map.begin(); it != it_end; ++it)
{
if (!it->second.empty())
{
n_boundary_names++;
boundary_ids.push_back(it->first);
boundary_names.push_back(it->second);
}
}
if (is_sideset)
io.data(n_boundary_names, "# sideset id to name map");
else
io.data(n_boundary_names, "# nodeset id to name map");
// Write out the ids and names in two vectors
if (n_boundary_names)
{
io.data(boundary_ids);
io.data(boundary_names);
}
}
| void libMesh::CheckpointIO::write_bcs | ( | Xdr & | io | ) | const [private] |
Write the boundary conditions for a parallel, distributed mesh
Definition at line 317 of file checkpoint_io.C.
References libMesh::BoundaryInfo::build_side_list(), libMesh::Xdr::data(), libMesh::libmesh_assert(), libMesh::MeshInput< MeshBase >::mesh(), write_bc_names(), and libMesh::Xdr::writing().
Referenced by write().
{
libmesh_assert (io.writing());
// convenient reference to our mesh
const MeshBase &mesh = MeshOutput<MeshBase>::mesh();
// and our boundary info object
const BoundaryInfo &boundary_info = mesh.get_boundary_info();
// Version 0.9.2+ introduces entity names
write_bc_names(io, boundary_info, true); // sideset names
write_bc_names(io, boundary_info, false); // nodeset names
std::vector<dof_id_type> element_id_list;
std::vector<unsigned short int> side_list;
std::vector<boundary_id_type> bc_id_list;
boundary_info.build_side_list(element_id_list, side_list, bc_id_list);
io.data(element_id_list, "# element ids for bcs");
io.data(side_list, "# sides of elements for bcs");
io.data(bc_id_list, "# bc ids");
}
| void libMesh::CheckpointIO::write_connectivity | ( | Xdr & | io | ) | const [private] |
Write the connectivity for a parallel, distributed mesh
Definition at line 236 of file checkpoint_io.C.
References libMesh::Xdr::data(), libMesh::Xdr::data_stream(), end, libMesh::DofObject::id(), libMesh::DofObject::invalid_processor_id, libMesh::libmesh_assert(), libMesh::MeshInput< MeshBase >::mesh(), libMesh::MeshTools::n_active_levels(), n_active_levels_on_processor(), libMesh::MeshTools::n_elem(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::node(), libMesh::Elem::p_level(), libMesh::Elem::parent(), libMesh::DofObject::processor_id(), libMesh::Elem::subdomain_id(), libMesh::Elem::type(), libMesh::DofObject::unique_id(), and libMesh::Xdr::writing().
Referenced by write().
{
libmesh_assert (io.writing());
// convenient reference to our mesh
const MeshBase &mesh = MeshOutput<MeshBase>::mesh();
// We will only write active elements and their parents.
unsigned int n_active_levels = n_active_levels_on_processor(mesh);
std::vector<xdr_id_type> n_elem_at_level(n_active_levels);
// Find the number of elements at each level
for (unsigned int level=0; level<n_active_levels; level++)
{
MeshBase::const_element_iterator it = mesh.level_elements_begin(level);
MeshBase::const_element_iterator end = mesh.level_elements_end(level);
n_elem_at_level[level] = MeshTools::n_elem(it, end);
}
io.data(n_active_levels, "# n_active_levels");
for(unsigned int level=0; level < n_active_levels; level++)
{
std::ostringstream comment;
comment << "# n_elem at level ";
comment << level ;
io.data (n_elem_at_level[level], comment.str().c_str());
MeshBase::const_element_iterator it = mesh.level_elements_begin(level);
MeshBase::const_element_iterator end = mesh.level_elements_end(level);
for (; it != end; ++it)
{
Elem & elem = *(*it);
unsigned int n_nodes = elem.n_nodes();
// id type pid subdomain_id parent_id
std::vector<largest_id_type> elem_data(5);
elem_data[0] = elem.id();
elem_data[1] = elem.type();
elem_data[2] = elem.processor_id();
elem_data[3] = elem.subdomain_id();
if(elem.parent() != NULL)
elem_data[4] = elem.parent()->id();
else
elem_data[4] = DofObject::invalid_processor_id;
std::vector<largest_id_type> conn_data(n_nodes);
for(unsigned int i=0; i<n_nodes; i++)
conn_data[i] = elem.node(i);
io.data_stream(&elem_data[0],
cast_int<unsigned int>(elem_data.size()),
cast_int<unsigned int>(elem_data.size()));
#ifdef LIBMESH_ENABLE_UNIQUE_ID
largest_id_type unique_id = elem.unique_id();
io.data(unique_id, "# unique id");
#endif
#ifdef LIBMESH_ENABLE_AMR
unsigned int p_level = elem.p_level();
io.data(p_level, "# p_level");
#endif
io.data_stream(&conn_data[0],
cast_int<unsigned int>(conn_data.size()),
cast_int<unsigned int>(conn_data.size()));
}
}
}
| virtual void libMesh::MeshOutput< MeshBase >::write_equation_systems | ( | const std::string & | , |
| const EquationSystems & | , | ||
| const std::set< std::string > * | system_names = NULL |
||
| ) | [virtual, inherited] |
This method implements writing a mesh with data to a specified file where the data is taken from the EquationSystems object.
Reimplemented in libMesh::NameBasedIO.
Referenced by libMesh::Nemesis_IO::write_timestep(), and libMesh::ExodusII_IO::write_timestep().
| virtual void libMesh::MeshOutput< MeshBase >::write_nodal_data | ( | const std::string & | , |
| const std::vector< Number > & | , | ||
| const std::vector< std::string > & | |||
| ) | [inline, virtual, inherited] |
This method implements writing a mesh with nodal data to a specified file where the nodal data and variable names are provided.
Reimplemented in libMesh::ExodusII_IO, libMesh::GMVIO, libMesh::NameBasedIO, libMesh::GmshIO, libMesh::Nemesis_IO, libMesh::VTKIO, libMesh::UCDIO, libMesh::MEDITIO, libMesh::GnuPlotIO, and libMesh::TecplotIO.
Definition at line 98 of file mesh_output.h.
{ libmesh_not_implemented(); }
| void libMesh::CheckpointIO::write_nodes | ( | Xdr & | io | ) | const [private] |
Write the nodal locations for a parallel, distributed mesh
Definition at line 184 of file checkpoint_io.C.
References libMesh::Xdr::data(), libMesh::Xdr::data_stream(), end, libMesh::DofObject::id(), libMesh::MeshInput< MeshBase >::mesh(), n_nodes, libMesh::MeshBase::nodes_begin(), libMesh::MeshBase::nodes_end(), libMesh::DofObject::processor_id(), and libMesh::DofObject::unique_id().
Referenced by write().
{
// convenient reference to our mesh
const MeshBase &mesh = MeshOutput<MeshBase>::mesh();
MeshBase::const_node_iterator
it = mesh.nodes_begin(),
end = mesh.nodes_end();
unsigned int n_nodes_here = MeshTools::n_nodes(it, end);
io.data(n_nodes_here, "# n_nodes on proc");
it = mesh.nodes_begin();
// Will hold the node id and pid
std::vector<largest_id_type> id_pid(2);
// For the coordinates
std::vector<Real> coords(LIBMESH_DIM);
for(; it != end; ++it)
{
Node & node = *(*it);
id_pid[0] = node.id();
id_pid[1] = node.processor_id();
io.data_stream(&id_pid[0], 2, 2);
#ifdef LIBMESH_ENABLE_UNIQUE_ID
largest_id_type unique_id = node.unique_id();
io.data(unique_id, "# unique id");
#endif
coords[0] = node(0);
#if LIBMESH_DIM > 1
coords[1] = node(1);
#endif
#if LIBMESH_DIM > 2
coords[2] = node(2);
#endif
io.data_stream(&coords[0], LIBMESH_DIM, 3);
}
}
| void libMesh::CheckpointIO::write_nodesets | ( | Xdr & | io | ) | const [private] |
Write the boundary conditions for a parallel, distributed mesh
Definition at line 344 of file checkpoint_io.C.
References libMesh::BoundaryInfo::build_node_list(), libMesh::Xdr::data(), libMesh::libmesh_assert(), libMesh::MeshInput< MeshBase >::mesh(), and libMesh::Xdr::writing().
Referenced by write().
{
libmesh_assert (io.writing());
// convenient reference to our mesh
const MeshBase &mesh = MeshOutput<MeshBase>::mesh();
// and our boundary info object
const BoundaryInfo &boundary_info = mesh.get_boundary_info();
std::vector<dof_id_type> node_id_list;
std::vector<boundary_id_type> bc_id_list;
boundary_info.build_node_list(node_id_list, bc_id_list);
io.data(node_id_list, "# node id list");
io.data(bc_id_list, "# nodeset bc id list");
}
| void libMesh::CheckpointIO::write_subdomain_names | ( | Xdr & | io | ) | const [private] |
Write subdomain name information - NEW in 0.9.2 format
Definition at line 147 of file checkpoint_io.C.
References libMesh::Xdr::data(), libMesh::MeshBase::get_subdomain_name_map(), and libMesh::MeshInput< MeshBase >::mesh().
Referenced by write().
{
{
const MeshBase &mesh = MeshOutput<MeshBase>::mesh();
const std::map<subdomain_id_type, std::string> & subdomain_map = mesh.get_subdomain_name_map();
std::vector<header_id_type> subdomain_ids; subdomain_ids.reserve(subdomain_map.size());
std::vector<std::string> subdomain_names; subdomain_names.reserve(subdomain_map.size());
// We need to loop over the map and make sure that there aren't any invalid entries. Since we
// return writable references in mesh_base, it's possible for the user to leave some entity names
// blank. We can't write those to the XDA file.
header_id_type n_subdomain_names = 0;
std::map<subdomain_id_type, std::string>::const_iterator it_end = subdomain_map.end();
for (std::map<subdomain_id_type, std::string>::const_iterator it = subdomain_map.begin(); it != it_end; ++it)
{
if (!it->second.empty())
{
n_subdomain_names++;
subdomain_ids.push_back(it->first);
subdomain_names.push_back(it->second);
}
}
io.data(n_subdomain_names, "# subdomain id to name map");
// Write out the ids and names in two vectors
if (n_subdomain_names)
{
io.data(subdomain_ids);
io.data(subdomain_names);
}
}
}
bool libMesh::CheckpointIO::_binary [private] |
Definition at line 183 of file checkpoint_io.h.
Referenced by binary().
const Parallel::Communicator& libMesh::ParallelObject::_communicator [protected, inherited] |
Definition at line 104 of file parallel_object.h.
Referenced by libMesh::EquationSystems::build_solution_vector(), libMesh::ParallelObject::comm(), libMesh::EquationSystems::get_solution(), libMesh::ParallelObject::n_processors(), libMesh::ParallelObject::operator=(), and libMesh::ParallelObject::processor_id().
const bool libMesh::MeshOutput< MeshBase >::_is_parallel_format [protected, inherited] |
Flag specifying whether this format is parallel-capable. If this is false (default) I/O is only permitted when the mesh has been serialized.
Definition at line 126 of file mesh_output.h.
Referenced by libMesh::FroIO::write(), libMesh::DivaIO::write(), libMesh::PostscriptIO::write(), and libMesh::EnsightIO::write().
std::string libMesh::CheckpointIO::_version [private] |
Definition at line 184 of file checkpoint_io.h.
std::vector<bool> libMesh::MeshInput< MeshBase >::elems_of_dimension [protected, inherited] |
A vector of bools describing what dimension elements have been encountered when reading a mesh.
Definition at line 100 of file mesh_input.h.
Referenced by libMesh::GMVIO::_read_one_cell(), libMesh::UNVIO::elements_in(), libMesh::UNVIO::max_elem_dimension_seen(), libMesh::AbaqusIO::max_elem_dimension_seen(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::GMVIO::read(), libMesh::VTKIO::read(), libMesh::AbaqusIO::read_elements(), libMesh::UCDIO::read_implementation(), libMesh::UNVIO::read_implementation(), libMesh::LegacyXdrIO::read_mesh(), and libMesh::XdrIO::read_serialized_connectivity().