Tatooine
Namespaces | Functions
Parallel Vectors Operator

Namespaces

namespace  tatooine
 
namespace  tatooine::detail
 

Functions

template<typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (polymorphic::vectorfield< VReal, 3 > const &vf, polymorphic::vectorfield< WReal, 3 > const &wf, rectilinear_grid< XDomain, YDomain, ZDomain > const &g, TReal const t, execution_policy_tag auto const policy, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (polymorphic::vectorfield< VReal, 3 > const &vf, polymorphic::vectorfield< WReal, 3 > const &wf, rectilinear_grid< XDomain, YDomain, ZDomain > const &g, TReal const t, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, rectilinear_grid< XDomain, YDomain, ZDomain > const &g, TReal const t, execution_policy_tag auto const policy, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, rectilinear_grid< XDomain, YDomain, ZDomain > const &g, TReal const t, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, rectilinear_grid< XDomain, YDomain, ZDomain > const &g, execution_policy_tag auto const policy, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, rectilinear_grid< XDomain, YDomain, ZDomain > const &g, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, linspace< XReal > const &x, linspace< YReal > const &y, linspace< ZReal > const &z, TReal const t, execution_policy_tag auto const policy, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, linspace< XReal > const &x, linspace< YReal > const &y, linspace< ZReal > const &z, TReal const t, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, linspace< XReal > const &x, linspace< YReal > const &y, linspace< ZReal > const &z, execution_policy_tag auto const policy, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (vectorfield< V, VReal, 3 > const &vf, vectorfield< W, WReal, 3 > const &wf, linspace< XReal > const &x, linspace< YReal > const &y, linspace< ZReal > const &z, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename VReal , typename VIndexing , typename WReal , typename WIndexing , typename AABBReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (dynamic_multidim_array< vec< VReal, 3 >, VIndexing > const &vf, dynamic_multidim_array< vec< WReal, 3 >, WIndexing > const &wf, axis_aligned_bounding_box< AABBReal, 3 > const &bb, execution_policy_tag auto const policy, Preds &&... preds)
 This is an implementation of [5]. More...
 
template<typename VReal , typename VIndexing , typename WReal , typename WIndexing , typename AABBReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors (dynamic_multidim_array< vec< VReal, 3 >, VIndexing > const &vf, dynamic_multidim_array< vec< WReal, 3 >, WIndexing > const &wf, axis_aligned_bounding_box< AABBReal, 3 > const &bb, Preds &&... preds)
 This is an implementation of [5]. More...
 

Detailed Description

Cube Setup

A cube's vertices are numbered like this where

6---------7
/. /|
/ . / |
2---------3 |
| 4. . . |. 5
| . | /
|. |/
0---------1

A cube can be decomposed into 5 tetrahedrons in 2 ways. The first one is called 'non-turned' and the other one is called 'turned'.

Tetrahedrons per cube

The tetrahedrons are setup like this:

Faces with constant x

Faces with constant y

Faces with constant z

Faces with constant z

Function Documentation

◆ parallel_vectors() [1/12]

template<typename VReal , typename VIndexing , typename WReal , typename WIndexing , typename AABBReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( dynamic_multidim_array< vec< VReal, 3 >, VIndexing > const &  vf,
dynamic_multidim_array< vec< WReal, 3 >, WIndexing > const &  wf,
axis_aligned_bounding_box< AABBReal, 3 > const &  bb,
execution_policy_tag auto const  policy,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [2/12]

template<typename VReal , typename VIndexing , typename WReal , typename WIndexing , typename AABBReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( dynamic_multidim_array< vec< VReal, 3 >, VIndexing > const &  vf,
dynamic_multidim_array< vec< WReal, 3 >, WIndexing > const &  wf,
axis_aligned_bounding_box< AABBReal, 3 > const &  bb,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [3/12]

template<typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( polymorphic::vectorfield< VReal, 3 > const &  vf,
polymorphic::vectorfield< WReal, 3 > const &  wf,
rectilinear_grid< XDomain, YDomain, ZDomain > const &  g,
TReal const  t,
execution_policy_tag auto const  policy,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [4/12]

template<typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( polymorphic::vectorfield< VReal, 3 > const &  vf,
polymorphic::vectorfield< WReal, 3 > const &  wf,
rectilinear_grid< XDomain, YDomain, ZDomain > const &  g,
TReal const  t,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [5/12]

template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
linspace< XReal > const &  x,
linspace< YReal > const &  y,
linspace< ZReal > const &  z,
execution_policy_tag auto const  policy,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [6/12]

template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
linspace< XReal > const &  x,
linspace< YReal > const &  y,
linspace< ZReal > const &  z,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [7/12]

template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
linspace< XReal > const &  x,
linspace< YReal > const &  y,
linspace< ZReal > const &  z,
TReal const  t,
execution_policy_tag auto const  policy,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [8/12]

template<typename V , typename W , typename VReal , typename WReal , typename XReal , typename YReal , typename ZReal , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
linspace< XReal > const &  x,
linspace< YReal > const &  y,
linspace< ZReal > const &  z,
TReal const  t,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [9/12]

template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
rectilinear_grid< XDomain, YDomain, ZDomain > const &  g,
execution_policy_tag auto const  policy,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [10/12]

template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
rectilinear_grid< XDomain, YDomain, ZDomain > const &  g,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [11/12]

template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
rectilinear_grid< XDomain, YDomain, ZDomain > const &  g,
TReal const  t,
execution_policy_tag auto const  policy,
Preds &&...  preds 
)

This is an implementation of [5].

◆ parallel_vectors() [12/12]

template<typename V , typename W , typename VReal , typename WReal , typename XDomain , typename YDomain , typename ZDomain , arithmetic TReal, invocable< vec< common_type< VReal, WReal >, 3 > >... Preds>
auto tatooine::parallel_vectors ( vectorfield< V, VReal, 3 > const &  vf,
vectorfield< W, WReal, 3 > const &  wf,
rectilinear_grid< XDomain, YDomain, ZDomain > const &  g,
TReal const  t,
Preds &&...  preds 
)

This is an implementation of [5].