Flow123d  master-f44eb46
Classes | Namespaces | Macros | Functions
field_model.hh File Reference
#include <armadillo>
#include <iostream>
#include <tuple>
#include <string>
#include <vector>
#include <utility>
#include <type_traits>
#include "fields/field.hh"
#include "fields/field_common.hh"
#include "fields/field_algo_base.hh"
#include "fields/field_values.hh"
#include "fields/field_value_cache.hh"
#include "fields/multi_field.hh"
#include "system/fmt/posix.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  detail::model_cache_item< CALLABLE, FIELD_TUPLE, INDEX >
 base case for building up arguments for the function call More...
 
struct  detail::model_cache_item< CALLABLE, FIELD_TUPLE, 0 >
 terminal case - do the actual function call More...
 
struct  detail::n_components< FIELD_TUPLE, INDEX >
 
struct  detail::n_components< FIELD_TUPLE, 0 >
 
struct  detail::get_components< FIELD_TUPLE, INDEX >
 
struct  detail::get_components< FIELD_TUPLE, 0 >
 
struct  detail::get_dependency< FIELD_TUPLE, INDEX >
 
struct  detail::get_dependency< FIELD_TUPLE, 0 >
 
class  FieldModel< spacedim, Value, Fn, InputFields >
 
class  Model< spacedim, Value >
 

Namespaces

 detail
 

Macros

#define wrap_overload(func)   [](auto&&... ps){ return func( std::forward<decltype(ps)>(ps)... ); }
 

Functions

template<int spacedim, class Value >
auto detail::field_component (const MultiField< spacedim, Value > &f, uint i_comp) -> decltype(auto)
 
template<int spacedim, class Value >
auto detail::field_component (const Field< spacedim, Value > &f, FMT_UNUSED uint i_comp) -> decltype(auto)
 
template<typename Function , typename Tuple >
auto detail::call (Function f, Tuple t)
 

Detailed Description

 * Copyright (C) 2015 Technical University of Liberec. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Definition in file field_model.hh.

Macro Definition Documentation

◆ wrap_overload

#define wrap_overload (   func)    [](auto&&... ps){ return func( std::forward<decltype(ps)>(ps)... ); }

Wrapper for resolution of the overloaded functions passed as a parameter to the FieldModel.

Example:

double product(double x, double y) {...}
Vec product(double x, Vec y) {...}
Model<3, FieldValue<3>::VectorFixed>::create(wrapper_overload(product), f_scal, f_vec);

Should automaticaly resolve the second model_cache_item::eval function.

Definition at line 53 of file field_model.hh.