5#ifndef BELFEM_CL_IF_INTEGRATIONDATA_HPP
6#define BELFEM_CL_IF_INTEGRATIONDATA_HPP
31 bool mOwnShapeFunction = false ;
45 uint mNumberOfIntegrationPoints = 0 ;
59 const bool aClaimOwnership );
81 const uint aIntegrationOrder=0,
91 const uint aOrientation=0,
92 const uint aIntegrationOrder=0,
134 phi(
const uint aIndex )
const ;
150 N(
const uint aIndex )
const ;
187 populate_for_slave_tri(
const uint aFaceIndex,
188 const uint aIntegrationOrder,
197 populate_for_slave_quad(
198 const uint aSlaveIndex,
199 const uint aOrientation,
200 const uint aIntegrationOrder,
209 populate_for_slave_tet(
210 const uint aSlaveIndex,
211 const uint aOrientation,
212 const uint aIntegrationOrder,
221 populate_for_slave_penta(
222 const uint aSlaveIndex,
223 const uint aOrientation,
224 const uint aIntegrationOrder,
233 populate_for_slave_hex(
234 const uint aSlaveIndex,
235 const uint aOrientation,
236 const uint aIntegrationOrder,
252 return mShapeFunction ;
260 return mNumberOfIntegrationPoints ;
284 return mPhi( aIndex ) ;
292 "dphidxi can only be called for line elements" );
294 return mdPhidxi( aIndex ) ;
302 return mN( aIndex ) ;
310 return mNvector( aIndex ) ;
318 return mdNdXi( aIndex );
326 return md2NdXi2( aIndex );
#define BELFEM_ASSERT(aCheck,...)
Definition assert.hpp:244
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
const Matrix< real > & points() const
return the integration points
Definition cl_IF_IntegrationData.hpp:274
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:106
IntegrationData(const ElementType aElementType, const InterpolationType aType=InterpolationType::LAGRANGE, InterpolationFunction *aShapeFunction=nullptr)
Definition cl_IF_IntegrationData.cpp:19
uint number_of_integration_points() const
tells how many integration points are used
Definition cl_IF_IntegrationData.hpp:258
const Matrix< real > & d2NdXi2(const uint aIndex) const
return the second derivative of N
Definition cl_IF_IntegrationData.hpp:324
const Vector< real > & phi(const uint aIndex) const
return the node shape function as vector
Definition cl_IF_IntegrationData.hpp:282
const InterpolationFunction * function() const
access the shape function
Definition cl_IF_IntegrationData.hpp:250
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:88
const Vector< real > & weights() const
return the integration weights
Definition cl_IF_IntegrationData.hpp:266
const Vector< real > & dphidxi(const uint aIndex) const
return the node shape function deriivative as vector (line element only)
Definition cl_IF_IntegrationData.hpp:289
const Matrix< real > & Nvector(const uint aIndex) const
return the node shape function as Matrix, for vector field
Definition cl_IF_IntegrationData.hpp:308
const Matrix< real > & dNdXi(const uint aIndex) const
return the first derivative of N
Definition cl_IF_IntegrationData.hpp:316
const Matrix< real > & N(const uint aIndex) const
return the node shape function as Matrix (scalar field)
Definition cl_IF_IntegrationData.hpp:300
void populate(const uint aIntegrationOrder=0, const IntegrationScheme aScheme=IntegrationScheme::GAUSS)
default function for popularization
Definition cl_IF_IntegrationData.cpp:68
the shape function base class
Definition cl_IF_InterpolationFunction.hpp:24
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