#include <users_modules/fracture_mechanics/src/CrackFrontElement.hpp>
Definition at line 478 of file CrackFrontElement.hpp.
◆ OpGetCrackFrontDataGradientAtGaussPts()
FractureMechanics::OpGetCrackFrontDataGradientAtGaussPts::OpGetCrackFrontDataGradientAtGaussPts |
( |
const std::string |
field_name, |
|
|
boost::shared_ptr< MatrixDouble > |
data_at_pts, |
|
|
bool & |
singular_element, |
|
|
MatrixDouble & |
inv_s_jac |
|
) |
| |
|
inline |
◆ doWork()
Definition at line 263 of file CrackFrontElement.cpp.
271 const int nb_dofs = data.getFieldData().size();
272 if (!nb_dofs &&
type == this->zeroType) {
273 this->dataPtr->resize(9, 0,
false);
279 const int nb_gauss_pts = data.getN().size1();
280 const int nb_base_functions = data.getN().size2();
281 ublas::matrix<double, ublas::row_major, DoubleAllocator> &mat =
283 if (
type == this->zeroType) {
284 mat.resize(9, nb_gauss_pts,
false);
287 auto diff_base_function = data.getFTensor1DiffN<3>();
288 auto gradients_at_gauss_pts = getFTensor2FromMat<3, 3>(mat);
292 int size = nb_dofs / 3;
296 double *inv_jac_ptr = &*
invSJac.data().begin();
298 inv_jac_ptr, &inv_jac_ptr[1], &inv_jac_ptr[2], &inv_jac_ptr[3],
299 &inv_jac_ptr[4], &inv_jac_ptr[5], &inv_jac_ptr[6], &inv_jac_ptr[7],
302 for (
int gg = 0; gg < nb_gauss_pts; ++gg) {
303 auto field_data = data.getFTensor1FieldData<3>();
305 for (; bb < size; ++bb) {
306 gradients_at_gauss_pts(
I,
J) +=
308 (t_inv_singular_jacobian(
K,
J) * diff_base_function(
K));
310 ++diff_base_function;
313 for (; bb != nb_base_functions; ++bb)
314 ++diff_base_function;
315 ++gradients_at_gauss_pts;
316 ++t_inv_singular_jacobian;
◆ invSJac
MatrixDouble& FractureMechanics::OpGetCrackFrontDataGradientAtGaussPts::invSJac |
◆ singularElement
bool& FractureMechanics::OpGetCrackFrontDataGradientAtGaussPts::singularElement |
The documentation for this struct was generated from the following files: