8#ifndef model_LinearForm_H_
9#define model_LinearForm_H_
21 template <
typename TestType,
typename EvalType>
25 static_assert(TestType::rows==EvalType::rows,
"YOU ARE CREATING A LinearForm BETWEEN EXPRESSIONS WITH DIFFERENT NUMBER OF ROWS");
38 const std::shared_ptr<TestExpression<TestType>>
testExp;
45 throw std::invalid_argument(
"Null FEM expression operand.");
52 return testExp->sfm(ele,bary).transpose()*(*evalExp)(ele,bary);
62 template<
class T1,
class T2, std::enable_if_t<std::is_base_of_v<EvalFunction<T2>,T2>,
int> = 0>
65 return std::make_shared<LinearForm<T1,T2>>(
t,
e);
final point of the source segment t
auto operator,(const std::shared_ptr< TestExpression< T1 > > &t, const std::shared_ptr< T2 > &e)