12#ifndef BELFEM_CL_IF_INTEGRATIONDATA_HPP
13#define BELFEM_CL_IF_INTEGRATIONDATA_HPP
38 bool mOwnShapeFunction = false ;
52 uint mNumberOfIntegrationPoints = 0 ;
66 const bool aClaimOwnership );
88 const uint aIntegrationOrder=0,
98 const uint aOrientation=0,
99 const uint aIntegrationOrder=0,
141 phi(
const uint aIndex )
const ;
157 N(
const uint aIndex )
const ;
194 populate_for_slave_tri(
const uint aFaceIndex,
195 const uint aIntegrationOrder,
204 populate_for_slave_quad(
205 const uint aSlaveIndex,
206 const uint aOrientation,
207 const uint aIntegrationOrder,
216 populate_for_slave_tet(
217 const uint aSlaveIndex,
218 const uint aOrientation,
219 const uint aIntegrationOrder,
228 populate_for_slave_penta(
229 const uint aSlaveIndex,
230 const uint aOrientation,
231 const uint aIntegrationOrder,
240 populate_for_slave_hex(
241 const uint aSlaveIndex,
242 const uint aOrientation,
243 const uint aIntegrationOrder,
259 return mShapeFunction ;
267 return mNumberOfIntegrationPoints ;
291 return mPhi( aIndex ) ;
299 "dphidxi can only be called for line elements" );
301 return mdPhidxi( aIndex ) ;
309 return mN( aIndex ) ;
317 return mNvector( aIndex ) ;
325 return mdNdXi( aIndex );
333 return md2NdXi2( aIndex );
#define BELFEM_ASSERT(aCheck,...)
Definition assert.hpp:244
A bounds-checked wrapper around std::vector.
Definition cl_Cell.hpp:45
const Matrix< real > & points() const
return the integration points
Definition cl_IF_IntegrationData.hpp:281
void populate_for_slave(const uint aSlaveIndex, const uint aOrientation=0, const uint aIntegrationOrder=0, const IntegrationScheme aScheme=IntegrationScheme::GAUSS)
special function for popularization if this is a sideset
Definition cl_IF_IntegrationData.cpp:113
IntegrationData(const ElementType aElementType, const InterpolationType aType=InterpolationType::LAGRANGE, InterpolationFunction *aShapeFunction=nullptr)
Definition cl_IF_IntegrationData.cpp:26
uint number_of_integration_points() const
tells how many integration points are used
Definition cl_IF_IntegrationData.hpp:265
const Matrix< real > & d2NdXi2(const uint aIndex) const
return the second derivative of N
Definition cl_IF_IntegrationData.hpp:331
const Vector< real > & phi(const uint aIndex) const
return the node shape function as vector
Definition cl_IF_IntegrationData.hpp:289
const InterpolationFunction * function() const
access the shape function
Definition cl_IF_IntegrationData.hpp:257
void populate_for_master(const uint aMasterIndex, const uint aIntegrationOrder=0, const IntegrationScheme aScheme=IntegrationScheme::GAUSS)
special function for popularization if this is a sideset
Definition cl_IF_IntegrationData.cpp:95
const Vector< real > & weights() const
return the integration weights
Definition cl_IF_IntegrationData.hpp:273
const Vector< real > & dphidxi(const uint aIndex) const
return the node shape function deriivative as vector (line element only)
Definition cl_IF_IntegrationData.hpp:296
const Matrix< real > & Nvector(const uint aIndex) const
return the node shape function as Matrix, for vector field
Definition cl_IF_IntegrationData.hpp:315
const Matrix< real > & dNdXi(const uint aIndex) const
return the first derivative of N
Definition cl_IF_IntegrationData.hpp:323
const Matrix< real > & N(const uint aIndex) const
return the node shape function as Matrix (scalar field)
Definition cl_IF_IntegrationData.hpp:307
void populate(const uint aIntegrationOrder=0, const IntegrationScheme aScheme=IntegrationScheme::GAUSS)
default function for popularization
Definition cl_IF_IntegrationData.cpp:75
the shape function base class
Definition cl_IF_InterpolationFunction.hpp:31
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
InterpolationType
Definition Mesh_Enums.hpp:99
@ LAGRANGE
Definition Mesh_Enums.hpp:100
IntegrationScheme
Definition en_IntegrationScheme.hpp:22
@ GAUSS
Definition en_IntegrationScheme.hpp:23
unsigned int uint
Definition typedefs.hpp:30
ElementType
Element types.
Definition Mesh_Enums.hpp:27