|
| v0.14.0
|
#include <users_modules/basic_finite_elements/src/ConvectiveMassElement.hpp>
Definition at line 347 of file ConvectiveMassElement.hpp.
◆ OpEshelbyDynamicMaterialMomentumJacobian()
ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::OpEshelbyDynamicMaterialMomentumJacobian |
( |
const std::string |
field_name, |
|
|
BlockData & |
data, |
|
|
CommonData & |
common_data, |
|
|
int |
tag, |
|
|
bool |
jacobian = true |
|
) |
| |
◆ doWork()
Definition at line 1244 of file ConvectiveMassElement.cpp.
1248 if (
dAta.
tEts.find(getNumeredEntFiniteElementPtr()->getEnt()) ==
1254 if (row_type != MBVERTEX)
1273 for (
int dd = 0;
dd < 3;
dd++) {
1278 int nb_gauss_pts = row_data.
getN().size1();
1283 int nb_active_vars = 0;
1284 for (
int gg = 0; gg < nb_gauss_pts; gg++) {
1290 for (
int nn1 = 0; nn1 < 3; nn1++) {
1297 for (
int nn1 = 0; nn1 < 3; nn1++) {
1302 for (
int nn1 = 0; nn1 < 3; nn1++) {
1303 for (
int nn2 = 0; nn2 < 3; nn2++) {
1310 for (
int nn1 = 0; nn1 < 3; nn1++) {
1311 for (
int nn2 = 0; nn2 < 3; nn2++) {
1324 for (
int nn1 = 0; nn1 < 3; nn1++) {
1325 for (
int nn2 = 0; nn2 < 3; nn2++) {
1356 t_F(
i,
j) = t_h(
i,
k) * t_invH(
k,
j);
1357 t_G(
i,
j) = t_g(
i,
k) * t_invH(
k,
j);
1358 t_a_T(
i) = t_F(
k,
i) * t_a(
k) + t_G(
k,
i) * t_v(
k);
1360 t_a_T(
i) = -rho0 * detH;
1363 for (
int nn = 0; nn < 3; nn++) {
1369 active.resize(nb_active_vars);
1371 for (
int nn1 = 0; nn1 < 3; nn1++) {
1377 for (
int nn1 = 0; nn1 < 3; nn1++) {
1381 for (
int nn1 = 0; nn1 < 3; nn1++) {
1382 for (
int nn2 = 0; nn2 < 3; nn2++) {
1388 for (
int nn1 = 0; nn1 < 3; nn1++) {
1389 for (
int nn2 = 0; nn2 < 3; nn2++) {
1403 for (
int nn1 = 0; nn1 < 3; nn1++) {
1404 for (
int nn2 = 0; nn2 < 3; nn2++) {
1417 r = ::function(
tAg, 3, nb_active_vars, &
active[0], &res[0]);
1420 "ADOL-C function evaluation with error r = %d",
r);
1423 double val = getVolume() * getGaussPts()(3, gg);
1428 for (
int nn1 = 0; nn1 < 3; nn1++) {
1432 r = jacobian(
tAg, 3, nb_active_vars, &
active[0],
1436 "ADOL-C function evaluation with error");
1438 double val = getVolume() * getGaussPts()(3, gg);
1443 }
catch (
const std::exception &ex) {
1444 std::ostringstream ss;
1445 ss <<
"throw in method: " << ex.what() << std::endl;
1446 SETERRQ(PETSC_COMM_SELF, 1, ss.str().c_str());
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::a |
◆ a_T
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::a_T |
◆ active
VectorDouble ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::active |
◆ commonData
CommonData& ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::commonData |
◆ dAta
BlockData& ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::dAta |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::F |
◆ fieldDisp
bool ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::fieldDisp |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::G |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::g |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::H |
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::h |
◆ invH
MatrixBoundedArray<adouble, 9> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::invH |
◆ jAcobian
bool ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::jAcobian |
◆ tAg
int ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::tAg |
VectorBoundedArray<adouble, 3> ConvectiveMassElement::OpEshelbyDynamicMaterialMomentumJacobian::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 > v
std::vector< MatrixDouble > jacT
Range tEts
elements in block set
std::map< std::string, std::vector< VectorDouble > > dataAtGaussPts
std::vector< std::vector< double * > > jacTRowPtr
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.
std::map< std::string, std::vector< MatrixDouble > > gradAtGaussPts
#define CHKERR
Inline error check.
MatrixBoundedArray< adouble, 9 > H
MatrixBoundedArray< adouble, 9 > invH
const VectorInt & getIndices() const
Get global indices of dofs on entity.
MatrixBoundedArray< adouble, 9 > g
VectorBoundedArray< adouble, 3 > a
MatrixBoundedArray< adouble, 9 > F
@ MOFEM_OPERATION_UNSUCCESSFUL
FTensor::Index< 'i', SPACE_DIM > i
constexpr auto field_name
std::vector< VectorDouble > valT
double rho0
reference density
auto getFTensor2FromArray3by3(ublas::matrix< T, L, A > &data, const FTensor::Number< S > &, const size_t rr, const size_t cc=0)
MatrixBoundedArray< adouble, 9 > h
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....
VectorBoundedArray< adouble, 3 > a_T
ForcesAndSourcesCore::UserDataOperator UserDataOperator
FTensor::Index< 'j', 3 > j
MatrixBoundedArray< adouble, 9 > G
UBlasVector< double > VectorDouble
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
FTensor::Index< 'k', 3 > k