Go to the documentation of this file.
23 #ifndef __FINLEY_ASSEMBLE_H__
24 #define __FINLEY_ASSEMBLE_H__
29 #include <escript/AbstractSystemMatrix.h>
86 template<
typename Scalar>
96 template<
typename Scalar>
102 template<
typename Scalar>
108 template<
typename Scalar>
117 template<
typename Scalar>
123 template<
typename Scalar>
129 template<
typename Scalar>
133 template<
typename Scalar =
double>
135 const index_t* Nodes_Equa,
int num_Equa,
int NN_Sol,
143 template<
typename Scalar>
148 template<
typename Scalar>
153 template<
typename Scalar>
171 template<
typename Scalar>
176 template<
typename Scalar>
181 template<
typename Scalar>
186 const double* QuadWeights,
int numShape,
188 const double* DSDv,
int numTest,
const double* DTDv,
189 double* dTdX,
double* volume,
const index_t* elementId);
192 const double* QuadWeights,
int numShape,
194 const double* DSDv,
int numTest,
const double* DTDv,
195 double* dTdX,
double* volume,
const index_t* elementId);
198 const double* QuadWeights,
int numShape,
200 const double* DSDv,
int numTest,
const double* DTDv,
201 double* dTdX,
double* volume,
const index_t* elementId);
204 const double* QuadWeights,
int numShape,
206 const double* DSDv,
int numTest,
const double* DTDv,
207 double* dTdX,
double* volume,
const index_t* elementId);
210 const double* QuadWeights,
int numShape,
212 const double* DSDv,
int numTest,
const double* DTDv,
213 double* dTdX,
double* volume,
const index_t* elementId);
216 const double* QuadWeights,
int numShape,
218 const double* DSDv,
int numTest,
const double* DTDv,
219 double* dTdX,
double* volume,
const index_t* elementId);
222 const double* QuadWeights,
int numShape,
224 const double* DSDv,
int numTest,
const double* DTDv,
225 double* dTdX,
double* volume,
const index_t* elementId);
228 const double* QuadWeights,
int numShape,
230 const double* DSDv,
int numTest,
const double* DTDv,
231 double* dTdX,
double* volume,
const index_t* elementId);
234 const double* QuadWeights,
int numShape,
236 const double* DSDv,
int numTest,
const double* DTDv,
237 double* dTdX,
double* volume,
const index_t* elementId);
240 const double* QuadWeights,
int numShape,
242 const double* DSDv,
int numTest,
const double* DTDv,
243 double* dTdX,
double* volume,
const index_t* elementId);
246 const double* QuadWeights,
int numShape,
248 const double* DSDv,
int numTest,
const double* DTDv,
249 double* dTdX,
double* volume,
const index_t* elementId);
253 #endif // __FINLEY_ASSEMBLE_H__
void Assemble_jacobians_3D_M2D_E2D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:676
void Assemble_NodeCoordinates(const NodeFile *nodes, escript::Data &x)
copies node coordinates into expanded Data object x
Definition: finley/src/Assemble_NodeCoordinates.cpp:46
int NN
leading dimension of element node table
Definition: finley/src/Assemble.h:86
int numDim
number of spatial dimensions
Definition: finley/src/Assemble.h:84
void Assemble_PDE_Points(const AssembleParameters &p, const escript::Data &d_dirac, const escript::Data &y_dirac)
Definition: finley/src/Assemble_PDE_Points.cpp:68
void Assemble_integrate(const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, Scalar *integrals)
integrates data on quadrature points
Definition: finley/src/Assemble_integrate.cpp:45
escript::Data & F
right-hand side to be updated
Definition: finley/src/Assemble.h:74
void Assemble_AverageElementData(const ElementFile *elements, escript::Data &out, const escript::Data &in)
averages data
Definition: finley/src/Assemble_AverageElementData.cpp:45
int col_numShapes
Definition: finley/src/Assemble.h:103
Definition: finley/src/ElementFile.h:38
dim_t numElements
number of elements
Definition: finley/src/Assemble.h:88
void Assemble_jacobians_2D_M1D_E1D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:150
ElementFile_Jacobians * col_jac
Definition: finley/src/Assemble.h:100
void Assemble_jacobians_1D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:60
index_t row_DOF_UpperBound
Definition: finley/src/Assemble.h:92
int row_numShapes
Definition: finley/src/Assemble.h:96
void Assemble_PDE_System_2D(const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: finley/src/Assemble_PDE_System_2D.cpp:78
void Assemble_jacobians_3D_M2D_E2D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:743
void Assemble_interpolate(const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, escript::Data &output)
interpolates nodal data in a data array onto elements (=integration points)
Definition: finley/src/Assemble_interpolate.cpp:47
void Assemble_PDE_Single_2D(const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: finley/src/Assemble_PDE_Single_2D.cpp:72
int row_numShapesTotal
Definition: finley/src/Assemble.h:95
escript::ASM_ptr S
system matrix to be updated
Definition: finley/src/Assemble.h:72
const index_t * col_DOF
Definition: finley/src/Assemble.h:98
void Assemble_jacobians_3D_M2D_E3D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:543
index_t col_DOF_UpperBound
Definition: finley/src/Assemble.h:99
void Assemble_jacobians_3D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:386
Data represents a collection of datapoints.
Definition: Data.h:62
int numSides
number of sides
Definition: finley/src/Assemble.h:80
void Assemble_CopyElementData(const ElementFile *elements, escript::Data &out, const escript::Data &in)
copies data between different types of elements
Definition: finley/src/Assemble_CopyElementData.cpp:43
index_t dim_t
Definition: DataTypes.h:87
const int * col_node
Definition: finley/src/Assemble.h:101
int numComp
Definition: finley/src/Assemble.h:97
void Assemble_jacobians_3D_M2D_E3D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:462
void Assemble_addToSystemMatrix(escript::ASM_ptr S, int NN_Equa, const index_t *Nodes_Equa, int num_Equa, int NN_Sol, const index_t *Nodes_Sol, int num_Sol, const Scalar *array)
int numQuadTotal
total number of quadrature nodes = numQuadSub * numQuadSub
Definition: finley/src/Assemble.h:76
void Assemble_jacobians_2D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:97
void Assemble_getSize(const NodeFile *nodes, const ElementFile *elements, escript::Data &size)
Definition: finley/src/Assemble_getSize.cpp:46
Definition: finley/src/Assemble.h:48
void Assemble_PDE_System_C(const AssembleParameters &p, const escript::Data &D, const escript::Data &Y)
Definition: Assemble_PDE_System_C.cpp:66
int numSub
number of sub-elements
Definition: finley/src/Assemble.h:82
void Assemble_gradient(const NodeFile *nodes, const ElementFile *elements, escript::Data &gradient, const escript::Data &data)
Definition: finley/src/Assemble_gradient.cpp:47
const ElementFile * elements
element file these parameters apply to
Definition: finley/src/Assemble.h:70
ElementFile_Jacobians * row_jac
Definition: finley/src/Assemble.h:93
void Assemble_LumpedSystem(const NodeFile *nodes, const ElementFile *elements, escript::Data &lumpedMat, const escript::Data &D, bool useHRZ)
Definition: finley/src/Assemble_LumpedSystem.cpp:52
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
Definition: finley/src/NodeFile.h:39
void Assemble_PDE_System_3D(const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: finley/src/Assemble_PDE_System_3D.cpp:78
void Assemble_jacobians_2D_M1D_E2D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:256
void Assemble_PDE(const NodeFile *nodes, const ElementFile *elements, escript::ASM_ptr S, escript::Data &F, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: finley/src/Assemble_PDE.cpp:122
const int * row_node
Definition: finley/src/Assemble.h:94
AssembleParameters(const NodeFile *nodes, const ElementFile *ef, escript::ASM_ptr sm, escript::Data &rhs, bool reducedOrder)
Definition: finley/src/Assemble_getAssembleParameters.cpp:31
Definition: finley/src/ElementFile.h:72
void Assemble_jacobians_2D_M1D_E1D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:196
const index_t * row_DOF
Definition: finley/src/Assemble.h:91
void Assemble_getNormal(const NodeFile *nodes, const ElementFile *elements, escript::Data &normals)
calculates the normal vector at quadrature points on face elements
Definition: finley/src/Assemble_getNormal.cpp:46
void Assemble_PDE_Single_C(const AssembleParameters &p, const escript::Data &D, const escript::Data &Y)
Definition: Assemble_PDE_Single_C.cpp:64
#define S(_J_, _I_)
Definition: ShapeFunctions.cpp:134
void Assemble_jacobians_2D_M1D_E2D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:310
boost::shared_ptr< AbstractSystemMatrix > ASM_ptr
Definition: AbstractSystemMatrix.h:43
int numQuadSub
number of quadrature nodes per subelements
Definition: finley/src/Assemble.h:78
void Assemble_CopyNodalData(const NodeFile *nodes, escript::Data &out, const escript::Data &in)
copies data between different types of nodal representations
Definition: finley/src/Assemble_CopyNodalData.cpp:37
Data Scalar(double value, const FunctionSpace &what, bool expanded)
A collection of factory functions for creating Data objects which contain data points of various shap...
Definition: DataFactory.cpp:60
int numEqu
Definition: finley/src/Assemble.h:90
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:31
void Assemble_PDE_System_1D(const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: Assemble_PDE_System_1D.cpp:78
int col_numShapesTotal
Definition: finley/src/Assemble.h:102
void Assemble_PDE_Single_3D(const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: finley/src/Assemble_PDE_Single_3D.cpp:72
void Assemble_PDE_Single_1D(const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y)
Definition: Assemble_PDE_Single_1D.cpp:72