1 #ifndef teca_arakawa_c_grid_h
2 #define teca_arakawa_c_grid_h
4 #include "teca_config.h"
8 #include "teca_array_collection.h"
73 TECA_DATASET_NEW_INSTANCE()
74 TECA_DATASET_NEW_COPY()
79 TECA_DATASET_METADATA(whole_extent,
unsigned long, 6)
80 TECA_DATASET_METADATA(extent,
unsigned long, 6)
81 TECA_DATASET_METADATA(bounds,
double, 6)
84 TECA_DATASET_METADATA(periodic_in_x,
int, 1)
85 TECA_DATASET_METADATA(periodic_in_y,
int, 1)
86 TECA_DATASET_METADATA(periodic_in_z,
int, 1)
89 unsigned long get_number_of_points() const override;
92 unsigned long get_number_of_cells() const override;
96 TECA_DATASET_METADATA(m_x_coordinate_variable, std::
string, 1)
97 TECA_DATASET_METADATA(m_y_coordinate_variable, std::
string, 1)
98 TECA_DATASET_METADATA(u_x_coordinate_variable, std::
string, 1)
99 TECA_DATASET_METADATA(u_y_coordinate_variable, std::
string, 1)
100 TECA_DATASET_METADATA(v_x_coordinate_variable, std::
string, 1)
101 TECA_DATASET_METADATA(v_y_coordinate_variable, std::
string, 1)
105 TECA_DATASET_METADATA(m_z_coordinate_variable, std::
string, 1)
106 TECA_DATASET_METADATA(w_z_coordinate_variable, std::
string, 1)
110 TECA_DATASET_METADATA(t_coordinate_variable, std::
string, 1)
140 void set_m_x_coordinates(const std::
string &name,
143 void set_m_y_coordinates(const std::
string &name,
146 void set_u_x_coordinates(const std::
string &name,
149 void set_u_y_coordinates(const std::
string &name,
152 void set_v_x_coordinates(const std::
string &name,
155 void set_v_y_coordinates(const std::
string &name,
159 void set_m_z_coordinates(const std::
string &name,
162 void set_w_z_coordinates(const std::
string &name,
166 void set_t_coordinates(const std::
string &name,
170 std::
string get_class_name()
const override
171 {
return "teca_arakawa_c_grid"; }
174 int get_type_code()
const override;
177 void copy(
const const_p_teca_dataset &other,
178 allocator alloc = allocator::malloc)
override;
187 void swap(
const p_teca_dataset &)
override;
190 bool empty() const noexcept override;
198 int to_stream(std::ostream &) const override;
224 std::shared_ptr<impl_t> m_impl;
A representation of mesh based data on an Arkawa C Grid.
Definition: teca_arakawa_c_grid.h:70
void copy_metadata(const const_p_teca_dataset &other) override
copy metadata. always a deep copy.
void shallow_copy(const p_teca_dataset &other) override
bool empty() const noexcept override
void swap(const p_teca_dataset &) override
swap internals of the two objects
void copy(const const_p_teca_dataset &other, allocator alloc=allocator::malloc) override
Serialize objects into a binary stream.
Definition: teca_binary_stream.h:17
Interface for TECA datasets.
Definition: teca_dataset.h:232
A base class for geometric data.
Definition: teca_mesh.h:20
p_teca_error_handler error_handler TECA_EXPORT
The global error handler instance.
std::shared_ptr< teca_variant_array > p_teca_variant_array
Definition: teca_variant_array.h:27
std::shared_ptr< const teca_variant_array > const_p_teca_variant_array
Definition: teca_variant_array.h:27