atlas::trans::TransIFS class

Derived classes

class TransIFSNodeColumns
class TransIFSStructuredColumns

Constructors, destructors, conversion operators

TransIFS(const Grid&, const long truncation, const eckit::Configuration& = util::NoConfig())
TransIFS(const Grid&, const Domain&, const long truncation, const eckit::Configuration& = util::NoConfig())
TransIFS(const Cache&, const Grid&, const long truncation, const eckit::Configuration& = util::NoConfig())
TransIFS(const Cache&, const Grid&, const Domain&, const long truncation, const eckit::Configuration& = util::NoConfig())
~TransIFS() override
operator::Trans_t*() const

Public functions

auto trans() const -> ::Trans_t*
auto truncation() const -> int override
auto nb_spectral_coefficients() const -> size_t override
auto nb_spectral_coefficients_global() const -> size_t override
auto grid() const -> const Grid& override
auto spectral() const -> const functionspace::Spectral& override
void dirtrans(const Field& gpfield, Field& spfield, const eckit::Configuration& = util::NoConfig()) const override
void dirtrans(const FieldSet& gpfields, FieldSet& spfields, const eckit::Configuration& = util::NoConfig()) const override
void dirtrans_wind2vordiv(const Field& gpwind, Field& spvor, Field& spdiv, const eckit::Configuration& = util::NoConfig()) const override
void dirtrans_adj(const Field& spfield, Field& gpfield, const eckit::Configuration& = util::NoConfig()) const override
void dirtrans_adj(const FieldSet& spfields, FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const override
void dirtrans_wind2vordiv_adj(const Field& spvor, const Field& spdiv, Field& gpwind, const eckit::Configuration& = util::NoConfig()) const override
void invtrans(const Field& spfield, Field& gpfield, const eckit::Configuration& = util::NoConfig()) const override
void invtrans(const FieldSet& spfields, FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_grad(const Field& spfield, Field& gradfield, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_grad(const FieldSet& spfields, FieldSet& gradfields, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_vordiv2wind(const Field& spvor, const Field& spdiv, Field& gpwind, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_adj(const Field& gpfield, Field& spfield, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_adj(const FieldSet& gpfields, FieldSet& spfields, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_grad_adj(const Field& gradfield, Field& spfield, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_grad_adj(const FieldSet& spfields, FieldSet& gradfields, const eckit::Configuration& = util::NoConfig()) const override
void invtrans_vordiv2wind_adj(const Field& gpwind, Field& spvor, Field& spdiv, const eckit::Configuration& = util::NoConfig()) const override
void invtrans(const int nb_scalar_fields, const double scalar_spectra[], const int nb_vordiv_fields, const double vorticity_spectra[], const double divergence_spectra[], double gp_fields[], const eckit::Configuration& = util::NoConfig()) const override
invtrans
void invtrans(const int nb_scalar_fields, const double scalar_spectra[], double gp_fields[], const eckit::Configuration& = util::NoConfig()) const override
invtrans
void invtrans(const int nb_vordiv_fields, const double vorticity_spectra[], const double divergence_spectra[], double gp_fields[], const eckit::Configuration& = util::NoConfig()) const override
Inverse transform of vorticity/divergence to wind(U/V)
void invtrans_adj(const int nb_scalar_fields, const double gp_fields[], const int nb_vordiv_fields, double vorticity_spectra[], double divergence_spectra[], double scalar_spectra[], const eckit::Configuration& = util::NoConfig()) const override
invtrans_adj
void invtrans_adj(const int nb_scalar_fields, const double gp_fields[], double scalar_spectra[], const eckit::Configuration& = util::NoConfig()) const override
invtrans_adj
void invtrans_adj(const int nb_vordiv_fields, const double gp_fields[], double vorticity_spectra[], double divergence_spectra[], const eckit::Configuration& = util::NoConfig()) const override
invtrans_adj
void dirtrans(const int nb_fields, const double scalar_fields[], double scalar_spectra[], const eckit::Configuration& = util::NoConfig()) const override
Direct transform of scalar fields.
void dirtrans(const int nb_fields, const double wind_fields[], double vorticity_spectra[], double divergence_spectra[], const eckit::Configuration& = util::NoConfig()) const override
Direct transform of wind(U/V) to vorticity/divergence.
void __dirtrans(const functionspace::StructuredColumns&, const Field& gpfield, const functionspace::Spectral&, Field& spfield, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans(const functionspace::NodeColumns&, const Field& gpfield, const functionspace::Spectral&, Field& spfield, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans(const functionspace::StructuredColumns&, const FieldSet& gpfields, const functionspace::Spectral&, FieldSet& spfields, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans(const functionspace::NodeColumns&, const FieldSet& gpfields, const functionspace::Spectral&, FieldSet& spfields, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_wind2vordiv(const functionspace::StructuredColumns&, const Field& gpwind, const functionspace::Spectral&, Field& spvor, Field& spdiv, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_wind2vordiv(const functionspace::NodeColumns&, const Field& gpwind, const functionspace::Spectral&, Field& spvor, Field& spdiv, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_adj(const functionspace::Spectral&, const Field& spfield, const functionspace::StructuredColumns&, Field& gpfield, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_adj(const functionspace::Spectral&, const Field& spfield, const functionspace::NodeColumns&, Field& gpfield, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_adj(const functionspace::Spectral&, const FieldSet& spfields, const functionspace::StructuredColumns&, FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_adj(const functionspace::Spectral&, const FieldSet& spfields, const functionspace::NodeColumns&, FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_wind2vordiv_adj(const functionspace::Spectral&, const Field& spvor, const Field& spdiv, const functionspace::StructuredColumns&, Field& gpwind, const eckit::Configuration& = util::NoConfig()) const
void __dirtrans_wind2vordiv_adj(const functionspace::Spectral&, const Field& spvor, const Field& spdiv, const functionspace::NodeColumns&, Field& gpwind, const eckit::Configuration& = util::NoConfig()) const
void __invtrans(const functionspace::Spectral&, const Field& spfield, const functionspace::StructuredColumns&, Field& gpfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans(const functionspace::Spectral&, const Field& spfield, const functionspace::NodeColumns&, Field& gpfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans(const functionspace::Spectral&, const FieldSet& spfields, const functionspace::StructuredColumns&, FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans(const functionspace::Spectral&, const FieldSet& spfields, const functionspace::NodeColumns&, FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad(const functionspace::Spectral& sp, const Field& spfield, const functionspace::StructuredColumns& gp, Field& gradfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad(const functionspace::Spectral& sp, const Field& spfield, const functionspace::NodeColumns& gp, Field& gradfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad(const functionspace::Spectral& sp, const FieldSet& spfields, const functionspace::StructuredColumns& gp, FieldSet& gradfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad(const functionspace::Spectral& sp, const FieldSet& spfields, const functionspace::NodeColumns& gp, FieldSet& gradfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_vordiv2wind(const functionspace::Spectral&, const Field& spvor, const Field& spdiv, const functionspace::StructuredColumns&, Field& gpwind, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_vordiv2wind(const functionspace::Spectral&, const Field& spvor, const Field& spdiv, const functionspace::NodeColumns&, Field& gpwind, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_adj(const functionspace::Spectral&, Field& spfield, const functionspace::StructuredColumns&, const Field& gpfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_adj(const functionspace::Spectral&, Field& spfield, const functionspace::NodeColumns&, const Field& gpfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_adj(const functionspace::Spectral&, FieldSet& spfields, const functionspace::StructuredColumns&, const FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_adj(const functionspace::Spectral&, FieldSet& spfields, const functionspace::NodeColumns&, const FieldSet& gpfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad_adj(const functionspace::Spectral& sp, Field& spfield, const functionspace::StructuredColumns& gp, const Field& gradfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad_adj(const functionspace::Spectral& sp, Field& spfield, const functionspace::NodeColumns& gp, const Field& gradfield, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad_adj(const functionspace::Spectral& sp, FieldSet& spfields, const functionspace::StructuredColumns& gp, const FieldSet& gradfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_grad_adj(const functionspace::Spectral& sp, FieldSet& spfields, const functionspace::NodeColumns& gp, const FieldSet& gradfields, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_vordiv2wind_adj(const functionspace::Spectral&, Field& spvor, Field& spdiv, const functionspace::StructuredColumns&, const Field& gpwind, const eckit::Configuration& = util::NoConfig()) const
void __invtrans_vordiv2wind_adj(const functionspace::Spectral&, Field& spvor, Field& spdiv, const functionspace::NodeColumns&, const Field& gpwind, const eckit::Configuration& = util::NoConfig()) const
void specnorm(const int nb_fields, const double spectra[], double norms[], int rank = 0) const
void distspec(const int nb_fields, const int origin[], const double global_spectra[], double spectra[]) const
distspec
void gathspec(const int nb_fields, const int destination[], const double spectra[], double global_spectra[]) const
gathspec
void distgrid(const int nb_fields, const int origin[], const double global_fields[], double fields[]) const
distgrid
void gathgrid(const int nb_fields, const int destination[], const double fields[], double global_fields[]) const
gathgrid

Private functions

auto handle() const -> int override

Function documentation

void atlas::trans::TransIFS::invtrans(const int nb_scalar_fields, const double scalar_spectra[], const int nb_vordiv_fields, const double vorticity_spectra[], const double divergence_spectra[], double gp_fields[], const eckit::Configuration& = util::NoConfig()) const override

invtrans

Parameters
nb_scalar_fields
scalar_spectra [NSPEC2][nb_scalar_fields]
nb_vordiv_fields
vorticity_spectra [NSPEC2][nb_vordiv_fields]
divergence_spectra [NSPEC2][nb_vordiv_fields]
gp_fields Ordering: [NGPBLKS][NFLD][NPROMA] if distributed, [NFLD][NGPTOTG] if global ( add option::global() )

void atlas::trans::TransIFS::invtrans(const int nb_scalar_fields, const double scalar_spectra[], double gp_fields[], const eckit::Configuration& = util::NoConfig()) const override

invtrans

Parameters
nb_scalar_fields
scalar_spectra
gp_fields

void atlas::trans::TransIFS::invtrans_adj(const int nb_scalar_fields, const double gp_fields[], const int nb_vordiv_fields, double vorticity_spectra[], double divergence_spectra[], double scalar_spectra[], const eckit::Configuration& = util::NoConfig()) const override

invtrans_adj

Parameters
nb_scalar_fields
gp_fields Ordering: [NGPBLKS][NFLD][NPROMA] if distributed, [NFLD][NGPTOTG] if global ( add option::global() )
nb_vordiv_fields
vorticity_spectra [NSPEC2][nb_vordiv_fields]
divergence_spectra [NSPEC2][nb_vordiv_fields]
scalar_spectra [NSPEC2][nb_scalar_fields]

void atlas::trans::TransIFS::invtrans_adj(const int nb_scalar_fields, const double gp_fields[], double scalar_spectra[], const eckit::Configuration& = util::NoConfig()) const override

invtrans_adj

Parameters
nb_scalar_fields
gp_fields
scalar_spectra

void atlas::trans::TransIFS::invtrans_adj(const int nb_vordiv_fields, const double gp_fields[], double vorticity_spectra[], double divergence_spectra[], const eckit::Configuration& = util::NoConfig()) const override

invtrans_adj

Parameters
nb_vordiv_fields
gp_fields Ordering: [NGPBLKS][NFLD][NPROMA] if distributed, [NFLD][NGPTOTG] if global ( add option::global() )
vorticity_spectra [NSPEC2][nb_vordiv_fields]
divergence_spectra [NSPEC2][nb_vordiv_fields]

void atlas::trans::TransIFS::dirtrans(const int nb_fields, const double wind_fields[], double vorticity_spectra[], double divergence_spectra[], const eckit::Configuration& = util::NoConfig()) const override

Direct transform of wind(U/V) to vorticity/divergence.

Parameters
nb_fields [in] Number of fields ( both components of wind count as 1 )
wind_fields
vorticity_spectra
divergence_spectra

void atlas::trans::TransIFS::distspec(const int nb_fields, const int origin[], const double global_spectra[], double spectra[]) const

distspec

Parameters
nb_fields
origin
global_spectra
spectra

void atlas::trans::TransIFS::gathspec(const int nb_fields, const int destination[], const double spectra[], double global_spectra[]) const

gathspec

Parameters
nb_fields
destination
spectra
global_spectra

void atlas::trans::TransIFS::distgrid(const int nb_fields, const int origin[], const double global_fields[], double fields[]) const

distgrid

Parameters
nb_fields
origin
global_fields
fields

void atlas::trans::TransIFS::gathgrid(const int nb_fields, const int destination[], const double fields[], double global_fields[]) const

gathgrid

Parameters
nb_fields
destination
fields
global_fields