8#ifndef model_BilinearWeakForm_H_
9#define model_BilinearWeakForm_H_
14#include <Eigen/Sparse>
27 template <
typename _BilinearFormType,
typename _IntegrationDomainType>
55 throw std::invalid_argument(
"Null FEM form.");
66 std::vector<Eigen::Triplet<double> > glbtrip;
83 const size_t gI= ele.node(nodeID_I).gID*
dofPerNode+nodeDof_I;
87 const size_t gJ=ele.node(nodeID_J).gID*
dofPerNode+nodeDof_J;
89 glbtrip.emplace_back(gI,gJ,ke(
i,
j));
97 template <
typename AbscissaType>
112 template<
class T1,
class T2,
class FE,
int D,
int Q,
template<
short unsigned int,
size_t>
class Rule>
function int_R syms a b c u real f
auto operator*(const std::shared_ptr< BilinearForm< T1, T2 > > &f, const IntegrationDomain< FE, D, Q, Rule > &dom)
static VectorHigherDimD x2l(const VectorDimD &X)