|
| v0.14.0
|
#include <users_modules/tutorials/adv-1/src/ContactOps.hpp>
template<int DIM, typename BoundaryEleOp>
struct ContactOps::OpEvaluateSDFImpl< DIM, GAUSS, BoundaryEleOp >
Definition at line 451 of file ContactOps.hpp.
◆ OpEvaluateSDFImpl()
template<int DIM, typename BoundaryEleOp >
◆ doWork()
template<int DIM, typename BoundaryEleOp >
- Examples
- ContactOps.hpp.
Definition at line 629 of file ContactOps.hpp.
640 sdf_vec.resize(nb_gauss_pts,
false);
641 grad_mat.resize(DIM, nb_gauss_pts,
false);
642 hess_mat.resize((DIM * (DIM + 1)) / 2, nb_gauss_pts,
false);
643 constraint_vec.resize(nb_gauss_pts,
false);
645 auto t_traction = getFTensor1FromMat<DIM>(contactTraction_mat);
648 auto t_grad_sdf = getFTensor1FromMat<DIM>(grad_mat);
649 auto t_hess_sdf = getFTensor2SymmetricFromMat<DIM>(hess_mat);
652 auto t_disp = getFTensor1FromMat<DIM>(
commonDataPtr->contactDisp);
664 getFTensor1FromMat<DIM>(
commonDataPtr->contactDisp), nb_gauss_pts);
673 m_spatial_coords, m_normals_at_pts, block_id);
677 m_spatial_coords, m_normals_at_pts, block_id);
681 m_spatial_coords, m_normals_at_pts, block_id);
684 auto t_grad_sdf_v = getFTensor1FromMat<3>(m_grad_sdf);
685 auto t_hess_sdf_v = getFTensor2SymmetricFromMat<3>(m_hess_sdf);
699 for (
auto gg = 0; gg != nb_gauss_pts; ++gg) {
701 auto tn = -t_traction(
i) * t_grad_sdf_v(
i);
705 t_grad_sdf(
i) = t_grad_sdf_v(
i);
706 t_hess_sdf(
i,
j) = t_hess_sdf_v(
i,
j);
◆ commonDataPtr
template<int DIM, typename BoundaryEleOp >
◆ gradSurfaceDistanceFunction
template<int DIM, typename BoundaryEleOp >
◆ hessSurfaceDistanceFunction
template<int DIM, typename BoundaryEleOp >
◆ surfaceDistanceFunction
template<int DIM, typename BoundaryEleOp >
The documentation for this struct was generated from the following file:
@ OPSPACE
operator do Work is execute on space data
double getTStimeStep() const
MatrixDouble & getGaussPts()
matrix of integration (Gauss) points for Volume Element
const double c
speed of light (cm/ns)
static auto getFTensor0FromVec(ublas::vector< T, A > &data)
Get tensor rank 0 (scalar) form data vector.
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'j', 3 > j
auto getFTensor1NormalsAtGaussPts()
get normal at integration points
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
auto getFTensor1CoordsAtGaussPts()
Get coordinates at integration points assuming linear geometry.