class
#include <atlas/field/Field.h>
Field A Field contains an Array, Metadata, and a reference to a FunctionSpace.
The Field is a key component of Atlas. It contains an array::
A Field should typically be created via the FunctionSpace::createField() method, which ensures that the Field is completely setup.
A field can be implicitly converted to an Array reference, so that it can be passed to routines that expect an Array. This is especially useful to create an ArrayView:
Field field = functionspace.createField<double>( ... ); auto view = array::make_view<double,2>( field );
Constructors, destructors, conversion operators
- Field() defaulted
-
Field(const eckit::
Parametrisation&) - Create field from parametrisation.
-
Field(const std::
string& name, array:: DataType, const array:: ArrayShape& = array:: ArrayShape()) - Create field with given name, Datatype and ArrayShape.
-
Field(const std::
string& name, array:: DataType, array:: ArraySpec&&) - Create field with given name, Datatype and ArraySpec.
-
Field(const std::
string& name, array:: Array*) - Create field with given name, and take ownership of given Array.
-
template<typename DATATYPE>Field(const std::
string& name, DATATYPE* data, const array:: ArraySpec&) - Create field by wrapping existing data, Datatype of template and ArraySpec.
-
template<typename DATATYPE>Field(const std::
string& name, DATATYPE* data, const array:: ArrayShape&) - Create field by wrapping existing data, Datatype of template and ArrayShape.
- operator const array::Array&() const
- Implicit conversion to Array.
- operator array::Array&()
Public functions
-
auto clone(const eckit::
Parametrisation& = util:: Config()) const -> Field - Deep copy.
-
auto array() const -> const array::
Array& - Access contained Array.
-
auto array() -> array::
Array& - auto valid() const -> bool
- auto storage() -> void*
- Access to raw data.
-
auto datatype() const -> array::
DataType - Internal data type of field.
-
auto name() const -> const std::
string& - Name associated to this field.
-
void rename(const std::
string& name) - Rename this field.
-
auto metadata() const -> const util::
Metadata& - Access to metadata associated to this field.
-
auto metadata() -> util::
Metadata& -
void resize(const array::
ArrayShape& shape) - Resize field to given shape.
-
void insert(idx_
t idx1, idx_ t size1) -
auto shapef() const -> const std::
vector<int>& - Shape of this field in Fortran style (reverse order of C style)
-
auto stridesf() const -> const std::
vector<int>& - Strides of this field in Fortran style (reverse order of C style)
-
auto shape() const -> const array::
ArrayShape& - Shape of this field (reverse order of Fortran style)
-
auto strides() const -> const array::
ArrayStrides& - Strides of this field.
-
auto shape(idx_
t i) const -> idx_ t - Shape of this field associated to index 'i'.
-
auto stride(idx_
t i) const -> idx_ t - Stride of this field associated to index 'i'.
- auto size() const -> size_t
- Number of values stored in this field.
-
auto rank() const -> idx_
t - Rank of field.
- auto bytes() const -> size_t
- Number of bytes occupied by the values of this field.
- auto contiguous() const -> bool
-
void dump(std::
ostream& os) const - Output information of field plus raw data.
-
void set_levels(idx_
t n) - Metadata that is more intrinsic to the Field, and queried often.
-
auto levels() const -> idx_
t -
void set_variables(idx_
t n) - Metadata that is more intrinsic to the Field, and queried often.
-
auto variables() const -> idx_
t -
void set_horizontal_dimension(const std::
vector<idx_ t>&) -
auto horizontal_dimension() const -> std::
vector<idx_ t> - void set_functionspace(const FunctionSpace& functionspace)
- auto functionspace() const -> const FunctionSpace&
- auto footprint() const -> size_t
- Return the memory footprint of the Field.
- auto dirty() const -> bool
- void set_dirty(bool = true) const
- void haloExchange(bool on_device = false) const
- void adjointHaloExchange(bool on_device = false) const
- void updateHost() const
- void updateDevice() const
- void syncHostDevice() const
- auto hostNeedsUpdate() const -> bool
- auto deviceNeedsUpdate() const -> bool
- void setHostNeedsUpdate(bool) const
- void setDeviceNeedsUpdate(bool) const
- auto deviceAllocated() const -> bool
- void allocateDevice()
- void deallocateDevice()
- void reactivateDeviceWriteViews() const
- void reactivateHostWriteViews() const
Friends
-
auto operator<<(std::
ostream& os, const Field& v) -> std:: ostream& - Output information of field.