atlas::functionspace::NodeColumns class

Base classes

class atlas::FunctionSpace

Public types

using Implementation = detail::NodeColumns

Public static functions

static auto type() -> std::string

Constructors, destructors, conversion operators

NodeColumns()
NodeColumns(const FunctionSpace&)
NodeColumns(Mesh mesh)
NodeColumns(Mesh mesh, const eckit::Configuration&)
operator bool() const

Public functions

auto valid() const -> bool
auto nb_nodes() const -> idx_t
auto nb_nodes_global() const -> idx_t
auto mesh() const -> const Mesh&
auto levels() const -> idx_t
auto nodes() const -> mesh::Nodes&
auto halo() const -> const mesh::Halo&
void haloExchange(const FieldSet&, bool on_device = false) const
void haloExchange(const Field&, bool on_device = false) const
auto halo_exchange() const -> const parallel::HaloExchange&
auto checksum(const FieldSet&) const -> std::string
auto checksum(const Field&) const -> std::string
auto checksum() const -> const parallel::Checksum&
template<typename Value>
void sum(const Field&, Value& sum, idx_t& N) const
Compute sum of scalar field.
void sumPerLevel(const Field&, Field& sum, idx_t& N) const
Compute sum of field for each vertical level separately.
template<typename Value>
void orderIndependentSum(const Field&, Value& sum, idx_t& N) const
Compute order independent sum of scalar field.
void orderIndependentSumPerLevel(const Field&, Field& sum, idx_t& N) const
Compute order independent sum of field for each vertical level separately.
template<typename Value>
void minimum(const Field&, Value& minimum) const
Compute minimum of scalar field.
template<typename Value>
void maximum(const Field&, Value& maximum) const
Compute maximum of scalar field.
void minimumPerLevel(const Field&, Field& min) const
Compute minimum of field for each vertical level separately.
void maximumPerLevel(const Field&, Field& max) const
Compute maximum of field for each vertical level separately.
template<typename Value>
void minimumAndLocation(const Field&, Value& minimum, gidx_t& glb_idx) const
Compute minimum of scalar field, as well as the global index and level.
template<typename Value>
void maximumAndLocation(const Field&, Value& maximum, gidx_t& glb_idx) const
Compute maximum of scalar field, as well as the global index and level.
template<typename Value>
void minimumAndLocation(const Field&, Value& minimum, gidx_t& glb_idx, idx_t& level) const
Compute minimum of scalar field, as well as the global index and level.
template<typename Value>
void maximumAndLocation(const Field&, Value& maximum, gidx_t& glb_idx, idx_t& level) const
Compute maximum of scalar field, as well as the global index and level.
template<typename Value>
void minimumAndLocation(const Field&, std::vector<Value>& minimum, std::vector<gidx_t>& glb_idx) const
Compute minimum of field for each field-variable, as well as the global indices and levels.
template<typename Value>
void maximumAndLocation(const Field&, std::vector<Value>& maximum, std::vector<gidx_t>& glb_idx) const
Compute maximum of field for each field-variable, as well as the global indices and levels.
template<typename Value>
void minimumAndLocation(const Field&, std::vector<Value>& minimum, std::vector<gidx_t>& glb_idx, std::vector<idx_t>& level) const
Compute minimum of field for each field-variable, as well as the global indices and levels.
template<typename Value>
void maximumAndLocation(const Field&, std::vector<Value>& maximum, std::vector<gidx_t>& glb_idx, std::vector<idx_t>& level) const
Compute maximum of field for each field-variable, as well as the global indices and levels.
void minimumAndLocationPerLevel(const Field&, Field& column, Field& glb_idx) const
Compute minimum and its location of a field for each vertical level separately.
void maximumAndLocationPerLevel(const Field&, Field& column, Field& glb_idx) const
Compute maximum and its location of a field for each vertical level separately.
template<typename Value>
void mean(const Field&, Value& mean, idx_t& N) const
Compute mean value of scalar field.
void meanPerLevel(const Field&, Field& mean, idx_t& N) const
Compute mean values of field for vertical level separately.
template<typename Value>
void meanAndStandardDeviation(const Field&, Value& mean, Value& stddev, idx_t& N) const
Compute mean value and standard deviation of scalar field.
void meanAndStandardDeviationPerLevel(const Field&, Field& mean, Field& stddev, idx_t& N) const
Compute mean values and standard deviations of field for vertical level separately.
auto type() const -> std::string
auto footprint() const -> size_t
auto distribution() const -> std::string
auto createField(const eckit::Configuration&) const -> Field
auto createField(const Field&) const -> Field
auto createField(const Field&, const eckit::Configuration&) const -> Field
template<typename DATATYPE>
auto createField(const eckit::Configuration&) const -> Field
template<typename DATATYPE>
auto createField() const -> Field
void adjointHaloExchange(const FieldSet&, bool on_device = false) const
void adjointHaloExchange(const Field&, bool on_device = false) const
void gather(const FieldSet&, FieldSet&) const
void gather(const Field&, Field&) const
auto gather() const -> const parallel::GatherScatter&
void scatter(const FieldSet&, FieldSet&) const
void scatter(const Field&, Field&) const
auto scatter() const -> const parallel::GatherScatter&
auto polygon(idx_t halo = 0) const -> const util::PartitionPolygon&
auto polygons() const -> const util::PartitionPolygons&
auto projection() const -> const Projection&
auto part() const -> idx_t
auto nb_parts() const -> idx_t
auto size() const -> idx_t
auto lonlat() const -> Field
auto ghost() const -> Field
auto global_index() const -> Field
auto remote_index() const -> Field
auto partition() const -> Field
auto mpi_comm() const -> std::string

