21 #ifndef FUB_COMPLETE_FROM_CONS_HPP 
   22 #define FUB_COMPLETE_FROM_CONS_HPP 
   30 #include <type_traits> 
   36 template <
typename Eq, 
typename... Args>
 
   41 template <
typename Equation>
 
   43                       Complete<std::decay_t<Equation>>& complete,
 
   45   using Eq = std::decay_t<Equation>;
 
   48     equation.CompleteFromCons(complete, cons);
 
   57 template <
typename Equation>
 
   59                       Complete<std::decay_t<Equation>>& complete,
 
   60                       const Complete<std::decay_t<Equation>>& cons) {
 
   61   using Eq = std::decay_t<Equation>;
 
   65     equation.CompleteFromCons(complete, 
AsCons(cons));
 
   74 template <
typename Equation>
 
   78   using Eq = std::decay_t<Equation>;
 
   82     equation.CompleteFromCons(complete, cons);
 
   91 template <
typename Equation>
 
   96   using Eq = std::decay_t<Equation>;
 
  100     equation.CompleteFromCons(complete, cons, mask);
 
  104         [&](
auto& dest, 
const auto& src) { dest = mask.select(src, dest); },
 
  110 template <
typename Equation>
 
  114   using Eq = std::decay_t<Equation>;
 
  118     equation.CompleteFromCons(complete, 
AsCons(cons));
 
  127 template <
typename Equation>
 
  134     Load(cons, cons_view, {is...});
 
  136     Store(complete_view, complete, {is...});
 
  159       int n = 
static_cast<int>(get<0>(end) - get<0>(in));
 
  163         Store(out, complete);
 
  166         n = 
static_cast<int>(get<0>(end) - get<0>(in));
 
  177     FUB_ASSERT(Box<0>(complete_view) == Box<0>(cons_view));
 
  178     ForEachRow(std::tuple{complete_view, cons_view},
 
  185     FUB_ASSERT(Box<0>(complete_view) == Box<0>(cons_view));
 
#define FUB_ASSERT(x)
Definition: assert.hpp:39
 
void CompleteFromCons(Equation &&eq, const View< Complete< std::decay_t< Equation >>> &complete_view, const View< const Conservative< std::decay_t< Equation >>> &cons_view)
Definition: CompleteFromCons.hpp:128
 
void CompleteFromCons(Equation &&equation, Complete< std::decay_t< Equation >> &complete, const Conservative< std::decay_t< Equation >> &cons)
Definition: CompleteFromCons.hpp:42
 
Function ForEachIndex(const layout_left::mapping< Extents > &mapping, Function function)
Iterate through the multi-dimensional index space descibed by mapping and invoke function for each su...
Definition: ForEach.hpp:74
 
constexpr SequentialTag seq
Definition: Execution.hpp:31
 
constexpr SimdTag simd
Definition: Execution.hpp:34
 
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
 
constexpr const int kDefaultChunkSize
Definition: Eigen.hpp:39
 
void ForEachVariable(F function, Ts &&... states)
Definition: State.hpp:89
 
void StoreN(nodeduce_t< ViewPointer< Conservative< Eq >>> pointer, const ConservativeArray< Eq > &state, int n)
Definition: StateArray.hpp:416
 
void ForEachRow(const Tuple &views, Function f)
Definition: StateRow.hpp:172
 
decltype(std::declval< Eq >().CompleteFromCons(std::declval< Args >()...)) CompleteFromConsMemberFunction
Definition: CompleteFromCons.hpp:38
 
void Load(State &state, const BasicView< const State, Layout, Rank > &view, const std::array< std::ptrdiff_t, State::Equation::Rank()> &index)
Definition: State.hpp:640
 
ViewPointer< State > Begin(const BasicView< State, Layout, Rank > &view)
Definition: State.hpp:769
 
void LoadN(CompleteArray< Eq, N > &state, const BasicView< const Complete< Eq >, Layout, Rank > &view, int size, nodeduce_t< const std::array< std::ptrdiff_t, std::size_t(Rank)> & > pos)
Definition: StateArray.hpp:310
 
void Advance(ViewPointer< State > &pointer, std::ptrdiff_t n) noexcept
Definition: State.hpp:825
 
const Conservative< Eq > & AsCons(const Conservative< Eq > &x)
Definition: State.hpp:438
 
void Store(const BasicView< Conservative< Eq >, Layout, Eq::Rank()> &view, const Conservative< Eq > &state, const std::array< std::ptrdiff_t, Eq::Rank()> &index)
Definition: State.hpp:663
 
ViewPointer< State > End(const BasicView< State, Layout, Rank > &view)
Definition: State.hpp:782
 
Array< bool, 1 > MaskArray
Definition: Eigen.hpp:59
 
typename detail::ConservativeArrayBaseImpl< Eq, Width >::type ConservativeArrayBase
Definition: StateArray.hpp:132
 
boost::mp11::mp_transform< detail::DepthToStateValueType, typename Equation::ConservativeDepths > ConservativeBase
This type alias transforms state depths into a conservative state associated with a specified equatio...
Definition: State.hpp:247
 
Definition: State.hpp:403
 
Definition: StateArray.hpp:178
 
Definition: CompleteFromCons.hpp:148
 
CompleteFromConsFn< Equation > * this_
Definition: CompleteFromCons.hpp:149
 
void operator()(const Row< Complete< Equation >> &complete_row, const Row< const Conservative< Equation >> &cons_row) const
Definition: CompleteFromCons.hpp:151
 
Definition: CompleteFromCons.hpp:141
 
void CompleteFromCons(execution::SequentialTag, const View< Complete< Equation >> &complete_view, const View< const Conservative< Equation >> &cons_view)
Definition: CompleteFromCons.hpp:182
 
ConservativeArray< Equation > cons_array_
Definition: CompleteFromCons.hpp:144
 
Conservative< Equation > cons_
Definition: CompleteFromCons.hpp:146
 
Complete< Equation > complete_
Definition: CompleteFromCons.hpp:145
 
Equation equation_
Definition: CompleteFromCons.hpp:142
 
void CompleteFromCons(execution::OpenMpTag, const View< Complete< Equation >> &complete_view, const View< const Conservative< Equation >> &cons_view)
Definition: CompleteFromCons.hpp:193
 
void CompleteFromCons(execution::OpenMpSimdTag, const View< Complete< Equation >> &complete_view, const View< const Conservative< Equation >> &cons_view)
Definition: CompleteFromCons.hpp:199
 
void CompleteFromCons(execution::SimdTag, const View< Complete< Equation >> &complete_view, const View< const Conservative< Equation >> &cons_view)
Definition: CompleteFromCons.hpp:174
 
CompleteArray< Equation > complete_array_
Definition: CompleteFromCons.hpp:143
 
This type has a constructor which takes an equation and might allocate any dynamically sized member v...
Definition: State.hpp:335
 
Definition: StateArray.hpp:135
 
This type has a constructor which takes an equation and might allocate any dynamically sized member v...
Definition: State.hpp:251
 
Definition: StateRow.hpp:51
 
Definition: State.hpp:750
 
Definition: Execution.hpp:39
 
Definition: Execution.hpp:36
 
Definition: Execution.hpp:30
 
Definition: Execution.hpp:33
 
This is std::true_type if Op<Args...> is a valid SFINAE expression.
Definition: type_traits.hpp:92