#include <users_modules/eshelbian_plasticit/src/EshelbianPlasticity.hpp>
|
| OpRotationBcImpl (boost::shared_ptr< std::vector< BrokenBaseSideData >> broken_base_side_data, boost::shared_ptr< BcRotVec > &bc_rot_ptr, std::vector< boost::shared_ptr< ScalingMethod >> smv, boost::shared_ptr< Range > ents_ptr=nullptr) |
|
template<AssemblyType A>
struct EshelbianPlasticity::OpRotationBcImpl< A, GAUSS >
Definition at line 646 of file EshelbianPlasticity.hpp.
◆ OP
◆ OpRotationBcImpl()
◆ iNtegrate()
Definition at line 794 of file EshelbianOperators.cpp.
806 if (bc.faces.find(fe_ent) != bc.faces.end()) {
808 int nb_integration_pts = OP::getGaussPts().size2();
809 auto t_normal = OP::getFTensor1NormalsAtGaussPts();
810 auto t_w = OP::getFTensor0IntegrationWeight();
812 int nb_base_functions = data.
getN().size2() / 3;
815 auto get_ftensor1 = [](
auto &
v) {
823 double theta = bc.theta;
824 theta *= OP::getFEMethod()->ts_t;
827 const double a = sqrt(t_normal(
i) * t_normal(
i));
828 t_omega(
i) = t_normal(
i) * (theta /
a);
830 auto t_coords = OP::getFTensor1CoordsAtGaussPts();
832 for (
int gg = 0; gg != nb_integration_pts; ++gg) {
834 t_delta(
i) = t_center(
i) - t_coords(
i);
836 t_disp(
i) = t_delta(
i) - t_R(
i,
j) * t_delta(
j);
838 auto t_nf = getFTensor1FromPtr<3>(&*OP::locF.begin());
840 for (; bb != nb_dofs / 3; ++bb) {
841 t_nf(
i) -= t_w * (t_row_base_fun(
j) * t_normal(
j)) * t_disp(
i) * 0.5;
845 for (; bb != nb_base_functions; ++bb)
◆ bcRotPtr
◆ scalingMethodsVec
The documentation for this struct was generated from the following files: