24#define ElementConstr_D 0
25#define ElementDestr_D 0
67 bool localCoord =
false)
const;
72 std::unique_ptr<concepts::QuadratureRule1d>
int_;
119 virtual std::ostream&
info(std::ostream& os)
const;
126 static std::unique_ptr<LineGraphics> graphics_;
141 nullptr), secondDerivativeUsed_(
false) {
152 return shpfct_.get();
156 return shpfctD_.get();
161 if (!secondDerivativeUsed_) {
165 secondDerivativeUsed_ =
true;
167 return shpfctDD_.get();
175 void recomputeSecondDerivativeOfShapefunctions_();
178 std::unique_ptr<concepts::Karniadakis<1, 0> > shpfct_;
180 std::unique_ptr<concepts::Karniadakis<1, 1> > shpfctD_;
183 mutable std::unique_ptr<concepts::Karniadakis<1, 2> > shpfctDD_;
185 mutable bool secondDerivativeUsed_;
209 return shpfct_.get();
214 std::unique_ptr<concepts::Legendre> shpfct_;
236 : BaseT(cell,p),
T_(T1)
240 DEBUGL(ElementConstr_D, cell <<
", p = " << p <<
", T = " <<
T_);
245 DEBUGL(ElementDestr_D,
"done.");
258 virtual std::ostream& info(std::ostream& os)
const override;
virtual Real3d elemMap(const Real coord_local) const
Element map from point local coordinates in 1D.
virtual Real jacobianDeterminant(const Real x) const =0
Returns the determinant of the Jacobian.
Edge & connector() const
Returns the connector (topology)
virtual Real3d vertex(const uint i) const
Returns the coordinates of the ith vertex.
hp1D::BaseElement< F > & operator++(int)=0
Returns the next element in the scanned set.
void append(TColumn< F > *T)
ushort p_
T matrix of the element.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const concepts::ElementGraphics< Real > * graphics() const
Returns element graphics class.
virtual void recomputeShapefunctions()=0
virtual const concepts::EdgeNd & cell() const
Returns the cell on which the element is built.
virtual const concepts::ShapeFunction1D< Real > * shpfct() const =0
Returns the shape functions.
concepts::TMatrix< typename BaseT::FieldT > T_
T matrix of the element.
void appendT(concepts::TColumn< typename BaseT::FieldT > *T)
Appends the T columns to the T matrix.
GenericElement(const concepts::EdgeNd &cell, uint p, concepts::TColumn< typename BaseT::FieldT > *T0, concepts::TColumn< typename BaseT::FieldT > *T1)
Real jacobianDeterminant(const Real x) const
Computes the determinant of the Jacobian.
std::unique_ptr< concepts::QuadratureRule1d > int_
The integration rule.
const concepts::QuadratureRule1d * integration() const
Returns the integration rule.
static concepts::QuadRuleFactory & rule()
const concepts::Real3d chi(const Real x) const
virtual bool quadraturePoint(uint i, intPoint &p, intFormType form=ZERO, bool localCoord=false) const
const concepts::EdgeNd & cell_
The cell.
The following two types are shape function mixins.
void recomputeShapefunctions() override
const concepts::Karniadakis< 1, 1 > * shpfctD() const
Returns the derivatives of the shape functions.
const concepts::Karniadakis< 1, 2 > * shpfctDD() const
Returns the second derivatives of the shape functions.
const concepts::Karniadakis< 1, 0 > * shpfct() const override
Returns the shape functions.
void recomputeShapefunctions() override
const concepts::Legendre * shpfct() const override
Returns the shape functions.
#define DEBUGL(doit, msg)