Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
DSEL-Variational-Formulation

Variational forms provided by the library. More...

+ Collaboration diagram for DSEL-Variational-Formulation:

Functions

template<typename ... Ts>
auto Feel::form1 (Ts &&... v)
 create a linear form using named arguments More...
 
template<typename ... Ts>
auto Feel::form2 (Ts &&... v)
 create a bi-linear form using named arguments More...
 
template<typename ExprT1 , typename ExprT2 >
requires VfExpr<ExprT1> || VfExpr<ExprT2>
auto Feel::vf::operator^ (ExprT1 &&__e1, ExprT2 &&__e2)
 provide pow expression e1^e2
 
template<typename ExprT1 , typename ExprT2 >
auto Feel::vf::powImpl (ExprT1 &&__e1, ExprT2 &&__e2)
 provide pow expression e1^e2 More...
 
template<typename ExprT >
Expr< PrintExpr< ExprT > > Feel::vf::print (ExprT v, std::string t="")
 print an expression during evaluation. More...
 
template<typename ... Ts>
auto Feel::vf::project (Ts &&... v)
 projection/interpolation of an expresion onto a noal functionspace More...
 
template<typename T >
Expr< Rand< T > > Feel::vf::rand ()
 provide random expression in ]lo,hi[ More...
 
template<typename T >
Expr< Rand< T > > Feel::vf::rand (T lo, T hi)
 provide random expression in ]lo,hi[ More...
 
template<typename ExprT1 >
Expr< Val< typename mpl::if_< boost::is_arithmetic< ExprT1 >, mpl::identity< Cst< ExprT1 > >, mpl::identity< ExprT1 > >::type::type > > val (ExprT1 const &__e1)
 precompute expression tensorThis allows for more efficient bi/linear form assembly
 

Detailed Description

Variational forms provided by the library.

Function Documentation

◆ form1()

template<typename ... Ts>
auto Feel::form1 ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/form.hpp>

create a linear form using named arguments

auto a = form1(_test=Xh, _backend=backend(_worldcomm=Xh->worldCommPtr()), _vector=backend->newVector( _test=Xh ) );
a = integrate(...);
auto form1(Ts &&... v)
create a linear form using named arguments
Definition: form.hpp:79

Referenced by Feel::projector().

◆ form2()

template<typename ... Ts>
auto Feel::form2 ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/form.hpp>

create a bi-linear form using named arguments

auto a = form2(_test=Xh, _trial=Yh, _backend=backend(_worldcomm=Xh->worldCommPtr()), _matrix=backend->newVector( _test=Xh, _trial=Yh ) );
a = integrate(...);
auto form2(Ts &&... v)
create a bi-linear form using named arguments
Definition: form.hpp:115
Parameters
_testtest space
_trialtrial space
_initinitialize the form (default: false)
_properties
_backendalgrebraic backend
_matrixalgebraic representation of the bilinear form
_pattern
_rowstart
_colstart
_namename of the bilinear for; (default: bilinearform.a)

◆ powImpl()

template<typename ExprT1 , typename ExprT2 >
auto Feel::vf::powImpl ( ExprT1 &&  __e1,
ExprT2 &&  __e2 
)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/pow.hpp>

provide pow expression e1^e2

std::cout << integrate( _range=elements(mesh), _expr=pow( Px(), Py() ) ).evaluate();
auto elements(MeshType const &mesh, entity_process_t ept=entity_process_t::LOCAL_ONLY)
Definition: filters.hpp:92

Referenced by Feel::vf::pow().

◆ print()

template<typename ExprT >
Expr< PrintExpr< ExprT > > Feel::vf::print ( ExprT  v,
std::string  t = "" 
)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/print.hpp>

print an expression during evaluation.

This function is typically used for debugging purposes and it allows to check the numerical results of expressions and sub-expressions.

The following code prints the intermediary results of the evaluation of \(\int_\Omega x y\)

auto e = Px()*Py();
std::cout << integrate( _range=elements(mesh), _expr=print(e,"e=") ).evaluate();
Returns
the expression that was printed.

◆ project()

template<typename ... Ts>
auto Feel::vf::project ( Ts &&...  v)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/projectors.hpp>

projection/interpolation of an expresion onto a noal functionspace

  • _space the function space to project onto
  • _range the range of mesh elements to apply the projection (the remaining parts are set to 0)
  • _expr the expression to project
  • _geomap the type of geomap to use (make sense only using high order meshes)
  • _sum sum the multiple nodal contributions if applicable (false by default)

◆ rand() [1/2]

template<typename T >
Expr< Rand< T > > Feel::vf::rand ( )

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/rand.hpp>

provide random expression in ]lo,hi[

Parameters
lolower end of the interval
hiupper of the interval

◆ rand() [2/2]

template<typename T >
Expr< Rand< T > > Feel::vf::rand ( T  lo,
T  hi 
)

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feelvf/rand.hpp>

provide random expression in ]lo,hi[

Parameters
lolower end of the interval
hiupper of the interval