Function documentation

template<typename Value>
void atlas::functionspace::NodeColumns::sum(const Field&, Value& sum, idx_t& N) const

Compute sum of scalar field.

Parameters
sum out Scalar value containing the sum of the full 3D field
out Number of values that are contained in the sum (nodes*levels)

void atlas::functionspace::NodeColumns::sumPerLevel(const Field&, Field& sum, idx_t& N) const

Compute sum of field for each vertical level separately.

Parameters
sum out Field of dimension of input without the nodes index
out Number of nodes used to sum each level

template<typename Value>
void atlas::functionspace::NodeColumns::orderIndependentSum(const Field&, Value& sum, idx_t& N) const

Compute order independent sum of scalar field.

Parameters
sum out Scalar value containing the sum of the full 3D field
out Number of values that are contained in the sum (nodes*levels)

void atlas::functionspace::NodeColumns::orderIndependentSumPerLevel(const Field&, Field& sum, idx_t& N) const

Compute order independent sum of field for each vertical level separately.

Parameters
sum out Field of dimension of input without the nodes index
out Number of nodes used to sum each level

void atlas::functionspace::NodeColumns::minimumPerLevel(const Field&, Field& min) const

Compute minimum of field for each vertical level separately.

Parameters
min out Field of dimension of input without the nodes index

void atlas::functionspace::NodeColumns::maximumPerLevel(const Field&, Field& max) const

Compute maximum of field for each vertical level separately.

Parameters
max out Field of dimension of input without the nodes index

template<typename Value>
void atlas::functionspace::NodeColumns::mean(const Field&, Value& mean, idx_t& N) const

Compute mean value of scalar field.

Parameters
mean out Mean value
out Number of value used to create the mean

void atlas::functionspace::NodeColumns::meanPerLevel(const Field&, Field& mean, idx_t& N) const

Compute mean values of field for vertical level separately.

Parameters
mean out Field of dimension of input without the nodes index
out Number of values used to create the means

template<typename Value>
void atlas::functionspace::NodeColumns::meanAndStandardDeviation(const Field&, Value& mean, Value& stddev, idx_t& N) const

Compute mean value and standard deviation of scalar field.

Parameters
mean out Mean value
stddev out Standard deviation
out Number of value used to create the mean

void atlas::functionspace::NodeColumns::meanAndStandardDeviationPerLevel(const Field&, Field& mean, Field& stddev, idx_t& N) const

Compute mean values and standard deviations of field for vertical level separately.

Parameters
mean out Field of dimension of input without the nodes index
stddev out Field of dimension of input without the nodes index
out Number of values used to create the means

std::string atlas::functionspace::NodeColumns::type() const

size_t atlas::functionspace::NodeColumns::footprint() const

std::string atlas::functionspace::NodeColumns::distribution() const

Field atlas::functionspace::NodeColumns::createField(const eckit::Configuration&) const

Field atlas::functionspace::NodeColumns::createField(const Field&) const

Field atlas::functionspace::NodeColumns::createField(const Field&, const eckit::Configuration&) const

template<typename DATATYPE>
Field atlas::functionspace::NodeColumns::createField(const eckit::Configuration&) const

template<typename DATATYPE>
Field atlas::functionspace::NodeColumns::createField() const

void atlas::functionspace::NodeColumns::adjointHaloExchange(const FieldSet&, bool on_device = false) const

void atlas::functionspace::NodeColumns::adjointHaloExchange(const Field&, bool on_device = false) const

void atlas::functionspace::NodeColumns::gather(const FieldSet&, FieldSet&) const

void atlas::functionspace::NodeColumns::gather(const Field&, Field&) const

const parallel::GatherScatter& atlas::functionspace::NodeColumns::gather() const

void atlas::functionspace::NodeColumns::scatter(const FieldSet&, FieldSet&) const

void atlas::functionspace::NodeColumns::scatter(const Field&, Field&) const

const parallel::GatherScatter& atlas::functionspace::NodeColumns::scatter() const

const util::PartitionPolygon& atlas::functionspace::NodeColumns::polygon(idx_t halo = 0) const

const util::PartitionPolygons& atlas::functionspace::NodeColumns::polygons() const

const Projection& atlas::functionspace::NodeColumns::projection() const

idx_t atlas::functionspace::NodeColumns::part() const

idx_t atlas::functionspace::NodeColumns::nb_parts() const

idx_t atlas::functionspace::NodeColumns::size() const

Field atlas::functionspace::NodeColumns::lonlat() const

Field atlas::functionspace::NodeColumns::ghost() const

Field atlas::functionspace::NodeColumns::global_index() const

Field atlas::functionspace::NodeColumns::remote_index() const

Field atlas::functionspace::NodeColumns::partition() const

std::string atlas::functionspace::NodeColumns::mpi_comm() const