|
| v0.14.0
|
#include <users_modules/basic_finite_elements/src/ConvectiveMassElement.hpp>
Definition at line 279 of file ConvectiveMassElement.hpp.
◆ OpVelocityJacobian()
ConvectiveMassElement::OpVelocityJacobian::OpVelocityJacobian |
( |
const std::string |
field_name, |
|
|
BlockData & |
data, |
|
|
CommonData & |
common_data, |
|
|
int |
tag, |
|
|
bool |
jacobian = true |
|
) |
| |
◆ doWork()
Definition at line 796 of file ConvectiveMassElement.cpp.
800 if (
dAta.
tEts.find(getNumeredEntFiniteElementPtr()->getEnt()) ==
806 if (row_type != MBVERTEX)
827 for (
int dd = 0;
dd < 3;
dd++) {
833 int nb_gauss_pts = row_data.
getN().size1();
838 int nb_active_vars = 0;
839 for (
int gg = 0; gg < nb_gauss_pts; gg++) {
845 for (
int nn1 = 0; nn1 < 3; nn1++) {
850 for (
int nn1 = 0; nn1 < 3; nn1++) {
858 for (
int nn1 = 0; nn1 < 3; nn1++) {
859 for (
int nn2 = 0; nn2 < 3; nn2++) {
871 for (
int nn1 = 0; nn1 < 3; nn1++) {
879 for (
int nn1 = 0; nn1 < 3; nn1++) {
880 for (
int nn2 = 0; nn2 < 3; nn2++) {
911 t_F(
i,
j) = t_h(
i,
k) * t_invH(
k,
j);
913 t_F(
i,
j) = t_h(
i,
j);
916 t_dot_u(
i) = t_dot_w(
i) + t_F(
i,
j) * t_dot_W(
j);
917 t_a_res(
i) = t_v(
i) - t_dot_u(
i);
923 for (
int rr = 0; rr < 3; rr++) {
924 a_res[rr] >>= res[rr];
929 active.resize(nb_active_vars);
931 for (
int nn1 = 0; nn1 < 3; nn1++) {
935 for (
int nn1 = 0; nn1 < 3; nn1++) {
942 for (
int nn1 = 0; nn1 < 3; nn1++) {
943 for (
int nn2 = 0; nn2 < 3; nn2++) {
956 for (
int nn1 = 0; nn1 < 3; nn1++) {
963 for (
int nn1 = 0; nn1 < 3; nn1++) {
964 for (
int nn2 = 0; nn2 < 3; nn2++) {
977 r = ::function(
tAg, 3, nb_active_vars, &
active[0], &res[0]);
980 "ADOL-C function evaluation with error");
983 double val = getVolume() * getGaussPts()(3, gg);
988 for (
int nn1 = 0; nn1 < 3; nn1++) {
992 r = jacobian(
tAg, 3, nb_active_vars, &
active[0],
996 "ADOL-C function evaluation with error");
998 double val = getVolume() * getGaussPts()(3, gg);
◆ a_res
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpVelocityJacobian::a_res |
◆ active
std::vector<double> ConvectiveMassElement::OpVelocityJacobian::active |
◆ commonData
CommonData& ConvectiveMassElement::OpVelocityJacobian::commonData |
◆ dAta
BlockData& ConvectiveMassElement::OpVelocityJacobian::dAta |
◆ detH
adouble ConvectiveMassElement::OpVelocityJacobian::detH |
◆ dot_u
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpVelocityJacobian::dot_u |
◆ dot_w
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpVelocityJacobian::dot_w |
◆ dot_W
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpVelocityJacobian::dot_W |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpVelocityJacobian::F |
◆ fieldDisp
bool ConvectiveMassElement::OpVelocityJacobian::fieldDisp |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpVelocityJacobian::h |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpVelocityJacobian::H |
◆ invH
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpVelocityJacobian::invH |
◆ jAcobian
bool ConvectiveMassElement::OpVelocityJacobian::jAcobian |
◆ tAg
int ConvectiveMassElement::OpVelocityJacobian::tAg |
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpVelocityJacobian::v |
The documentation for this struct was generated from the following files:
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
VectorBoundedArray< adouble, 3 > dot_W
VectorBoundedArray< adouble, 3 > a_res
std::vector< std::vector< double * > > jacVelRowPtr
Range tEts
elements in block set
std::map< std::string, std::vector< VectorDouble > > dataAtGaussPts
MatrixBoundedArray< adouble, 9 > H
MoFEMErrorCode invertTensor3by3(ublas::matrix< T, L, A > &jac_data, ublas::vector< T, A > &det_data, ublas::matrix< T, L, A > &inv_jac_data)
Calculate inverse of tensor rank 2 at integration points.
VectorBoundedArray< adouble, 3 > v
std::map< std::string, std::vector< MatrixDouble > > gradAtGaussPts
#define CHKERR
Inline error check.
std::vector< double > active
const VectorInt & getIndices() const
Get global indices of dofs on entity.
VectorBoundedArray< adouble, 3 > dot_u
@ MOFEM_OPERATION_UNSUCCESSFUL
std::vector< MatrixDouble > jacVel
FTensor::Index< 'i', SPACE_DIM > i
VectorBoundedArray< adouble, 3 > dot_w
constexpr auto field_name
MatrixBoundedArray< adouble, 9 > h
auto getFTensor2FromArray3by3(ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0)
static auto determinantTensor3by3(T &t)
Calculate the determinant of a 3x3 matrix or a tensor of rank 2.
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
ForcesAndSourcesCore::UserDataOperator UserDataOperator
FTensor::Index< 'j', 3 > j
MatrixBoundedArray< adouble, 9 > F
UBlasVector< double > VectorDouble
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
MatrixBoundedArray< adouble, 9 > invH
FTensor::Index< 'k', 3 > k
std::vector< VectorDouble > valVel