openPMD-api
Classes | Public Member Functions | Public Attributes | Friends | List of all members
openPMD::Iteration Class Reference

Logical compilation of data from one snapshot (e.g. More...

#include <Iteration.hpp>

Inheritance diagram for openPMD::Iteration:
Inheritance graph
[legend]
Collaboration diagram for openPMD::Iteration:
Collaboration graph
[legend]

Public Member Functions

 Iteration (Iteration const &)=default
 
Iterationoperator= (Iteration const &)=default
 
template<typename T >
T time () const
 
template<typename T >
IterationsetTime (T newTime)
 Set the global reference time for this iteration. More...
 
template<typename T >
T dt () const
 
template<typename T >
IterationsetDt (T newDt)
 Set the time step used to reach this iteration. More...
 
double timeUnitSI () const
 
IterationsetTimeUnitSI (double newTimeUnitSI)
 Set the conversion factor to convert time and dt to seconds. More...
 
Iterationclose (bool flush=true)
 Close an iteration. More...
 
Iterationopen ()
 Open an iteration. More...
 
bool closed () const
 Has the iteration been closed? A closed iteration may not (yet) be reopened. More...
 
bool closedByWriter () const
 Has the iteration been closed by the writer? Background: Upon calling Iteration::close(), the openPMD API will add metadata to the iteration in form of an attribute, indicating that the iteration has indeed been closed. More...
 
- Public Member Functions inherited from openPMD::AttributableInterface
Attribute getAttribute (std::string const &key) const
 Retrieve value of Attribute stored with provided key. More...
 
bool deleteAttribute (std::string const &key)
 Remove Attribute of provided value both logically and physically. More...
 
std::vector< std::string > attributes () const
 List all currently stored Attributes' keys. More...
 
size_t numAttributes () const
 Count all currently stored Attributes. More...
 
bool containsAttribute (std::string const &key) const
 Check whether am Attribute with a given key exists. More...
 
std::string comment () const
 Retrieve a user-supplied comment associated with the object. More...
 
AttributableInterfacesetComment (std::string const &comment)
 Populate Attribute corresponding to a comment with the user-supplied comment. More...
 
void seriesFlush ()
 Flush the corresponding Series object. More...
 
MyPath myPath () const
 The path to this object within its containing Series. More...
 
template<typename T >
bool setAttribute (std::string const &key, T value)
 Populate Attribute of provided name with provided value. More...
 
bool setAttribute (std::string const &key, char const value[])
 

Public Attributes

Container< Meshmeshes
 
Container< ParticleSpeciesparticles
 

Friends

template<typename T , typename T_key , typename T_container >
class Container
 
class SeriesInterface
 
class WriteIterations
 
class SeriesIterator
 

Additional Inherited Members

- Protected Types inherited from openPMD::AttributableInterface
enum  ReadMode { IgnoreExisting, OverrideExisting, FullyReread }
 
- Protected Member Functions inherited from openPMD::AttributableInterface
 AttributableInterface (internal::AttributableData *)
 
template<typename T >
 AttributableInterface (T *attri)
 
internal::SeriesInternal const & retrieveSeries () const
 
internal::SeriesInternalretrieveSeries ()
 
void seriesFlush (FlushLevel)
 
void flushAttributes ()
 
void readAttributes (ReadMode)
 
template<typename T >
T readFloatingpoint (std::string const &key) const
 Retrieve the value of a floating point Attribute of user-defined precision with ensured type-safety. More...
 
template<typename T >
std::vector< TreadVectorFloatingpoint (std::string const &key) const
 Retrieve a vector of values of a floating point Attributes of user-defined precision with ensured type-safety. More...
 
AbstractIOHandlerIOHandler ()
 
AbstractIOHandler const * IOHandler () const
 
Writable *& parent ()
 
Writable const * parent () const
 
Writablewritable ()
 
Writable const & writable () const
 
internal::AttributableDataget ()
 
internal::AttributableData const & get () const
 
bool dirty () const
 
bool & dirty ()
 
bool written () const
 
bool & written ()
 
Iteration const & containingIteration () const
 Returns the corresponding Iteration. More...
 
IterationcontainingIteration ()
 
- Protected Attributes inherited from openPMD::LegacyAttributable
std::shared_ptr< internal::AttributableDatam_attributableData
 
- Protected Attributes inherited from openPMD::AttributableInterface
internal::AttributableDatam_attri = nullptr
 

Detailed Description

Logical compilation of data from one snapshot (e.g.

a single simulation cycle).

See also
https://github.com/openPMD/openPMD-standard/blob/latest/STANDARD.md#required-attributes-for-the-basepath

Member Function Documentation

◆ close()

Iteration & openPMD::Iteration::close ( bool  flush = true)

Close an iteration.

No further (backend-propagating) accesses may be performed on this iteration. A closed iteration may not (yet) be reopened.

With an MPI-parallel series, close is an MPI-collective operation.

Returns
Reference to iteration.

◆ closed()

bool openPMD::Iteration::closed ( ) const

Has the iteration been closed? A closed iteration may not (yet) be reopened.

Returns
Whether the iteration has been closed.

◆ closedByWriter()

bool openPMD::Iteration::closedByWriter ( ) const

Has the iteration been closed by the writer? Background: Upon calling Iteration::close(), the openPMD API will add metadata to the iteration in form of an attribute, indicating that the iteration has indeed been closed.

Useful mainly in streaming context when a reader inquires from a writer that it is done writing.

Returns
Whether the iteration has been explicitly closed (yet) by the writer.

◆ dt()

template<typename T >
T openPMD::Iteration::dt ( ) const
inline
Template Parameters
TFloating point type of user-selected precision (e.g. float, double).
Returns
Time step used to reach this iteration.

◆ open()

Iteration & openPMD::Iteration::open ( )

Open an iteration.

Explicitly open an iteration. Usually, file-open operations are delayed until the first load/storeChunk operation is flush-ed. In parallel contexts where it is know that such a first access needs to be run non-collectively, one can explicitly open an iteration through this collective call. Also necessary when using defer_iteration_parsing. The Streaming API (i.e. Series::readIterations()) will call this method implicitly and users need not call it.

Returns
Reference to iteration.

◆ setDt()

template<typename T >
template Iteration & openPMD::Iteration::setDt< long double > ( T  newDt)

Set the time step used to reach this iteration.

Template Parameters
TFloating point type of user-selected precision (e.g. float, double).
Parameters
newDtTime step used to reach this iteration.
Returns
Reference to modified iteration.

◆ setTime()

template<typename T >
template Iteration & openPMD::Iteration::setTime< long double > ( T  newTime)

Set the global reference time for this iteration.

Template Parameters
TFloating point type of user-selected precision (e.g. float, double).
Parameters
newTimeGlobal reference time for this iteration.
Returns
Reference to modified iteration.

◆ setTimeUnitSI()

Iteration & openPMD::Iteration::setTimeUnitSI ( double  newTimeUnitSI)

Set the conversion factor to convert time and dt to seconds.

Parameters
newTimeUnitSInew value for timeUnitSI
Returns
Reference to modified iteration.

◆ time()

template<typename T >
T openPMD::Iteration::time ( ) const
inline
Template Parameters
TFloating point type of user-selected precision (e.g. float, double).
Returns
Global reference time for this iteration.

◆ timeUnitSI()

double openPMD::Iteration::timeUnitSI ( ) const
Returns
Conversion factor to convert time and dt to seconds.

The documentation for this class was generated from the following files: