50 answer.
resize(1, nnodes*ndofs);
54 if (mmode == _3dUPV) {
56 for (
int i = 0; i< nnodes; i++) {
57 answer(0, i*ndofs+0) = dndx(i, 0);
58 answer(0, i*ndofs+1) = dndx(i, 1);
59 answer(0, i*ndofs+2) = dndx(i, 2);
61 }
else if (mmode == _2dUPV) {
62 for (
int i = 0; i< nnodes; i++) {
63 answer(0, i*ndofs+0) = dndx(i, 0);
64 answer(0, i*ndofs+1) = dndx(i, 1);
75 answer.
resize(6, nnodes*ndofs);
77 if ((mmode == _3dUPV)||(mmode == _3dMat)) {
79 for (
int i = 0; i< nnodes; i++) {
80 answer(0, i*ndofs+0) = dndx(i, 0);
81 answer(1, i*ndofs+1) = dndx(i, 1);
82 answer(2, i*ndofs+2) = dndx(i, 2);
83 answer(3, i*ndofs+1) = dndx(i, 2);
84 answer(3, i*ndofs+2) = dndx(i, 1);
85 answer(4, i*ndofs+0) = dndx(i, 2);
86 answer(4, i*ndofs+2) = dndx(i, 0);
87 answer(5, i*ndofs+0) = dndx(i, 1);
88 answer(5, i*ndofs+1) = dndx(i, 0);
90 }
else if (mmode == _2dUPV) {
91 for (
int i = 0; i< nnodes; i++) {
92 answer(0, i*ndofs+0) = dndx(i, 0);
93 answer(1, i*ndofs+1) = dndx(i, 1);
94 answer(5, i*ndofs+0) = dndx(i, 1);
95 answer(5, i*ndofs+1) = dndx(i, 0);
209 M(0,0) = M(1,1) = M(2,2) = 2*m;
210 M(3,3) = M(4,4) = M(5,5) = m;
240 M(0,0) = M(1,1) = M(2,2) = 2*m*vf;
241 M(3,3) = M(4,4) = M(5,5) = m*vf;
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
void initializeCell(Element &cell) const override
BTmuBTerm(const Variable *testField, const Variable *unknownField)
Constructor.
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
const Variable * volumeFraction
void getDimensions(Element &cell) const override
void initializeCell(Element &cell) const override
BTmuVfBTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
Constructor.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
virtual Material * giveMaterial(IntegrationPoint *ip) const =0
hidden by virtual oofem::Material* TransportCrossSection::giveMaterial() const
CrossSection * giveCrossSection()
virtual Element_Geometry_Type giveGeometryType() const =0
virtual int giveNumberOfNodes(const Element_Geometry_Type) const
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
virtual double evaldNdx(FloatMatrix &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
double dotProduct(const FloatArray &x) const
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
void beTProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
static FloatMatrix fromArray(const FloatArray &vector, bool transpose=false)
void resize(Index rows, Index cols)
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
void beNMatrixOf(const FloatArray &n, int nsd)
void zero()
Zeroes all coefficient of receiver.
bool beInverseOf(const FloatMatrix &src)
void beTProductOf(const FloatMatrix &a, const FloatMatrix &b)
const FloatArray & giveNaturalCoordinates() const
Returns coordinate array of receiver.
MaterialMode giveMaterialMode()
Returns corresponding material mode of receiver.
Base class for elements based on mp (multi-physics) concept.
virtual const void getUnknownVector(FloatArray &answer, const Variable *field, ValueModeType mode, TimeStep *tstep)
Returns vector of nodal unknowns for given Variable.
virtual void giveCharacteristicMatrix(FloatMatrix &answer, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
Returns characteristic matrix of the receiver.
virtual double giveCharacteristicValue(MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
Returns characteristic value of the receiver.
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void initializeCell(Element &cell) const override
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
NTBdivTerm(const Variable *testField, const Variable *unknownField, ValueModeType m)
void getDimensions(Element &cell) const override
const Variable * volumeFraction
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
NTmuVfSNTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
Constructor.
void initializeCell(Element &cell) const override
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void initializeCell(Element &cell) const override
NdTdvfNpTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
Constructor.
const Variable * volumeFraction
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
const Variable * testField
const FEInterpolation * interpolation
void initializeCell(Element &cell) const override
deltaBTNpTerm(const Variable *testField, const Variable *unknownField)
void getDimensions(Element &cell) const override
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void evaluate_lin(FloatMatrix &answer, MPElement &e, GaussPoint *gp, TimeStep *tstep) const override
Evaluates the linearization of $B^T\sigma(u)$, i.e. $B^TDBu$.
void getDimensions(Element &cell) const override
const Variable * volumeFraction
void evaluate(FloatArray &, MPElement &cell, GaussPoint *gp, TimeStep *tstep) const override
Evaluates Internal forces vector, i.e. $b^T\sigma(u)$.
void initializeCell(Element &cell) const override
deltaBTfiNpTerm(const Variable *testField, const Variable *unknownField, const Variable *volumeFraction)
void evalB(FloatMatrix &answer, const Variable *v, const FEInterpolation *interpol, const Element &cell, const FloatArray &coords, const MaterialMode mmode)
Evaluates $B$ = matrix;.
void deltaB(FloatMatrix &answer, const Variable *v, const FEInterpolation *interpol, const Element &cell, const FloatArray &coords, const MaterialMode mmode)
Evaluates $\delta B = B_{div}$ matrix;.
double evalVolumeFraction(const Variable *vf, MPElement &e, const FloatArray &coords, TimeStep *tstep)