#include <users_modules/eshelbian_plasticit/src/EshelbianOperators.hpp>
◆ OpBrokenTractionBc()
OpBrokenTractionBc::OpBrokenTractionBc |
( |
const std::string |
row_field, |
|
|
boost::shared_ptr< TractionBcVec > |
bc_data, |
|
|
boost::shared_ptr< double > |
piola_scale_ptr, |
|
|
std::vector< boost::shared_ptr< ScalingMethod >> |
smv |
|
) |
| |
|
inline |
◆ iNtegrate()
- Examples
- EshelbianOperators.cpp.
Definition at line 1278 of file EshelbianOperators.cpp.
1284 int nb_integration_pts = getGaussPts().size2();
1285 int nb_base_functions = data.
getN().size2();
1287 double ts_t = getFEMethod()->ts_t;
1292 double time_scale = 1;
1294 time_scale *= sm->getScale(ts_t);
1298 if (this->locF.size() != nb_dofs)
1300 "Size of locF %d != nb_dofs %d", this->locF.size(), nb_dofs);
1303 auto integrate_rhs = [&](
auto &bc,
auto calc_tau) {
1306 auto t_val = getFTensor1FromPtr<3>(&*bc.vals.begin());
1308 auto t_w = getFTensor0IntegrationWeight();
1309 auto t_coords = getFTensor1CoordsAtGaussPts();
1313 for (
int gg = 0; gg != nb_integration_pts; ++gg) {
1315 const auto tau = calc_tau(t_coords(0), t_coords(1), t_coords(2));
1316 auto t_f = getFTensor1FromPtr<3>(&*this->locF.begin());
1318 for (; rr != nb_dofs /
SPACE_DIM; ++rr) {
1319 t_f(
i) -= time_scale * t_w * t_row_base * tau * (t_val(
i) *
scale);
1324 for (; rr != nb_base_functions; ++rr)
1331 this->locF *= 2. * getMeasure();
1337 for (
auto &bc : *(
bcData)) {
1338 if (bc.faces.find(fe_ent) != bc.faces.end()) {
1343 if (std::regex_match(bc.blockName, std::regex(
".*COOK.*"))) {
1347 return -y * (y - 1) / 0.25;
1349 CHKERR integrate_rhs(bc, calc_tau);
1351 CHKERR integrate_rhs(bc, [](
double,
double,
double) {
return 1; });
◆ bcData
boost::shared_ptr<TractionBcVec> OpBrokenTractionBc::bcData |
|
protected |
◆ piolaScalePtr
boost::shared_ptr<double> OpBrokenTractionBc::piolaScalePtr |
|
protected |
◆ scalingMethodsVec
std::vector<boost::shared_ptr<ScalingMethod> > OpBrokenTractionBc::scalingMethodsVec |
|
protected |
The documentation for this struct was generated from the following files: