23 #include "atlas/util/Object.h" 61 const std::string& name()
const;
64 idx_t nb_nodes()
const;
67 idx_t nb_edges()
const;
97 const Field& field(
const std::string& name )
const {
return hybrid_elements_->field( name ); }
98 Field& field(
const std::string& name ) {
return hybrid_elements_->field( name ); }
99 bool has_field(
const std::string& name )
const {
return hybrid_elements_->has_field( name ); }
101 const Field& field(
idx_t idx )
const {
return hybrid_elements_->field( idx ); }
102 Field& field(
idx_t idx ) {
return hybrid_elements_->field( idx ); }
103 idx_t nb_fields()
const {
return hybrid_elements_->nb_fields(); }
105 const Field& global_index()
const {
return hybrid_elements_->global_index(); }
106 Field& global_index() {
return hybrid_elements_->global_index(); }
108 const Field& remote_index()
const {
return hybrid_elements_->remote_index(); }
109 Field& remote_index() {
return hybrid_elements_->remote_index(); }
111 const Field& partition()
const {
return hybrid_elements_->partition(); }
112 Field& partition() {
return hybrid_elements_->partition(); }
114 const Field& halo()
const {
return hybrid_elements_->halo(); }
115 Field& halo() {
return hybrid_elements_->halo(); }
117 const Field& flags()
const {
return hybrid_elements_->flags(); }
118 Field& flags() {
return hybrid_elements_->flags(); }
120 template <
typename DATATYPE,
int RANK>
123 template <
typename DATATYPE,
int RANK>
126 template <
typename DATATYPE,
int RANK>
129 template <
typename DATATYPE,
int RANK>
174 if ( hybrid_elements_->node_connectivity().blocks() ) {
175 return hybrid_elements_->node_connectivity().block( type_idx_ );
184 if ( hybrid_elements_->node_connectivity().blocks() ) {
185 return hybrid_elements_->node_connectivity().block( type_idx_ );
194 if ( hybrid_elements_->edge_connectivity().blocks() ) {
195 return hybrid_elements_->edge_connectivity().block( type_idx_ );
204 if ( hybrid_elements_->edge_connectivity().blocks() ) {
205 return hybrid_elements_->edge_connectivity().block( type_idx_ );
214 if ( hybrid_elements_->cell_connectivity().blocks() ) {
215 return hybrid_elements_->cell_connectivity().block( type_idx_ );
224 if ( hybrid_elements_->cell_connectivity().blocks() ) {
225 return hybrid_elements_->cell_connectivity().block( type_idx_ );
234 return hybrid_elements_->element_type( type_idx_ );
248 void atlas__mesh__Elements__delete(
Elements* This );
255 int atlas__mesh__Elements__has_field(
const Elements* This,
char* name );
256 int atlas__mesh__Elements__nb_fields(
const Elements* This );
264 void atlas__mesh__Elements__add(
Elements* This,
idx_t nb_elements );
A Field contains an Array, Metadata, and a reference to a FunctionSpace.
Definition: Field.h:59
Describe elements of a single type.
Definition: Elements.h:37
idx_t size() const
Number of elements.
Definition: Elements.h:151
Definition: GridToolsIndexView.h:136
This file contains the IndexView class, a class that allows to wrap any contiguous raw data into a vi...
This file contains the ArrayView class, a class that allows to wrap any contiguous raw data into a vi...
const ElementType & element_type() const
Element type of these Elements.
Definition: Elements.h:233
idx_t nb_edges() const
Number of edges for each element type.
Definition: Elements.h:159
idx_t end() const
End of elements in hybrid_elements.
Definition: Elements.h:241
const BlockConnectivity & edge_connectivity() const
Element to Edge connectivity table.
Definition: Elements.h:193
const BlockConnectivity & cell_connectivity() const
Element to Cell connectivity table.
Definition: Elements.h:213
ElementType class (abstract) that provides access to geometric information of an element.
Definition: ElementType.h:29
idx_t nb_nodes() const
Number of nodes for each element type.
Definition: Elements.h:155
Multi-dimensional access existing POD array pointer.
Definition: ArraySlicer.h:23
Block Connectivity table.
Definition: Connectivity.h:515
HybridElements class that describes elements of different types.
Definition: HybridElements.h:64
Contains all atlas classes and methods.
Definition: atlas-grids.cc:33
Definition: FieldImpl.h:40
long idx_t
Integer type for indices in connectivity tables.
Definition: config.h:42
idx_t begin() const
Access hybrid_elements HybridElements can contain more Elements, and holds the data.
Definition: Elements.h:237
const BlockConnectivity & node_connectivity() const
Element to Node connectivity table.
Definition: Elements.h:173