libMesh
include
mesh
exodus_header_info.h
Go to the documentation of this file.
1
// The libMesh Finite Element Library.
2
// Copyright (C) 2002-2025 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
62
// broadcast integers
63
comm.
broadcast
(buffer);
64
65
// unpack
66
unsigned
int
ctr = 0;
67
num_dim
= buffer[ctr++];
68
num_elem
= buffer[ctr++];
69
num_elem_blk
= buffer[ctr++];
70
num_node_sets
= buffer[ctr++];
71
num_side_sets
= buffer[ctr++];
72
num_elem_sets
= buffer[ctr++];
73
num_edge_blk
= buffer[ctr++];
74
num_edge
= buffer[ctr++];
75
}
76
77
std::vector<char>
title
;
78
int
num_dim
;
79
int
num_nodes
;
80
int
num_elem
;
81
int
num_elem_blk
;
82
int
num_node_sets
;
83
int
num_side_sets
;
84
int
num_elem_sets
;
85
int
num_edge_blk
;
86
int
num_edge
;
87
};
88
89
}
// namespace libMesh
90
91
#endif
libMesh::ExodusHeaderInfo::num_edge
int num_edge
Definition:
exodus_header_info.h:86
libMesh::ExodusHeaderInfo::num_elem_sets
int num_elem_sets
Definition:
exodus_header_info.h:84
libMesh::ExodusHeaderInfo::num_edge_blk
int num_edge_blk
Definition:
exodus_header_info.h:85
libMesh::ExodusHeaderInfo
This class is used as both an external data structure for passing around Exodus file header informati...
Definition:
exodus_header_info.h:37
libMesh::ExodusHeaderInfo::ExodusHeaderInfo
ExodusHeaderInfo()=default
parallel_implementation.h
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
libMesh::ExodusHeaderInfo::~ExodusHeaderInfo
~ExodusHeaderInfo()=default
TIMPI::Communicator
libMesh::ExodusHeaderInfo::num_nodes
int num_nodes
Definition:
exodus_header_info.h:79
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:77
libMesh::ExodusHeaderInfo::num_elem
int num_elem
Definition:
exodus_header_info.h:80
TIMPI::Communicator::broadcast
void broadcast(T &data, const unsigned int root_id=0, const bool identical_sizes=false) const
libMesh::ExodusHeaderInfo::num_side_sets
int num_side_sets
Definition:
exodus_header_info.h:83
libMesh::ExodusHeaderInfo::operator=
ExodusHeaderInfo & operator=(const ExodusHeaderInfo &)=default
libMesh::ExodusHeaderInfo::num_node_sets
int num_node_sets
Definition:
exodus_header_info.h:82
libMesh::ExodusHeaderInfo::num_dim
int num_dim
Definition:
exodus_header_info.h:78
communicator.h
libMesh::ExodusHeaderInfo::num_elem_blk
int num_elem_blk
Definition:
exodus_header_info.h:81
Generated on Thu Jul 17 2025 01:29:04 for libMesh by
1.8.14