libMesh
Loading...
Searching...
No Matches
include
mesh
exodus_header_info.h
Go to the documentation of this file.
1
// The libMesh Finite Element Library.
2
// Copyright (C) 2002-2026 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4
// This library is free software; you can redistribute it and/or
5
// modify it under the terms of the GNU Lesser General Public
6
// License as published by the Free Software Foundation; either
7
// version 2.1 of the License, or (at your option) any later version.
8
9
// This library is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// Lesser General Public License for more details.
13
14
// You should have received a copy of the GNU Lesser General Public
15
// License along with this library; if not, write to the Free Software
16
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
#ifndef LIBMESH_EXODUS_HEADER_INFO_H
19
#define LIBMESH_EXODUS_HEADER_INFO_H
20
21
// TIMPI includes
22
#include "
timpi/communicator.h
"
23
#include "
timpi/parallel_implementation.h
"
24
25
// C++ includes
26
#include <vector>
27
28
namespace
libMesh
29
{
30
37
class
ExodusHeaderInfo
38
{
39
public
:
40
// All special functions can be defaulted for this simple class.
41
ExodusHeaderInfo
() =
default
;
42
ExodusHeaderInfo
(
ExodusHeaderInfo
&&) =
default
;
43
ExodusHeaderInfo
(
const
ExodusHeaderInfo
&) =
default
;
44
ExodusHeaderInfo
&
operator=
(
const
ExodusHeaderInfo
&) =
default
;
45
ExodusHeaderInfo
&
operator=
(
ExodusHeaderInfo
&&) =
default
;
46
~ExodusHeaderInfo
() =
default
;
47
52
void
broadcast
(
const
Parallel::Communicator
& comm)
53
{
54
// broadcast vector<char> separately
55
comm.
broadcast
(
title
);
56
57
// Pack individual integers into vector
58
std::vector<int> buffer =
59
{
num_dim
,
num_elem
,
num_elem_blk
,
num_node_sets
,
60
num_side_sets
,
num_elem_sets
,
num_edge_blk
,
num_edge
,
61
num_face_blk
,
num_face
};
62
63
// broadcast integers
64
comm.
broadcast
(buffer);
65
66
// unpack
67
unsigned
int
ctr = 0;
68
num_dim
= buffer[ctr++];
69
num_elem
= buffer[ctr++];
70
num_elem_blk
= buffer[ctr++];
71
num_node_sets
= buffer[ctr++];
72
num_side_sets
= buffer[ctr++];
73
num_elem_sets
= buffer[ctr++];
74
num_edge_blk
= buffer[ctr++];
75
num_edge
= buffer[ctr++];
76
num_face_blk
= buffer[ctr++];
77
num_face
= buffer[ctr++];
78
}
79
80
std::vector<char>
title
;
81
int
num_dim
;
82
int
num_nodes
;
83
int
num_elem
;
84
int
num_elem_blk
;
85
int
num_node_sets
;
86
int
num_side_sets
;
87
int
num_elem_sets
;
88
int
num_edge_blk
;
89
int
num_edge
;
90
int
num_face_blk
;
91
int
num_face
;
92
};
93
94
}
// namespace libMesh
95
96
#endif
libMesh::Parallel::Communicator::broadcast
void broadcast(T &data, const unsigned int root_id=0, const bool identical_sizes=false) const
libMesh::ExodusHeaderInfo
This class is used as both an external data structure for passing around Exodus file header informati...
Definition
exodus_header_info.h:38
libMesh::ExodusHeaderInfo::operator=
ExodusHeaderInfo & operator=(const ExodusHeaderInfo &)=default
libMesh::ExodusHeaderInfo::num_edge
int num_edge
Definition
exodus_header_info.h:89
libMesh::ExodusHeaderInfo::num_side_sets
int num_side_sets
Definition
exodus_header_info.h:86
libMesh::ExodusHeaderInfo::~ExodusHeaderInfo
~ExodusHeaderInfo()=default
libMesh::ExodusHeaderInfo::num_dim
int num_dim
Definition
exodus_header_info.h:81
libMesh::ExodusHeaderInfo::num_node_sets
int num_node_sets
Definition
exodus_header_info.h:85
libMesh::ExodusHeaderInfo::num_face
int num_face
Definition
exodus_header_info.h:91
libMesh::ExodusHeaderInfo::ExodusHeaderInfo
ExodusHeaderInfo()=default
libMesh::ExodusHeaderInfo::ExodusHeaderInfo
ExodusHeaderInfo(const ExodusHeaderInfo &)=default
libMesh::ExodusHeaderInfo::num_face_blk
int num_face_blk
Definition
exodus_header_info.h:90
libMesh::ExodusHeaderInfo::num_edge_blk
int num_edge_blk
Definition
exodus_header_info.h:88
libMesh::ExodusHeaderInfo::ExodusHeaderInfo
ExodusHeaderInfo(ExodusHeaderInfo &&)=default
libMesh::ExodusHeaderInfo::num_nodes
int num_nodes
Definition
exodus_header_info.h:82
libMesh::ExodusHeaderInfo::num_elem
int num_elem
Definition
exodus_header_info.h:83
libMesh::ExodusHeaderInfo::num_elem_blk
int num_elem_blk
Definition
exodus_header_info.h:84
libMesh::ExodusHeaderInfo::num_elem_sets
int num_elem_sets
Definition
exodus_header_info.h:87
libMesh::ExodusHeaderInfo::broadcast
void broadcast(const Parallel::Communicator &comm)
Broadcasts data from processor 0 to other procs using the provided Communicator.
Definition
exodus_header_info.h:52
libMesh::ExodusHeaderInfo::title
std::vector< char > title
Definition
exodus_header_info.h:80
libMesh::Parallel::Communicator
communicator.h
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
parallel_implementation.h
Generated on Fri Aug 21 2026 13:32:27 for libMesh by
1.9.8