Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization > Struct Template Reference

#include <staggered_flowmap_discretization.h>

Collaboration diagram for tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >:
[legend]

Public Types

using internal_flowmap_discretization_type = InternalFlowmapDiscretization
 
using real_type = typename internal_flowmap_discretization_type::real_type
 
using vec_type = vec< real_type, num_dimensions()>
 
using pos_type = vec_type
 

Public Member Functions

 staggered_flowmap_discretization (staggered_flowmap_discretization const &other)
 
 staggered_flowmap_discretization (staggered_flowmap_discretization &&other) noexcept
 
auto operator= (staggered_flowmap_discretization const &other) -> staggered_flowmap_discretization &
 
auto operator= (staggered_flowmap_discretization &&other) -> staggered_flowmap_discretization &
 
template<typename Flowmap , typename... InternalFlowmapArgs>
 staggered_flowmap_discretization (Flowmap &&flowmap, arithmetic auto const t0, arithmetic auto const tau, arithmetic auto const delta_t, InternalFlowmapArgs &&...args)
 
auto write_to_disk (bool const w=true)
 
auto num_steps () const
 
auto step (std::size_t const i) const -> auto const &
 
auto step (std::size_t const i) -> auto &
 
auto sample (pos_type x, forward_tag const tag) const
 
auto sample (pos_type x, backward_tag const tag) const
 

Static Public Member Functions

static auto constexpr num_dimensions () -> std::size_t
 

Public Attributes

std::vector< std::unique_ptr< internal_flowmap_discretization_type > > m_steps = {}
 
std::vector< filesystem::path > m_filepaths_to_steps = {}
 
bool m_write_to_disk = false
 
std::mutex m_deletion_mutex
 

Member Typedef Documentation

◆ internal_flowmap_discretization_type

template<typename InternalFlowmapDiscretization >
using tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::internal_flowmap_discretization_type = InternalFlowmapDiscretization

◆ pos_type

template<typename InternalFlowmapDiscretization >
using tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::pos_type = vec_type

◆ real_type

template<typename InternalFlowmapDiscretization >
using tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::real_type = typename internal_flowmap_discretization_type::real_type

◆ vec_type

template<typename InternalFlowmapDiscretization >
using tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::vec_type = vec<real_type, num_dimensions()>

Constructor & Destructor Documentation

◆ staggered_flowmap_discretization() [1/3]

template<typename InternalFlowmapDiscretization >
tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::staggered_flowmap_discretization ( staggered_flowmap_discretization< InternalFlowmapDiscretization > const &  other)
inline

◆ staggered_flowmap_discretization() [2/3]

template<typename InternalFlowmapDiscretization >
tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::staggered_flowmap_discretization ( staggered_flowmap_discretization< InternalFlowmapDiscretization > &&  other)
inlinenoexcept

◆ staggered_flowmap_discretization() [3/3]

template<typename InternalFlowmapDiscretization >
template<typename Flowmap , typename... InternalFlowmapArgs>
tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::staggered_flowmap_discretization ( Flowmap &&  flowmap,
arithmetic auto const  t0,
arithmetic auto const  tau,
arithmetic auto const  delta_t,
InternalFlowmapArgs &&...  args 
)
inline

Member Function Documentation

◆ num_dimensions()

template<typename InternalFlowmapDiscretization >
static auto constexpr tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ num_steps()

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::num_steps ( ) const
inline

◆ operator=() [1/2]

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::operator= ( staggered_flowmap_discretization< InternalFlowmapDiscretization > &&  other) -> staggered_flowmap_discretization &
inline

◆ operator=() [2/2]

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::operator= ( staggered_flowmap_discretization< InternalFlowmapDiscretization > const &  other) -> staggered_flowmap_discretization &
inline

◆ sample() [1/2]

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::sample ( pos_type  x,
backward_tag const  tag 
) const
inline

Evaluates flow map in backward direction at time t0 with maximal available advection time.

Parameters
xposition
Returns
phi(x, t_end, t0 - t_end)

◆ sample() [2/2]

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::sample ( pos_type  x,
forward_tag const  tag 
) const
inline

Evaluates flow map in forward direction at time t0 with maximal available advection time.

Parameters
xposition
Returns
phi(x, t0, t_end - t0)

◆ step() [1/2]

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::step ( std::size_t const  i) -> auto &
inline

◆ step() [2/2]

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::step ( std::size_t const  i) const -> auto const &
inline

◆ write_to_disk()

template<typename InternalFlowmapDiscretization >
auto tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::write_to_disk ( bool const  w = true)
inline

Member Data Documentation

◆ m_deletion_mutex

template<typename InternalFlowmapDiscretization >
std::mutex tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::m_deletion_mutex
mutable

◆ m_filepaths_to_steps

template<typename InternalFlowmapDiscretization >
std::vector<filesystem::path> tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::m_filepaths_to_steps = {}

◆ m_steps

template<typename InternalFlowmapDiscretization >
std::vector<std::unique_ptr<internal_flowmap_discretization_type> > tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::m_steps = {}
mutable

◆ m_write_to_disk

template<typename InternalFlowmapDiscretization >
bool tatooine::staggered_flowmap_discretization< InternalFlowmapDiscretization >::m_write_to_disk = false

The documentation for this struct was generated from the following file: