v0.14.0
EshelbianPlasticity.hpp
Go to the documentation of this file.
1 /**
2  * \file EshelbianPlasticity.hpp
3  * \brief Eshelbian plasticity interface
4  *
5  * \brief Problem implementation for mix element for large-strain elasticity
6  *
7  * \todo Implementation of plasticity
8  */
9 
10 constexpr int SPACE_DIM = 3;
12 
13 #ifndef __ESHELBIAN_PLASTICITY_HPP__
14 #define __ESHELBIAN_PLASTICITY_HPP__
15 
16 namespace EshelbianPlasticity {
17 
18 struct ContactTree;
19 
22 
23 using MatrixPtr = boost::shared_ptr<MatrixDouble>;
24 using VectorPtr = boost::shared_ptr<VectorDouble>;
25 
30 
31 struct PhysicalEquations;
33  : public boost::enable_shared_from_this<DataAtIntegrationPts> {
34 
44 
59 
77 
79 
83 
87 
88  double mu;
89  double lambda;
90 
92  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
94  }
96  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &approxPAtPts);
97  }
98 
100  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &divPAtPts);
101  }
102 
104  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &divSigmaAtPts);
105  }
106 
108  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wL2AtPts);
109  }
110 
112  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wL2DotAtPts);
113  }
114 
116  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wL2DotDotAtPts);
117  }
118 
120  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
122  }
123 
125  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
127  }
128 
130  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
132  }
133 
135  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &rotAxisAtPts);
136  }
137 
139  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
140  &rotAxisDotAtPts);
141  }
142 
144  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &GAtPts);
145  }
146 
148  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &GAtPts);
149  }
150 
152  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matD);
153  }
154 
156  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matAxiatorD);
157  }
158 
160  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matDeviatorD);
161  }
162 
164  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wH1AtPts);
165  }
166 
168  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &contactL2AtPts);
169  }
170 
172  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
173  &wGradH1AtPts);
174  }
175 
176  boost::shared_ptr<PhysicalEquations> physicsPtr;
177 };
178 
179 struct OpJacobian;
180 
182 
189 
191 
194 
195  PhysicalEquations() = delete;
196  PhysicalEquations(const int size_active, const int size_dependent)
197  : activeVariables(size_active, 0),
198  dependentVariablesPiola(size_dependent, 0),
199  dependentVariablesPiolaDirevatives(size_dependent * size_active, 0) {}
200  virtual ~PhysicalEquations() = default;
201 
202  virtual MoFEMErrorCode recordTape(const int tag, DTensor2Ptr *t_h) = 0;
203 
204  virtual OpJacobian *
205  returnOpJacobian(const int tag, const bool eval_rhs, const bool eval_lhs,
206  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
207  boost::shared_ptr<PhysicalEquations> &physics_ptr) = 0;
208 
209  std::vector<double> activeVariables;
210  std::vector<double> dependentVariablesPiola;
212 
213  /** \name Active variables */
214 
215  /**@{*/
216 
217  template <int S>
218  inline static DTensor2Ptr get_VecTensor2(std::vector<double> &v) {
219  return DTensor2Ptr(&v[S + 0], &v[S + 1], &v[S + 2], &v[S + 3], &v[S + 4],
220  &v[S + 5], &v[S + 6], &v[S + 7], &v[S + 8]);
221  }
222 
223  template <int S>
224  inline static DTensor0Ptr get_VecTensor0(std::vector<double> &v) {
225  return DTensor0Ptr(&v[S + 0]);
226  }
227 
228  template <int S0>
229  inline static DTensor3Ptr get_vecTensor3(std::vector<double> &v,
230  const int nba) {
231 
232  const int A00 = nba * 0 + S0;
233  const int A01 = nba * 1 + S0;
234  const int A02 = nba * 2 + S0;
235  const int A10 = nba * 3 + S0;
236  const int A11 = nba * 4 + S0;
237  const int A12 = nba * 5 + S0;
238  const int A20 = nba * 6 + S0;
239  const int A21 = nba * 7 + S0;
240  const int A22 = nba * 8 + S0;
241 
242  return DTensor3Ptr(
243 
244  &v[A00 + 0], &v[A00 + 1], &v[A00 + 2], &v[A01 + 0], &v[A01 + 1],
245  &v[A01 + 2], &v[A02 + 0], &v[A02 + 1], &v[A02 + 2],
246 
247  &v[A10 + 0], &v[A10 + 1], &v[A10 + 2], &v[A11 + 0], &v[A11 + 1],
248  &v[A11 + 2], &v[A12 + 0], &v[A12 + 1], &v[A12 + 2],
249 
250  &v[A20 + 0], &v[A20 + 1], &v[A20 + 2], &v[A21 + 0], &v[A21 + 1],
251  &v[A21 + 2], &v[A22 + 0], &v[A22 + 1], &v[A22 + 2]
252 
253  );
254  }
255 
256  /**@}*/
257 
258  /** \name Active variables */
259 
260  /**@{*/
261 
262  inline DTensor2Ptr get_h() { return get_VecTensor2<0>(activeVariables); }
263 
264  /**@}*/
265 
266  /** \name Dependent variables */
267 
268  /**@{*/
269 
270  inline DTensor2Ptr get_P() {
271  return get_VecTensor2<0>(dependentVariablesPiola);
272  }
273 
274  /**@}*/
275 
276  /** \name Derivatives of dependent variables */
277 
278  /**@{*/
279 
281  return get_vecTensor3<0>(dependentVariablesPiolaDirevatives,
282  activeVariables.size());
283  }
285  return get_vecTensor3<3>(dependentVariablesPiolaDirevatives,
286  activeVariables.size());
287  }
289  return get_vecTensor3<6>(dependentVariablesPiolaDirevatives,
290  activeVariables.size());
291  }
292 
293  /**@}*/
294 };
295 
296 struct BcDisp {
297  BcDisp(std::string name, std::vector<double> &attr, Range &faces);
298  std::string blockName;
302 };
303 typedef std::vector<BcDisp> BcDispVec;
304 
305 struct BcRot {
306  BcRot(std::string name, std::vector<double> &attr, Range &faces);
307  std::string blockName;
310  double theta;
311 };
312 typedef std::vector<BcRot> BcRotVec;
313 
314 typedef std::vector<Range> TractionFreeBc;
315 
316 struct TractionBc {
317  TractionBc(std::string name, std::vector<double> &attr, Range &faces);
318  std::string blockName;
322 };
323 typedef std::vector<TractionBc> TractionBcVec;
324 
325 struct OpJacobian : public UserDataOperator {
326 
327  OpJacobian(const int tag, const bool eval_rhs, const bool eval_lhs,
328  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
329  boost::shared_ptr<PhysicalEquations> &physics_ptr)
330  : UserDataOperator(NOSPACE, OPSPACE), tAg(tag), evalRhs(eval_rhs),
331  evalLhs(eval_lhs), dataAtPts(data_ptr), physicsPtr(physics_ptr) {}
332 
333  virtual MoFEMErrorCode evaluateRhs(EntData &data) = 0;
334  virtual MoFEMErrorCode evaluateLhs(EntData &data) = 0;
335 
336  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
337 
338 protected:
340 
341  int tAg = -1; ///< adol-c tape
342  bool evalRhs = false;
343  bool evalLhs = false;
344 
345  boost::shared_ptr<DataAtIntegrationPts>
346  dataAtPts; ///< data at integration pts
347  boost::shared_ptr<PhysicalEquations>
348  physicsPtr; ///< material physical equations
349 };
350 
351 template <typename T> struct OpAssembleBasic : public T {
352 
353  using ScaleOff = boost::function<double()>;
354  const bool assembleSymmetry;
355 
356  boost::shared_ptr<DataAtIntegrationPts>
357  dataAtPts; ///< data at integration pts
358 
359  OpAssembleBasic(const std::string &field_name,
360  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
361  const char type)
362  : T(field_name, type), dataAtPts(data_ptr), assembleSymmetry(false) {}
363 
365  const std::string &row_field, const std::string &col_field,
366  boost::shared_ptr<DataAtIntegrationPts> data_ptr, const char type,
367  const bool assemble_symmetry, ScaleOff scale_off = []() { return 1; })
368  : T(row_field, col_field, type, false), dataAtPts(data_ptr),
369  assembleSymmetry(assemble_symmetry), scaleOff(scale_off) {}
370 
371  VectorDouble nF; ///< local right hand side vector
372  MatrixDouble K; ///< local tangent matrix
374 
376 
379  SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED, "Not yet implemented");
381  }
382 
383  virtual MoFEMErrorCode integrate(int row_side, EntityType row_type,
384  EntData &data) {
386  CHKERR integrate(data);
388  }
389 
390  virtual MoFEMErrorCode assemble(EntData &data) {
392  double *vec_ptr = &*nF.begin();
393  int nb_dofs = data.getIndices().size();
394  int *ind_ptr = &*data.getIndices().begin();
395  CHKERR VecSetValues(this->getTSf(), nb_dofs, ind_ptr, vec_ptr, ADD_VALUES);
397  }
398 
399  virtual MoFEMErrorCode assemble(int row_side, EntityType row_type,
400  EntData &data) {
402  CHKERR assemble(data);
404  }
405 
406  virtual MoFEMErrorCode integrate(EntData &row_data, EntData &col_data) {
408  SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED, "Not yet implemented");
410  }
411 
412  virtual MoFEMErrorCode assemble(int row_side, int col_side,
413  EntityType row_type, EntityType col_type,
414  EntData &row_data, EntData &col_data) {
416 
417  if (assembleSymmetry) {
418  const auto row_nb_dofs = row_data.getIndices().size();
419  const auto col_nb_dofs = col_data.getIndices().size();
420  transposeK.resize(col_nb_dofs, row_nb_dofs, false);
421  noalias(transposeK) = trans(K);
422  transposeK *= scaleOff();
423  }
424 
425  CHKERR MatSetValues<SchurL2Mats>(this->getTSA(), row_data, col_data, K,
426  ADD_VALUES);
427  if (assembleSymmetry) {
428  CHKERR MatSetValues<SchurL2Mats>(this->getTSA(), col_data, row_data,
429  transposeK, ADD_VALUES);
430  }
431 
433  }
434 
435  MoFEMErrorCode doWork(int side, EntityType type, EntData &data) {
437  if (data.getIndices().empty())
439  nF.resize(data.getIndices().size(), false);
440  nF.clear();
441  CHKERR integrate(side, type, data);
442  CHKERR assemble(side, type, data);
444  }
445 
446  MoFEMErrorCode doWork(int row_side, int col_side, EntityType row_type,
447  EntityType col_type, EntData &row_data,
448  EntData &col_data) {
450  if (row_data.getIndices().empty())
452  if (col_data.getIndices().empty())
454  K.resize(row_data.getIndices().size(), col_data.getIndices().size(), false);
455  K.clear();
456  CHKERR integrate(row_data, col_data);
457  CHKERR assemble(row_side, col_side, row_type, col_type, row_data, col_data);
459  }
460 };
461 
462 struct OpAssembleVolume : public OpAssembleBasic<VolUserDataOperator> {
463  OpAssembleVolume(const std::string &field,
464  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
465  const char type)
466  : OpAssembleBasic<VolUserDataOperator>(field, data_ptr, type) {}
467 
468  OpAssembleVolume(const std::string &row_field, const std::string &col_field,
469  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
470  const char type, const bool assemble_symmetry)
471  : OpAssembleBasic<VolUserDataOperator>(row_field, col_field, data_ptr,
472  type, assemble_symmetry) {}
473 };
474 
475 struct OpAssembleFace : public OpAssembleBasic<FaceUserDataOperator> {
476  OpAssembleFace(const std::string &field,
477  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
478  const char type)
479  : OpAssembleBasic<FaceUserDataOperator>(field, data_ptr, type) {}
480 
481  OpAssembleFace(const std::string &row_field, const std::string &col_field,
482  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
483  const char type, const bool assemble_symmetry)
484  : OpAssembleBasic<FaceUserDataOperator>(row_field, col_field, data_ptr,
485  type, assemble_symmetry) {}
486 };
487 
489  boost::shared_ptr<DataAtIntegrationPts>
490  dataAtPts; ///< data at integration pts
492  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
493  : VolUserDataOperator(NOSPACE, OPSPACE), dataAtPts(data_ptr) {}
494  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
495 };
496 
498  const double alphaW;
499  const double alphaRho;
500  OpSpatialEquilibrium(const std::string &field_name,
501  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
502  const double alpha, const double rho)
503  : OpAssembleVolume(field_name, data_ptr, OPROW), alphaW(alpha),
504  alphaRho(rho) {}
506 };
507 
509  OpSpatialRotation(const std::string &field_name,
510  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
511  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
513 };
514 
516 
517  OpSpatialPhysical(const std::string &field_name,
518  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
519  const double alpha_u)
520  : OpAssembleVolume(field_name, data_ptr, OPROW), alphaU(alpha_u) {
521 
522  CHK_MOAB_THROW(PetscOptionsGetBool(PETSC_NULL, "", "-poly_convex",
523  &polyConvex, PETSC_NULL),
524  "get ployconvex option failed");
525  }
526 
528 
532 
533 private:
534  const double alphaU;
535  PetscBool polyConvex = PETSC_FALSE;
536 };
537 
539  OpSpatialConsistencyP(const std::string &field_name,
540  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
541  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
543 
544 private:
545 };
546 
549  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
550  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
552 
553 private:
554 };
555 
558  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
559  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
561 };
562 
563 struct OpDispBc : public OpAssembleFace {
564  boost::shared_ptr<BcDispVec> bcDispPtr;
565  OpDispBc(const std::string &field_name,
566  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
567  boost::shared_ptr<BcDispVec> &bc_disp_ptr,
568  std::vector<boost::shared_ptr<ScalingMethod>> smv)
569  : OpAssembleFace(field_name, data_ptr, OPROW), bcDispPtr(bc_disp_ptr),
570  scalingMethodsVec(smv) {}
572 
573 protected:
574  std::vector<boost::shared_ptr<ScalingMethod>> scalingMethodsVec;
575 };
576 
577 struct OpDispBc_dx : public OpAssembleFace {
578  boost::shared_ptr<BcDispVec> bcDispPtr;
579  OpDispBc_dx(const std::string &row_field_name,
580  const std::string &col_field_name,
581  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
582  boost::shared_ptr<BcDispVec> &bc_disp_ptr)
583  : OpAssembleFace(row_field_name, col_field_name, data_ptr, OPROWCOL,
584  false),
585  bcDispPtr(bc_disp_ptr) {}
586  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
587 };
588 
589 struct OpRotationBc : public OpAssembleFace {
590  boost::shared_ptr<BcRotVec> bcRotPtr;
591  OpRotationBc(const std::string &field_name,
592  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
593  boost::shared_ptr<BcRotVec> &bc_rot_ptr)
594  : OpAssembleFace(field_name, data_ptr, OPROW), bcRotPtr(bc_rot_ptr) {}
596 };
597 
599  boost::shared_ptr<BcRotVec> bcRotPtr;
600  OpRotationBc_dx(const std::string &row_field_name,
601  const std::string &col_field_name,
602  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
603  boost::shared_ptr<BcRotVec> &bc_rot_ptr)
604  : OpAssembleFace(row_field_name, col_field_name, data_ptr, OPROWCOL,
605  false),
606  bcRotPtr(bc_rot_ptr) {}
607  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
608 };
609 
610 struct FeTractionBc;
611 
613  OpTractionBc(std::string row_field, FeTractionBc &bc_fe)
614  : FaceUserDataOperator(row_field, FaceUserDataOperator::OPROW),
615  bcFe(bc_fe) {}
616  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
617 
618 protected:
622 };
623 
624 struct FeTractionBc : public FEMethod {
626  FeTractionBc(MoFEM::Interface &m_field, const std::string field_name,
627  boost::shared_ptr<TractionBcVec> &bc)
628  : FEMethod(), mField(m_field), bcData(bc), fieldName(field_name) {}
630  MoFEMErrorCode postProcess() { return 0; }
631 
632  friend MoFEMErrorCode OpTractionBc::doWork(int side, EntityType type,
633  EntData &data);
634 
635 protected:
637  boost::shared_ptr<TractionBcVec> bcData;
638  std::string fieldName;
639 };
640 
642  OpSpatialEquilibrium_dw_dP(const std::string &row_field,
643  const std::string &col_field,
644  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
645  const bool assemble_off = false)
646  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
647  assemble_off) {
648  sYmm = false;
649  }
650  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
651 };
652 
654  const double alphaW;
655  const double alphaRho;
656  OpSpatialEquilibrium_dw_dw(const std::string &row_field,
657  const std::string &col_field,
658  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
659  const double alpha, const double rho)
660  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false),
661  alphaW(alpha), alphaRho(rho) {
662  sYmm = true;
663  }
664  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
665 };
666 
668  const double alphaU;
669  OpSpatialPhysical_du_du(const std::string &row_field,
670  const std::string &col_field,
671  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
672  const double alpha)
673  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false),
674  alphaU(alpha) {
675  sYmm = false;
676 
677  CHK_MOAB_THROW(PetscOptionsGetBool(PETSC_NULL, "", "-poly_convex",
678  &polyConvex, PETSC_NULL),
679  "get ployconvex option failed");
680  }
681  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
682  MoFEMErrorCode integratePiola(EntData &row_data, EntData &col_data);
683  MoFEMErrorCode integrateHencky(EntData &row_data, EntData &col_data);
685  EntData &col_data);
686 private:
687  PetscBool polyConvex = PETSC_FALSE;
688 
690 };
691 
693  OpSpatialPhysical_du_dP(const std::string &row_field,
694  const std::string &col_field,
695  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
696  const bool assemble_off = false)
697  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
698  assemble_off) {
699  sYmm = false;
700  }
701 
702  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
703 };
704 
707  const std::string &row_field, const std::string &col_field,
708  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
709  const bool assemble_off = false)
710  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
711  assemble_off) {
712  sYmm = false;
713  }
714 
715  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
716 };
717 
719  OpSpatialPhysical_du_domega(const std::string &row_field,
720  const std::string &col_field,
721  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
722  const bool assemble_off = false)
723  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
724  assemble_off) {
725  sYmm = false;
726  }
727  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
728 };
729 
731  OpSpatialPhysical_du_dx(const std::string &row_field,
732  const std::string &col_field,
733  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
734  const bool assemble_off = false)
735  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
736  assemble_off) {
737  sYmm = false;
738  }
739  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
740 };
741 
743  OpSpatialRotation_domega_dP(const std::string &row_field,
744  const std::string &col_field,
745  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
746  const bool assemble_off)
747  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
748  assemble_off) {
749  sYmm = false;
750  }
751  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
752 };
753 
756  const std::string &row_field, const std::string &col_field,
757  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
758  const bool assemble_off)
759  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
760  assemble_off) {
761  sYmm = false;
762  }
763  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
764 };
765 
768  const std::string &row_field, const std::string &col_field,
769  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
770  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
771  sYmm = false;
772  }
773  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
774 };
775 
778  const std::string &row_field, const std::string &col_field,
779  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
780  const bool assemble_off)
781  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
782  assemble_off) {
783  sYmm = false;
784  }
785  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
786 
787 private:
788 };
789 
792  const std::string &row_field, const std::string &col_field,
793  boost::shared_ptr<DataAtIntegrationPts> &data_ptr,
794  const bool assemble_off)
795  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
796  assemble_off) {
797  sYmm = false;
798  }
799  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
800 
801 private:
802 };
803 
805 
807  std::vector<EntityHandle> &mapGaussPts;
808  boost::shared_ptr<DataAtIntegrationPts> dataAtPts;
809 
811  std::vector<EntityHandle> &map_gauss_pts,
812  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
814  postProcMesh(post_proc_mesh), mapGaussPts(map_gauss_pts),
815  dataAtPts(data_ptr) {}
816 
817  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
818 };
819 
821  OpSpatialPrj(const std::string &row_field,
822  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
823  : OpAssembleVolume(row_field, data_ptr, OPROW) {}
824  MoFEMErrorCode integrate(EntData &row_data);
825 };
826 
828  OpSpatialPrj_dx_dx(const std::string &row_field, const std::string &col_field,
829  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
830  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
831  // FIXME: That is symmetric
832  sYmm = false;
833  }
834  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
835 };
836 
838  OpSpatialPrj_dx_dw(const std::string &row_field, const std::string &col_field,
839  boost::shared_ptr<DataAtIntegrationPts> &data_ptr)
840  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
841  sYmm = false;
842  }
843  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
844 };
845 
847 
849  boost::shared_ptr<DataAtIntegrationPts> data_at_pts,
850  boost::shared_ptr<double> &e)
852  dataAtPts(data_at_pts), energy(e) {}
853 
854  MoFEMErrorCode doWork(int side, EntityType type,
856 
857 private:
858  boost::shared_ptr<DataAtIntegrationPts> dataAtPts;
859  boost::shared_ptr<double> energy;
860 };
861 
863 
867 
868  static double exponentBase;
869  static boost::function<double(const double)> f;
870  static boost::function<double(const double)> d_f;
871  static boost::function<double(const double)> dd_f;
872  static boost::function<double(const double)> inv_f;
873  static boost::function<double(const double)> inv_d_f;
874  static boost::function<double(const double)> inv_dd_f;
875 
876  static double f_log(const double v) {
877  return pow(EshelbianCore::exponentBase, v);
878  }
879  static double d_f_log(const double v) {
880  return pow(exponentBase, v) * log(EshelbianCore::exponentBase);
881  }
882  static double dd_f_log(const double v) {
883  return pow(EshelbianCore::exponentBase, v) *
885  }
886 
887  static double inv_f_log(const double v) {
888  return log(v) / log(EshelbianCore::exponentBase);
889  }
890  static double inv_d_f_log(const double v) {
891  return (1. / v) / log(EshelbianCore::exponentBase);
892  }
893  static double inv_dd_f_log(const double v) {
894  return -(1. / (v * v)) / log(EshelbianCore::exponentBase);
895  }
896 
897  static double f_linear(const double v) { return v + 1; }
898  static double d_f_linear(const double v) { return 1; }
899  static double dd_f_linear(const double v) { return 0; }
900 
901  static double inv_f_linear(const double v) { return v - 1; }
902  static double inv_d_f_linear(const double v) { return 0; }
903  static double inv_dd_f_linear(const double v) { return 0; }
904 
905  /**
906  * \brief Getting interface of core database
907  * @param uuid unique ID of interface
908  * @param iface returned pointer to interface
909  * @return error code
910  */
911  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
912  UnknownInterface **iface) const;
913 
915 
916  boost::shared_ptr<DataAtIntegrationPts> dataAtPts;
917  boost::shared_ptr<PhysicalEquations> physicalEquations;
918 
919  boost::shared_ptr<VolumeElementForcesAndSourcesCore> elasticFeRhs;
920  boost::shared_ptr<VolumeElementForcesAndSourcesCore> elasticFeLhs;
921  boost::shared_ptr<FaceElementForcesAndSourcesCore> elasticBcLhs;
922  boost::shared_ptr<FaceElementForcesAndSourcesCore> elasticBcRhs;
923  boost::shared_ptr<FaceElementForcesAndSourcesCore> contactRhs;
924  boost::shared_ptr<ContactTree> contactTreeRhs; ///< Make a contact tree
925 
926  SmartPetscObj<DM> dM; ///< Coupled problem all fields
927  SmartPetscObj<DM> dmElastic; ///< Elastic problem
928  SmartPetscObj<DM> dmPrjSpatial; ///< Projection spatial displacement
929 
930  const std::string piolaStress;
931  const std::string eshelbyStress;
932  const std::string spatialL2Disp;
933  const std::string spatialH1Disp;
934  const std::string contactDisp;
935  const std::string materialL2Disp;
936  const std::string stretchTensor;
937  const std::string rotAxis;
938  const std::string materialGradient;
939  const std::string tauField;
940  const std::string lambdaField;
941  const std::string bubbleField;
942 
943  const std::string elementVolumeName;
944  const std::string naturalBcElement;
945  const std::string essentialBcElement;
946  const std::string skinElement;
947  const std::string contactElement;
948 
950  virtual ~EshelbianCore();
951 
955  double alphaU;
956  double alphaW;
957  double alphaRho;
958  double precEps;
959  double precEpsOmega;
960  double precEpsW;
962 
964 
965  boost::shared_ptr<BcDispVec> bcSpatialDispVecPtr;
966  boost::shared_ptr<BcRotVec> bcSpatialRotationVecPtr;
967  boost::shared_ptr<TractionBcVec> bcSpatialTraction;
968  boost::shared_ptr<TractionFreeBc> bcSpatialFreeTraction;
969 
970  template <typename BC>
971  MoFEMErrorCode getBc(boost::shared_ptr<BC> &bc_vec_ptr,
972  const std::string block_name, const int nb_attributes) {
974  for (auto it :
975  mField.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(std::regex(
976 
977  (boost::format("%s(.*)") % block_name).str()
978 
979  ))
980 
981  ) {
982  std::vector<double> block_attributes;
983  CHKERR it->getAttributes(block_attributes);
984  if (block_attributes.size() != nb_attributes) {
985  SETERRQ3(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
986  "In block %s expected %d attributes, but given %d",
987  it->getName().c_str(), nb_attributes, block_attributes.size());
988  }
989  Range faces;
990  CHKERR it->getMeshsetIdEntitiesByDimension(mField.get_moab(), 2, faces,
991  true);
992  bc_vec_ptr->emplace_back(it->getName(), block_attributes, faces);
993  }
995  }
996 
998 
1000  bcSpatialRotationVecPtr = boost::make_shared<BcRotVec>();
1001  return getBc(bcSpatialRotationVecPtr, "SPATIAL_ROTATION_BC", 4);
1002  }
1003 
1005 
1006  /**
1007  * @brief Remove all, but entities where kinematic constrains are applied.
1008  *
1009  * @param meshset
1010  * @param bc_ptr
1011  * @param disp_block_set_name
1012  * @param rot_block_set_name
1013  * @param contact_set_name
1014  * @return MoFEMErrorCode
1015  */
1017  boost::shared_ptr<TractionFreeBc> &bc_ptr,
1018  const std::string contact_set_name);
1019 
1020  inline MoFEMErrorCode
1023  boost::shared_ptr<TractionFreeBc>(new TractionFreeBc());
1024  return getTractionFreeBc(meshset, bcSpatialFreeTraction, "CONTACT");
1025  }
1026 
1027  MoFEMErrorCode addFields(const EntityHandle meshset = 0);
1030  MoFEMErrorCode addDMs(const BitRefLevel bit = BitRefLevel().set(0));
1031 
1033  const double lambda,
1034  const double mu,
1035  const double sigma_y);
1036 
1037  MoFEMErrorCode addMaterial_HMHMooneyRivlin(const int tape, const double alpha,
1038  const double beta,
1039  const double lambda,
1040  const double sigma_y);
1041 
1042  MoFEMErrorCode addMaterial_Hencky(double E, double nu);
1043 
1045  const int tag, const bool do_rhs, const bool do_lhs,
1046  boost::shared_ptr<VolumeElementForcesAndSourcesCore> &fe);
1047 
1049  const int tag, const bool add_elastic, const bool add_material,
1050  boost::shared_ptr<VolumeElementForcesAndSourcesCore> &fe_rhs,
1051  boost::shared_ptr<VolumeElementForcesAndSourcesCore> &fe_lhs);
1052 
1054  setFaceElementOps(const bool add_elastic, const bool add_material,
1055  boost::shared_ptr<FaceElementForcesAndSourcesCore> &fe_rhs,
1056  boost::shared_ptr<FaceElementForcesAndSourcesCore> &fe_lhs);
1057 
1059 
1060  boost::shared_ptr<ContactTree> &fe_contact_tree,
1061  boost::shared_ptr<FaceElementForcesAndSourcesCore> &fe_rhs,
1062  boost::shared_ptr<FaceElementForcesAndSourcesCore> &fe_lhs
1063 
1064  );
1065 
1066  MoFEMErrorCode setElasticElementOps(const int tag);
1068 
1069  MoFEMErrorCode solveElastic(TS ts, Mat m, Vec f, Vec x);
1070 
1071  MoFEMErrorCode postProcessResults(const int tag, const std::string file);
1073 
1074  struct SetUpSchur {
1075  static boost::shared_ptr<SetUpSchur> createSetUpSchur(
1076 
1077  MoFEM::Interface &m_field, SmartPetscObj<Mat> m, SmartPetscObj<Mat> p,
1078  EshelbianCore *ep_core_ptr
1079 
1080  );
1081  virtual MoFEMErrorCode setUp(KSP solver) = 0;
1082 
1083  virtual MoFEMErrorCode preProc() = 0;
1084  virtual MoFEMErrorCode postProc() = 0;
1085 
1086  protected:
1087  SetUpSchur() = default;
1088  };
1089 };
1090 
1091 } // namespace EshelbianPlasticity
1092 
1093 #endif //__ESHELBIAN_PLASTICITY_HPP__
NOSPACE
@ NOSPACE
Definition: definitions.h:83
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
MoFEM::UnknownInterface::getInterface
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface refernce to pointer of interface.
Definition: UnknownInterface.hpp:93
CHK_MOAB_THROW
#define CHK_MOAB_THROW(err, msg)
Check error code of MoAB function and throw MoFEM exception.
Definition: definitions.h:576
EshelbianPlasticity::TractionBc
Definition: EshelbianPlasticity.hpp:316
EshelbianPlasticity::EshelbianCore::f_linear
static double f_linear(const double v)
Definition: EshelbianPlasticity.hpp:897
EshelbianPlasticity::BcDispVec
std::vector< BcDisp > BcDispVec
Definition: EshelbianPlasticity.hpp:303
EshelbianPlasticity::EshelbianCore::contactRhs
boost::shared_ptr< FaceElementForcesAndSourcesCore > contactRhs
Definition: EshelbianPlasticity.hpp:923
EshelbianPlasticity::PhysicalEquations::DTensor2
FTensor::Tensor2< double, 3, 3 > DTensor2
Definition: EshelbianPlasticity.hpp:187
EshelbianPlasticity::OpSpatialPhysical_du_dP
Definition: EshelbianPlasticity.hpp:692
MoFEM::EntitiesFieldData::EntData
Data on single entity (This is passed as argument to DataOperator::doWork)
Definition: EntitiesFieldData.hpp:127
EshelbianPlasticity::BcRot::BcRot
BcRot(std::string name, std::vector< double > &attr, Range &faces)
Definition: EshelbianPlasticity.cpp:638
EshelbianPlasticity::OpSpatialEquilibrium::alphaW
const double alphaW
Definition: EshelbianPlasticity.hpp:498
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient
Definition: EshelbianPlasticity.hpp:488
EshelbianPlasticity::DataAtIntegrationPts::getDivSigmaAtPts
MatrixPtr getDivSigmaAtPts()
Definition: EshelbianPlasticity.hpp:103
EshelbianPlasticity::OpAssembleBasic::scaleOff
ScaleOff scaleOff
Definition: EshelbianPlasticity.hpp:375
EshelbianPlasticity::DataAtIntegrationPts::getSmallWH1AtPts
MatrixPtr getSmallWH1AtPts()
Definition: EshelbianPlasticity.hpp:163
EshelbianPlasticity::EshelbianCore::essentialBcElement
const std::string essentialBcElement
Definition: EshelbianPlasticity.hpp:945
EshelbianPlasticity::TractionBcVec
std::vector< TractionBc > TractionBcVec
Definition: EshelbianPlasticity.hpp:323
EshelbianPlasticity::EshelbianCore::addDMs
MoFEMErrorCode addDMs(const BitRefLevel bit=BitRefLevel().set(0))
Definition: EshelbianPlasticity.cpp:523
EshelbianPlasticity::PhysicalEquations::PhysicalEquations
PhysicalEquations(const int size_active, const int size_dependent)
Definition: EshelbianPlasticity.hpp:196
EshelbianPlasticity::LINEAR
@ LINEAR
Definition: EshelbianPlasticity.hpp:21
EshelbianPlasticity::DataAtIntegrationPts::approxSigmaAtPts
MatrixDouble approxSigmaAtPts
Definition: EshelbianPlasticity.hpp:36
EshelbianPlasticity::EshelbianCore::alphaW
double alphaW
Definition: EshelbianPlasticity.hpp:956
EshelbianPlasticity::EshelbianCore::bcSpatialRotationVecPtr
boost::shared_ptr< BcRotVec > bcSpatialRotationVecPtr
Definition: EshelbianPlasticity.hpp:966
EshelbianPlasticity::EshelbianCore::dd_f
static boost::function< double(const double)> dd_f
Definition: EshelbianPlasticity.hpp:871
EshelbianPlasticity::PhysicalEquations::activeVariables
std::vector< double > activeVariables
Definition: EshelbianPlasticity.hpp:209
EshelbianPlasticity::BcRot
Definition: EshelbianPlasticity.hpp:305
MoFEM::Types::VectorDouble3
VectorBoundedArray< double, 3 > VectorDouble3
Definition: Types.hpp:92
EshelbianPlasticity::OpRotationBc::OpRotationBc
OpRotationBc(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< BcRotVec > &bc_rot_ptr)
Definition: EshelbianPlasticity.hpp:591
EshelbianPlasticity::EshelbianCore::inv_f_log
static double inv_f_log(const double v)
Definition: EshelbianPlasticity.hpp:887
FTensor::Tensor1< adouble, 3 >
EshelbianPlasticity::EshelbianCore::getTractionFreeBc
MoFEMErrorCode getTractionFreeBc(const EntityHandle meshset, boost::shared_ptr< TractionFreeBc > &bc_ptr, const std::string contact_set_name)
Remove all, but entities where kinematic constrains are applied.
Definition: EshelbianPlasticity.cpp:666
EshelbianPlasticity::DataAtIntegrationPts::getSmallWL2DotDotAtPts
MatrixPtr getSmallWL2DotDotAtPts()
Definition: EshelbianPlasticity.hpp:115
EshelbianPlasticity::OpPostProcDataStructure::OpPostProcDataStructure
OpPostProcDataStructure(moab::Interface &post_proc_mesh, std::vector< EntityHandle > &map_gauss_pts, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:810
EntityHandle
EshelbianPlasticity::EshelbianCore::piolaStress
const std::string piolaStress
Definition: EshelbianPlasticity.hpp:930
EshelbianPlasticity::OpSpatialPhysical_du_du::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1426
EshelbianPlasticity::OpSpatialPhysical::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:594
EshelbianPlasticity::DataAtIntegrationPts::hAtPts
MatrixDouble hAtPts
Definition: EshelbianPlasticity.hpp:60
EshelbianPlasticity::OpJacobian::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianPlasticity.cpp:108
EshelbianPlasticity::DataAtIntegrationPts::getBigG0AtPts
MatrixPtr getBigG0AtPts()
Definition: EshelbianPlasticity.hpp:147
EshelbianPlasticity::DataAtIntegrationPts::wH1AtPts
MatrixDouble wH1AtPts
Definition: EshelbianPlasticity.hpp:55
EshelbianPlasticity::OpTractionBc::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianOperators.cpp:1083
EshelbianPlasticity::DataAtIntegrationPts
Definition: EshelbianPlasticity.hpp:32
EshelbianPlasticity::EshelbianCore::spatialH1Disp
const std::string spatialH1Disp
Definition: EshelbianPlasticity.hpp:933
EshelbianPlasticity::PhysicalEquations::DTensor0Ptr
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > DTensor0Ptr
Definition: EshelbianPlasticity.hpp:190
EshelbianPlasticity::OpCalculateStrainEnergy::OpCalculateStrainEnergy
OpCalculateStrainEnergy(const std::string field_name, boost::shared_ptr< DataAtIntegrationPts > data_at_pts, boost::shared_ptr< double > &e)
Definition: EshelbianPlasticity.hpp:848
EshelbianPlasticity::EshelbianCore::SetUpSchur
Definition: EshelbianPlasticity.hpp:1074
EshelbianPlasticity::EshelbianCore::setBaseVolumeElementOps
MoFEMErrorCode setBaseVolumeElementOps(const int tag, const bool do_rhs, const bool do_lhs, boost::shared_ptr< VolumeElementForcesAndSourcesCore > &fe)
Definition: EshelbianPlasticity.cpp:852
EshelbianPlasticity::DataAtIntegrationPts::rotAxisDotAtPts
MatrixDouble rotAxisDotAtPts
Definition: EshelbianPlasticity.hpp:50
rho
double rho
Definition: plastic.cpp:191
EshelbianPlasticity::EshelbianCore::exponentBase
static double exponentBase
Definition: EshelbianPlasticity.hpp:868
EshelbianPlasticity::EshelbianCore::inv_dd_f_linear
static double inv_dd_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:903
EshelbianPlasticity::OpSpatialConsistency_dP_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:2102
EshelbianPlasticity::OpSpatialPhysical_du_du::dP
MatrixDouble dP
Definition: EshelbianPlasticity.hpp:689
EshelbianPlasticity::OpSpatialPhysical_du_dP::OpSpatialPhysical_du_dP
OpSpatialPhysical_du_dP(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:693
EshelbianPlasticity::PhysicalEquations::DTensor2Ptr
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 3 > DTensor2Ptr
Definition: EshelbianPlasticity.hpp:192
EshelbianPlasticity::OpAssembleBasic::assemble
virtual MoFEMErrorCode assemble(int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data)
Definition: EshelbianPlasticity.hpp:412
EshelbianPlasticity::EshelbianCore::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
Definition: EshelbianPlasticity.hpp:916
EshelbianPlasticity::PhysicalEquations::get_P_dh2
DTensor3Ptr get_P_dh2()
Definition: EshelbianPlasticity.hpp:288
EshelbianPlasticity::EshelbianCore::spaceH1Order
int spaceH1Order
Definition: EshelbianPlasticity.hpp:953
EshelbianPlasticity::OpAssembleBasic::assemble
virtual MoFEMErrorCode assemble(int row_side, EntityType row_type, EntData &data)
Definition: EshelbianPlasticity.hpp:399
EshelbianPlasticity::TractionBc::blockName
std::string blockName
Definition: EshelbianPlasticity.hpp:318
EshelbianPlasticity::OpTractionBc::OpTractionBc
OpTractionBc(std::string row_field, FeTractionBc &bc_fe)
Definition: EshelbianPlasticity.hpp:613
EshelbianPlasticity::EshelbianCore::alphaRho
double alphaRho
Definition: EshelbianPlasticity.hpp:957
EshelbianPlasticity::DataAtIntegrationPts::getRotAxisDotAtPts
MatrixPtr getRotAxisDotAtPts()
Definition: EshelbianPlasticity.hpp:138
EshelbianPlasticity::DataAtIntegrationPts::stretchTensorAtPts
MatrixDouble stretchTensorAtPts
Definition: EshelbianPlasticity.hpp:43
EshelbianPlasticity::DataAtIntegrationPts::leviKirchhoffOmegaAtPts
MatrixDouble leviKirchhoffOmegaAtPts
Definition: EshelbianPlasticity.hpp:65
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:490
EshelbianPlasticity::OpSpatialPhysical_du_du::integrateHencky
MoFEMErrorCode integrateHencky(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1441
EshelbianPlasticity::EshelbianCore::addMaterial_Hencky
MoFEMErrorCode addMaterial_Hencky(double E, double nu)
Definition: EshelbianADOL-C.cpp:643
EshelbianPlasticity::BcRot::blockName
std::string blockName
Definition: EshelbianPlasticity.hpp:307
EshelbianPlasticity::EshelbianCore::addBoundaryFiniteElement
MoFEMErrorCode addBoundaryFiniteElement(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:436
EshelbianPlasticity::OpPostProcDataStructure::mapGaussPts
std::vector< EntityHandle > & mapGaussPts
Definition: EshelbianPlasticity.hpp:807
EshelbianPlasticity::DataAtIntegrationPts::diff2RotMatAtPts
MatrixDouble diff2RotMatAtPts
Definition: EshelbianPlasticity.hpp:72
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
EshelbianPlasticity::OpSpatialRotation_domega_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1944
E
EshelbianPlasticity::EshelbianCore::dd_f_linear
static double dd_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:899
MoFEM::Types::MatrixDouble
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
EshelbianPlasticity::DataAtIntegrationPts::matDeviatorD
MatrixDouble matDeviatorD
Definition: EshelbianPlasticity.hpp:86
EshelbianPlasticity::OpRotationBc
Definition: EshelbianPlasticity.hpp:589
EshelbianPlasticity::EshelbianCore::stretchTensor
const std::string stretchTensor
Definition: EshelbianPlasticity.hpp:936
EshelbianPlasticity::OpSpatialConsistencyP
Definition: EshelbianPlasticity.hpp:538
EshelbianPlasticity::PhysicalEquations::~PhysicalEquations
virtual ~PhysicalEquations()=default
EshelbianPlasticity::EshelbianCore::setElasticElementToTs
MoFEMErrorCode setElasticElementToTs(DM dm)
Definition: EshelbianPlasticity.cpp:1265
EshelbianPlasticity::BcRotVec
std::vector< BcRot > BcRotVec
Definition: EshelbianPlasticity.hpp:312
EshelbianPlasticity::EshelbianCore::setElasticElementOps
MoFEMErrorCode setElasticElementOps(const int tag)
Definition: EshelbianPlasticity.cpp:1239
EshelbianPlasticity::DataAtIntegrationPts::SigmaAtPts
MatrixDouble SigmaAtPts
Definition: EshelbianPlasticity.hpp:74
EshelbianPlasticity::OpJacobian::physicsPtr
boost::shared_ptr< PhysicalEquations > physicsPtr
material physical equations
Definition: EshelbianPlasticity.hpp:348
EshelbianPlasticity
Definition: CGGTonsorialBubbleBase.hpp:11
EshelbianPlasticity::DataAtIntegrationPts::W0AtPts
MatrixDouble W0AtPts
Definition: EshelbianPlasticity.hpp:52
EshelbianPlasticity::DataAtIntegrationPts::logStretchTotalTensorAtPts
MatrixDouble logStretchTotalTensorAtPts
Definition: EshelbianPlasticity.hpp:58
EshelbianPlasticity::EshelbianCore::d_f_linear
static double d_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:898
EshelbianPlasticity::OpSpatialEquilibrium::OpSpatialEquilibrium
OpSpatialEquilibrium(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const double alpha, const double rho)
Definition: EshelbianPlasticity.hpp:500
EshelbianPlasticity::OpSpatialConsistencyDivTerm
Definition: EshelbianPlasticity.hpp:556
EshelbianPlasticity::EshelbianCore::dd_f_log
static double dd_f_log(const double v)
Definition: EshelbianPlasticity.hpp:882
EshelbianPlasticity::EshelbianCore::getSpatialTractionFreeBc
MoFEMErrorCode getSpatialTractionFreeBc(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.hpp:1021
EshelbianPlasticity::DataAtIntegrationPts::flowL2AtPts
MatrixDouble flowL2AtPts
Definition: EshelbianPlasticity.hpp:76
EshelbianPlasticity::PhysicalEquations
Definition: EshelbianPlasticity.hpp:181
EshelbianPlasticity::DataAtIntegrationPts::getStretchTensorAtPts
MatrixPtr getStretchTensorAtPts()
Definition: EshelbianPlasticity.hpp:124
EshelbianPlasticity::OpSpatialPhysical_du_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1876
EshelbianPlasticity::EshelbianCore::inv_f_linear
static double inv_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:901
EshelbianPlasticity::OpAssembleBasic::nF
VectorDouble nF
local right hand side vector
Definition: EshelbianPlasticity.hpp:371
EshelbianPlasticity::EshelbianCore::d_f
static boost::function< double(const double)> d_f
Definition: EshelbianPlasticity.hpp:870
EshelbianPlasticity::OpRotationBc::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:997
EshelbianPlasticity::EshelbianCore::dmPrjSpatial
SmartPetscObj< DM > dmPrjSpatial
Projection spatial displacement.
Definition: EshelbianPlasticity.hpp:928
EshelbianPlasticity::OpSpatialConsistency_dP_domega::OpSpatialConsistency_dP_domega
OpSpatialConsistency_dP_domega(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:777
EshelbianPlasticity::OpJacobian::evaluateLhs
virtual MoFEMErrorCode evaluateLhs(EntData &data)=0
EshelbianPlasticity::OpSpatialPhysical_du_du::integratePolyconvexHencky
MoFEMErrorCode integratePolyconvexHencky(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1577
EshelbianPlasticity::OpAssembleBasic< VolUserDataOperator >::ScaleOff
boost::function< double()> ScaleOff
Definition: EshelbianPlasticity.hpp:353
EshelbianPlasticity::OpSpatialConsistencyP::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:818
EshelbianPlasticity::EshelbianCore::elasticFeRhs
boost::shared_ptr< VolumeElementForcesAndSourcesCore > elasticFeRhs
Definition: EshelbianPlasticity.hpp:919
EshelbianPlasticity::PhysicalEquations::DTensor3
FTensor::Tensor3< double, 3, 3, 3 > DTensor3
Definition: EshelbianPlasticity.hpp:188
EshelbianPlasticity::EshelbianCore::elasticBcRhs
boost::shared_ptr< FaceElementForcesAndSourcesCore > elasticBcRhs
Definition: EshelbianPlasticity.hpp:922
EshelbianPlasticity::OpSpatialRotation_domega_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:2049
EshelbianPlasticity::EshelbianCore::SetUpSchur::postProc
virtual MoFEMErrorCode postProc()=0
EshelbianPlasticity::OpSpatialPhysical::alphaU
const double alphaU
Definition: EshelbianPlasticity.hpp:534
EshelbianPlasticity::DataAtIntegrationPts::getRotAxisAtPts
MatrixPtr getRotAxisAtPts()
Definition: EshelbianPlasticity.hpp:134
EshelbianPlasticity::OpSpatialConsistencyDivTerm::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:910
EshelbianPlasticity::EshelbianCore::elasticFeLhs
boost::shared_ptr< VolumeElementForcesAndSourcesCore > elasticFeLhs
Definition: EshelbianPlasticity.hpp:920
EshelbianPlasticity::DataAtIntegrationPts::getApproxSigmaAtPts
MatrixPtr getApproxSigmaAtPts()
Definition: EshelbianPlasticity.hpp:91
EshelbianPlasticity::DataAtIntegrationPts::wL2AtPts
MatrixDouble wL2AtPts
Definition: EshelbianPlasticity.hpp:39
MoFEM::VecSetValues
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
Definition: EntitiesFieldData.hpp:1576
EshelbianPlasticity::DataAtIntegrationPts::WAtPts
MatrixDouble WAtPts
Definition: EshelbianPlasticity.hpp:51
FTensor::Tensor2< adouble, 3, 3 >
EshelbianPlasticity::DataAtIntegrationPts::rotAxisAtPts
MatrixDouble rotAxisAtPts
Definition: EshelbianPlasticity.hpp:49
EshelbianPlasticity::EshelbianCore::gradApperoximator
static enum RotSelector gradApperoximator
Definition: EshelbianPlasticity.hpp:865
MoFEM::Types::VectorInt3
VectorBoundedArray< int, 3 > VectorInt3
Definition: Types.hpp:87
MoFEM::DeprecatedCoreInterface
Deprecated interface functions.
Definition: DeprecatedCoreInterface.hpp:16
EshelbianPlasticity::OpSpatialPhysical_du_du::alphaU
const double alphaU
Definition: EshelbianPlasticity.hpp:668
EshelbianPlasticity::OpAssembleFace::OpAssembleFace
OpAssembleFace(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const char type, const bool assemble_symmetry)
Definition: EshelbianPlasticity.hpp:481
EshelbianPlasticity::MatrixPtr
boost::shared_ptr< MatrixDouble > MatrixPtr
Definition: EshelbianPlasticity.hpp:23
EshelbianPlasticity::DataAtIntegrationPts::contactL2AtPts
MatrixDouble contactL2AtPts
Definition: EshelbianPlasticity.hpp:56
EshelbianPlasticity::OpSpatialRotation_domega_dBubble::OpSpatialRotation_domega_dBubble
OpSpatialRotation_domega_dBubble(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:755
EshelbianPlasticity::EshelbianCore::f_log
static double f_log(const double v)
Definition: EshelbianPlasticity.hpp:876
MoFEM::Interface
DeprecatedCoreInterface Interface
Definition: Interface.hpp:1975
EshelbianPlasticity::OpAssembleBasic::assemble
virtual MoFEMErrorCode assemble(EntData &data)
Definition: EshelbianPlasticity.hpp:390
EshelbianPlasticity::EshelbianCore::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Getting interface of core database.
Definition: EshelbianPlasticity.cpp:102
EshelbianPlasticity::OpSpatialPhysical_du_du::polyConvex
PetscBool polyConvex
Definition: EshelbianPlasticity.hpp:687
EshelbianPlasticity::OpSpatialConsistencyDivTerm::OpSpatialConsistencyDivTerm
OpSpatialConsistencyDivTerm(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:557
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianOperators.cpp:257
EshelbianPlasticity::DataAtIntegrationPts::adjointPdstretchAtPts
MatrixDouble adjointPdstretchAtPts
Definition: EshelbianPlasticity.hpp:66
EshelbianPlasticity::BcDisp::flags
VectorInt3 flags
Definition: EshelbianPlasticity.hpp:301
EshelbianPlasticity::OpAssembleBasic::doWork
MoFEMErrorCode doWork(int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data)
Definition: EshelbianPlasticity.hpp:446
EshelbianPlasticity::BcDisp::faces
Range faces
Definition: EshelbianPlasticity.hpp:299
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::alphaRho
const double alphaRho
Definition: EshelbianPlasticity.hpp:655
EshelbianPlasticity::OpSpatialPrj_dx_dx::OpSpatialPrj_dx_dx
OpSpatialPrj_dx_dx(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:828
EshelbianPlasticity::OpSpatialRotation::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:560
EshelbianPlasticity::DataAtIntegrationPts::eigenVecs
MatrixDouble eigenVecs
Definition: EshelbianPlasticity.hpp:81
EshelbianPlasticity::DataAtIntegrationPts::logStretchDotTensorAtPts
MatrixDouble logStretchDotTensorAtPts
Definition: EshelbianPlasticity.hpp:48
EshelbianPlasticity::EntData
EntitiesFieldData::EntData EntData
Definition: EshelbianPlasticity.hpp:26
EshelbianPlasticity::EshelbianCore::postProcessResults
MoFEMErrorCode postProcessResults(const int tag, const std::string file)
Definition: EshelbianPlasticity.cpp:1465
EshelbianPlasticity::OpJacobian::tAg
int tAg
adol-c tape
Definition: EshelbianPlasticity.hpp:341
EshelbianPlasticity::OpSpatialEquilibrium_dw_dP::OpSpatialEquilibrium_dw_dP
OpSpatialEquilibrium_dw_dP(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:642
EshelbianPlasticity::OpSpatialRotation
Definition: EshelbianPlasticity.hpp:508
FEMethod
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:535
FTensor::Tensor3
Definition: Tensor3_value.hpp:12
EshelbianPlasticity::TractionBc::faces
Range faces
Definition: EshelbianPlasticity.hpp:319
EshelbianPlasticity::OpSpatialRotation_domega_dP::OpSpatialRotation_domega_dP
OpSpatialRotation_domega_dP(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:743
EshelbianPlasticity::OpSpatialConsistency_dBubble_domega
Definition: EshelbianPlasticity.hpp:790
EshelbianPlasticity::OpDispBc::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:945
EshelbianPlasticity::OpAssembleBasic::integrate
virtual MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianPlasticity.hpp:377
MoFEM::CoreInterface::get_moab
virtual moab::Interface & get_moab()=0
EshelbianPlasticity::EshelbianCore::precEpsW
double precEpsW
Definition: EshelbianPlasticity.hpp:960
EshelbianPlasticity::OpDispBc_dx::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::DataAtIntegrationPts::getDivPAtPts
MatrixPtr getDivPAtPts()
Definition: EshelbianPlasticity.hpp:99
EshelbianPlasticity::OpSpatialPhysical_du_dBubble::OpSpatialPhysical_du_dBubble
OpSpatialPhysical_du_dBubble(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:706
EshelbianPlasticity::EshelbianCore::skinElement
const std::string skinElement
Definition: EshelbianPlasticity.hpp:946
EshelbianPlasticity::DataAtIntegrationPts::approxPAtPts
MatrixDouble approxPAtPts
Definition: EshelbianPlasticity.hpp:35
EshelbianPlasticity::DataAtIntegrationPts::getMatDPtr
MatrixPtr getMatDPtr()
Definition: EshelbianPlasticity.hpp:151
EshelbianPlasticity::OpSpatialPhysical::integratePolyconvexHencky
MoFEMErrorCode integratePolyconvexHencky(EntData &data)
Definition: EshelbianOperators.cpp:668
EshelbianPlasticity::DataAtIntegrationPts::adjointPdUdOmegaAtPts
MatrixDouble adjointPdUdOmegaAtPts
Definition: EshelbianPlasticity.hpp:68
EshelbianPlasticity::EshelbianCore::d_f_log
static double d_f_log(const double v)
Definition: EshelbianPlasticity.hpp:879
EshelbianPlasticity::EshelbianCore::spaceOrder
int spaceOrder
Definition: EshelbianPlasticity.hpp:952
EshelbianPlasticity::DataAtIntegrationPts::divPAtPts
MatrixDouble divPAtPts
Definition: EshelbianPlasticity.hpp:37
EshelbianPlasticity::OpSpatialRotation::OpSpatialRotation
OpSpatialRotation(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:509
EshelbianPlasticity::OpTractionBc::vecPv
MatrixDouble vecPv
Definition: EshelbianPlasticity.hpp:621
EshelbianPlasticity::OpRotationBc::bcRotPtr
boost::shared_ptr< BcRotVec > bcRotPtr
Definition: EshelbianPlasticity.hpp:590
EshelbianPlasticity::OpSpatialPhysical::OpSpatialPhysical
OpSpatialPhysical(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const double alpha_u)
Definition: EshelbianPlasticity.hpp:517
EshelbianPlasticity::EshelbianCore::addVolumeFiniteElement
MoFEMErrorCode addVolumeFiniteElement(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:396
EshelbianPlasticity::DataAtIntegrationPts::physicsPtr
boost::shared_ptr< PhysicalEquations > physicsPtr
Definition: EshelbianPlasticity.hpp:176
EshelbianPlasticity::BcRot::vals
VectorDouble3 vals
Definition: EshelbianPlasticity.hpp:309
EshelbianPlasticity::OpSpatialPrj_dx_dx::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::OpSpatialConsistency_dP_domega
Definition: EshelbianPlasticity.hpp:776
EshelbianPlasticity::TractionFreeBc
std::vector< Range > TractionFreeBc
Definition: EshelbianPlasticity.hpp:314
EshelbianPlasticity::OpCalculateStrainEnergy::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
Definition: EshelbianPlasticity.hpp:858
EshelbianPlasticity::EshelbianCore::stretchSelector
static enum StretchSelector stretchSelector
Definition: EshelbianPlasticity.hpp:866
EshelbianPlasticity::EshelbianCore::dmElastic
SmartPetscObj< DM > dmElastic
Elastic problem.
Definition: EshelbianPlasticity.hpp:927
EshelbianPlasticity::BcRot::faces
Range faces
Definition: EshelbianPlasticity.hpp:308
EshelbianPlasticity::EshelbianCore::materialGradient
const std::string materialGradient
Definition: EshelbianPlasticity.hpp:938
EshelbianPlasticity::EshelbianCore::elasticBcLhs
boost::shared_ptr< FaceElementForcesAndSourcesCore > elasticBcLhs
Definition: EshelbianPlasticity.hpp:921
EshelbianPlasticity::EshelbianCore::contactTreeRhs
boost::shared_ptr< ContactTree > contactTreeRhs
Make a contact tree.
Definition: EshelbianPlasticity.hpp:924
double
bit
auto bit
set bit
Definition: hanging_node_approx.cpp:75
EshelbianPlasticity::OpAssembleFace
Definition: EshelbianPlasticity.hpp:475
convert.type
type
Definition: convert.py:64
EshelbianPlasticity::FeTractionBc::FeTractionBc
FeTractionBc(MoFEM::Interface &m_field, const std::string field_name, boost::shared_ptr< TractionBcVec > &bc)
Definition: EshelbianPlasticity.hpp:626
EshelbianPlasticity::OpAssembleBasic::OpAssembleBasic
OpAssembleBasic(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type, const bool assemble_symmetry, ScaleOff scale_off=[]() { return 1;})
Definition: EshelbianPlasticity.hpp:364
EshelbianPlasticity::DataAtIntegrationPts::matD
MatrixDouble matD
Definition: EshelbianPlasticity.hpp:84
EshelbianPlasticity::OpCalculateStrainEnergy
Definition: EshelbianPlasticity.hpp:846
EshelbianPlasticity::EshelbianCore::precEpsContactDisp
double precEpsContactDisp
Definition: EshelbianPlasticity.hpp:961
EshelbianPlasticity::OpPostProcDataStructure::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianOperators.cpp:2225
EshelbianPlasticity::OpSpatialPhysical_du_domega::OpSpatialPhysical_du_domega
OpSpatialPhysical_du_domega(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:719
EshelbianPlasticity::OpAssembleVolume
Definition: EshelbianPlasticity.hpp:462
EshelbianPlasticity::EshelbianCore::SetUpSchur::SetUpSchur
SetUpSchur()=default
EshelbianPlasticity::EshelbianCore::rotSelector
static enum RotSelector rotSelector
Definition: EshelbianPlasticity.hpp:864
EshelbianPlasticity::OpRotationBc_dx::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::PhysicalEquations::ATensor2
FTensor::Tensor2< adouble, 3, 3 > ATensor2
Definition: EshelbianPlasticity.hpp:184
EshelbianPlasticity::OpSpatialPhysical::integrateHencky
MoFEMErrorCode integrateHencky(EntData &data)
Definition: EshelbianOperators.cpp:610
EshelbianPlasticity::EshelbianCore::addMaterial_HMHHStVenantKirchhoff
MoFEMErrorCode addMaterial_HMHHStVenantKirchhoff(const int tape, const double lambda, const double mu, const double sigma_y)
Definition: EshelbianADOL-C.cpp:446
EshelbianPlasticity::EshelbianCore::f
static boost::function< double(const double)> f
Definition: EshelbianPlasticity.hpp:869
EshelbianPlasticity::DataAtIntegrationPts::G0AtPts
MatrixDouble G0AtPts
Definition: EshelbianPlasticity.hpp:54
EshelbianPlasticity::DataAtIntegrationPts::leviKirchhoffAtPts
MatrixDouble leviKirchhoffAtPts
Definition: EshelbianPlasticity.hpp:63
EshelbianPlasticity::OpSpatialPhysical_du_dx::OpSpatialPhysical_du_dx
OpSpatialPhysical_du_dx(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:731
EshelbianPlasticity::EshelbianCore::bcSpatialDispVecPtr
boost::shared_ptr< BcDispVec > bcSpatialDispVecPtr
Definition: EshelbianPlasticity.hpp:965
EshelbianPlasticity::BcDisp::blockName
std::string blockName
Definition: EshelbianPlasticity.hpp:298
MoFEM::EntitiesFieldData::EntData::getIndices
const VectorInt & getIndices() const
Get global indices of dofs on entity.
Definition: EntitiesFieldData.hpp:1201
EshelbianPlasticity::OpDispBc::scalingMethodsVec
std::vector< boost::shared_ptr< ScalingMethod > > scalingMethodsVec
Definition: EshelbianPlasticity.hpp:574
EshelbianPlasticity::EshelbianCore::inv_d_f
static boost::function< double(const double)> inv_d_f
Definition: EshelbianPlasticity.hpp:873
EshelbianPlasticity::OpRotationBc_dx
Definition: EshelbianPlasticity.hpp:598
EshelbianPlasticity::DataAtIntegrationPts::logStretchTensorAtPts
MatrixDouble logStretchTensorAtPts
Definition: EshelbianPlasticity.hpp:42
EshelbianPlasticity::StretchSelector
StretchSelector
Definition: EshelbianPlasticity.hpp:21
EshelbianPlasticity::EshelbianCore::bcSpatialTraction
boost::shared_ptr< TractionBcVec > bcSpatialTraction
Definition: EshelbianPlasticity.hpp:967
EshelbianPlasticity::EshelbianCore::EshelbianCore
EshelbianCore(MoFEM::Interface &m_field)
Definition: EshelbianPlasticity.cpp:120
EshelbianPlasticity::OpPostProcDataStructure::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
Definition: EshelbianPlasticity.hpp:808
EshelbianPlasticity::OpAssembleBasic::integrate
virtual MoFEMErrorCode integrate(int row_side, EntityType row_type, EntData &data)
Definition: EshelbianPlasticity.hpp:383
EshelbianPlasticity::VectorPtr
boost::shared_ptr< VectorDouble > VectorPtr
Definition: EshelbianPlasticity.hpp:24
EshelbianPlasticity::EshelbianCore::mField
MoFEM::Interface & mField
Definition: EshelbianPlasticity.hpp:914
EshelbianPlasticity::PhysicalEquations::dependentVariablesPiolaDirevatives
std::vector< double > dependentVariablesPiolaDirevatives
Definition: EshelbianPlasticity.hpp:211
EshelbianPlasticity::OpAssembleBasic::transposeK
MatrixDouble transposeK
Definition: EshelbianPlasticity.hpp:373
EshelbianPlasticity::DataAtIntegrationPts::matAxiatorD
MatrixDouble matAxiatorD
Definition: EshelbianPlasticity.hpp:85
EshelbianPlasticity::OpDispBc
Definition: EshelbianPlasticity.hpp:563
EshelbianPlasticity::PhysicalEquations::get_P_dh1
DTensor3Ptr get_P_dh1()
Definition: EshelbianPlasticity.hpp:284
EshelbianPlasticity::VolUserDataOperator
VolumeElementForcesAndSourcesCore::UserDataOperator VolUserDataOperator
Definition: EshelbianPlasticity.hpp:28
EshelbianPlasticity::OpSpatialPrj_dx_dw::OpSpatialPrj_dx_dw
OpSpatialPrj_dx_dw(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:838
EshelbianPlasticity::PhysicalEquations::get_vecTensor3
static DTensor3Ptr get_vecTensor3(std::vector< double > &v, const int nba)
Definition: EshelbianPlasticity.hpp:229
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient::OpCalculateRotationAndSpatialGradient
OpCalculateRotationAndSpatialGradient(boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:491
EshelbianPlasticity::OpAssembleBasic::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:357
EshelbianPlasticity::FeTractionBc
Definition: EshelbianPlasticity.hpp:624
EshelbianPlasticity::BcDisp::BcDisp
BcDisp(std::string name, std::vector< double > &attr, Range &faces)
Definition: EshelbianPlasticity.cpp:621
EshelbianPlasticity::OpSpatialPrj_dx_dx
Definition: EshelbianPlasticity.hpp:827
EshelbianPlasticity::EshelbianCore::contactElement
const std::string contactElement
Definition: EshelbianPlasticity.hpp:947
MoFEM::MatSetValues< SchurL2Mats >
MoFEMErrorCode MatSetValues< SchurL2Mats >(Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const MatrixDouble &mat, InsertMode iora)
Definition: Schur.hpp:189
EshelbianPlasticity::EshelbianCore::setFaceElementOps
MoFEMErrorCode setFaceElementOps(const bool add_elastic, const bool add_material, boost::shared_ptr< FaceElementForcesAndSourcesCore > &fe_rhs, boost::shared_ptr< FaceElementForcesAndSourcesCore > &fe_lhs)
Definition: EshelbianPlasticity.cpp:1023
EshelbianPlasticity::EshelbianCore::dM
SmartPetscObj< DM > dM
Coupled problem all fields.
Definition: EshelbianPlasticity.hpp:926
EshelbianPlasticity::PhysicalEquations::get_VecTensor2
static DTensor2Ptr get_VecTensor2(std::vector< double > &v)
Definition: EshelbianPlasticity.hpp:218
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::alphaW
const double alphaW
Definition: EshelbianPlasticity.hpp:654
EshelbianPlasticity::OpSpatialPhysical_du_dx::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::OpSpatialEquilibrium_dw_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1227
EshelbianPlasticity::DataAtIntegrationPts::getMatAxiatorDPtr
MatrixPtr getMatAxiatorDPtr()
Definition: EshelbianPlasticity.hpp:155
EshelbianPlasticity::DataAtIntegrationPts::getLogStretchTensorAtPts
MatrixPtr getLogStretchTensorAtPts()
Definition: EshelbianPlasticity.hpp:119
EshelbianPlasticity::OpSpatialPhysical::integratePiola
MoFEMErrorCode integratePiola(EntData &data)
Definition: EshelbianOperators.cpp:753
EshelbianPlasticity::OpSpatialPhysical_du_domega
Definition: EshelbianPlasticity.hpp:718
EshelbianPlasticity::EshelbianCore::rotAxis
const std::string rotAxis
Definition: EshelbianPlasticity.hpp:937
EshelbianPlasticity::DataAtIntegrationPts::phiAtPts
VectorDouble phiAtPts
Definition: EshelbianPlasticity.hpp:75
EshelbianPlasticity::OpSpatialPhysical_du_dBubble::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1378
EshelbianPlasticity::OpTractionBc::bcFe
FeTractionBc & bcFe
Definition: EshelbianPlasticity.hpp:619
EshelbianPlasticity::DataAtIntegrationPts::eigenVals
MatrixDouble eigenVals
Definition: EshelbianPlasticity.hpp:80
EshelbianPlasticity::OpPostProcDataStructure
Definition: EshelbianPlasticity.hpp:804
EshelbianPlasticity::OpSpatialPhysical_du_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1318
EshelbianPlasticity::EshelbianCore::spatialL2Disp
const std::string spatialL2Disp
Definition: EshelbianPlasticity.hpp:932
EshelbianPlasticity::DataAtIntegrationPts::getBigGAtPts
MatrixPtr getBigGAtPts()
Definition: EshelbianPlasticity.hpp:143
EshelbianPlasticity::OpSpatialPhysical_du_du
Definition: EshelbianPlasticity.hpp:667
EshelbianPlasticity::OpDispBc::bcDispPtr
boost::shared_ptr< BcDispVec > bcDispPtr
Definition: EshelbianPlasticity.hpp:564
EshelbianPlasticity::FaceUserDataOperator
FaceElementForcesAndSourcesCore::UserDataOperator FaceUserDataOperator
Definition: EshelbianPlasticity.hpp:29
EshelbianPlasticity::OpAssembleBasic::integrate
virtual MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianPlasticity.hpp:406
EshelbianPlasticity::OpSpatialPrj
Definition: EshelbianPlasticity.hpp:820
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
EshelbianPlasticity::EshelbianCore::bcSpatialFreeTraction
boost::shared_ptr< TractionFreeBc > bcSpatialFreeTraction
Definition: EshelbianPlasticity.hpp:968
EshelbianPlasticity::DataAtIntegrationPts::getLogStretchDotTensorAtPts
MatrixPtr getLogStretchDotTensorAtPts()
Definition: EshelbianPlasticity.hpp:129
EshelbianPlasticity::DataAtIntegrationPts::getMatDeviatorDPtr
MatrixPtr getMatDeviatorDPtr()
Definition: EshelbianPlasticity.hpp:159
EshelbianPlasticity::FeTractionBc::fieldName
std::string fieldName
Definition: EshelbianPlasticity.hpp:638
EshelbianPlasticity::FeTractionBc::mField
MoFEM::Interface & mField
Definition: EshelbianPlasticity.hpp:636
EshelbianPlasticity::EshelbianCore::bubbleField
const std::string bubbleField
Definition: EshelbianPlasticity.hpp:941
EshelbianPlasticity::PhysicalEquations::ATensor1
FTensor::Tensor1< adouble, 3 > ATensor1
Definition: EshelbianPlasticity.hpp:183
MoFEM::UnknownInterface
base class for all interface classes
Definition: UnknownInterface.hpp:34
EshelbianPlasticity::EshelbianCore
Definition: EshelbianPlasticity.hpp:862
UserDataOperator
EshelbianPlasticity::EshelbianCore::inv_f
static boost::function< double(const double)> inv_f
Definition: EshelbianPlasticity.hpp:872
v
const double v
phase velocity of light in medium (cm/ns)
Definition: initial_diffusion.cpp:40
EshelbianPlasticity::DataAtIntegrationPts::wL2DotDotAtPts
MatrixDouble wL2DotDotAtPts
Definition: EshelbianPlasticity.hpp:41
Range
EshelbianPlasticity::OpSpatialRotation_domega_domega::OpSpatialRotation_domega_domega
OpSpatialRotation_domega_domega(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:767
EshelbianPlasticity::OpSpatialPrj_dx_dw::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::EshelbianCore::SetUpSchur::createSetUpSchur
static boost::shared_ptr< SetUpSchur > createSetUpSchur(MoFEM::Interface &m_field, SmartPetscObj< Mat > m, SmartPetscObj< Mat > p, EshelbianCore *ep_core_ptr)
Definition: SetUpSchurImpl.cpp:230
EshelbianPlasticity::PhysicalEquations::returnOpJacobian
virtual OpJacobian * returnOpJacobian(const int tag, const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< PhysicalEquations > &physics_ptr)=0
EshelbianPlasticity::PhysicalEquations::get_P_dh0
DTensor3Ptr get_P_dh0()
Definition: EshelbianPlasticity.hpp:280
EshelbianPlasticity::SMALL_ROT
@ SMALL_ROT
Definition: EshelbianPlasticity.hpp:20
EshelbianPlasticity::DataAtIntegrationPts::rotMatAtPts
MatrixDouble rotMatAtPts
Definition: EshelbianPlasticity.hpp:70
EshelbianPlasticity::OpJacobian::OpJacobian
OpJacobian()
Definition: EshelbianPlasticity.hpp:339
EshelbianPlasticity::OpDispBc_dx::bcDispPtr
boost::shared_ptr< BcDispVec > bcDispPtr
Definition: EshelbianPlasticity.hpp:578
EshelbianPlasticity::OpSpatialConsistencyBubble::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:865
EshelbianPlasticity::EshelbianCore::SetUpSchur::setUp
virtual MoFEMErrorCode setUp(KSP solver)=0
EshelbianPlasticity::FeTractionBc::preProcess
MoFEMErrorCode preProcess()
Definition: EshelbianOperators.cpp:1056
MoFEM::AssemblyType
AssemblyType
[Storage and set boundary conditions]
Definition: FormsIntegrators.hpp:104
EshelbianPlasticity::EshelbianCore::physicalEquations
boost::shared_ptr< PhysicalEquations > physicalEquations
Definition: EshelbianPlasticity.hpp:917
EshelbianPlasticity::LARGE_ROT
@ LARGE_ROT
Definition: EshelbianPlasticity.hpp:20
FTensor::Tensor0
Definition: Tensor0.hpp:16
EshelbianPlasticity::OpSpatialConsistencyP::OpSpatialConsistencyP
OpSpatialConsistencyP(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:539
EshelbianPlasticity::LOG
@ LOG
Definition: EshelbianPlasticity.hpp:21
EshelbianPlasticity::EshelbianCore::elementVolumeName
const std::string elementVolumeName
Definition: EshelbianPlasticity.hpp:943
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1263
EshelbianPlasticity::OpCalculateStrainEnergy::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
Definition: EshelbianOperators.cpp:2409
EshelbianPlasticity::OpAssembleFace::OpAssembleFace
OpAssembleFace(const std::string &field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const char type)
Definition: EshelbianPlasticity.hpp:476
EshelbianPlasticity::DataAtIntegrationPts::diffStretchTensorAtPts
MatrixDouble diffStretchTensorAtPts
Definition: EshelbianPlasticity.hpp:45
EshelbianPlasticity::DataAtIntegrationPts::hdOmegaAtPts
MatrixDouble hdOmegaAtPts
Definition: EshelbianPlasticity.hpp:61
EshelbianPlasticity::EshelbianCore::precEps
double precEps
Definition: EshelbianPlasticity.hpp:958
EshelbianPlasticity::DataAtIntegrationPts::lambda
double lambda
Definition: EshelbianPlasticity.hpp:89
EshelbianPlasticity::TractionBc::TractionBc
TractionBc(std::string name, std::vector< double > &attr, Range &faces)
Definition: EshelbianPlasticity.cpp:647
EshelbianPlasticity::OpSpatialEquilibrium::alphaRho
const double alphaRho
Definition: EshelbianPlasticity.hpp:499
EshelbianPlasticity::OpJacobian
Definition: EshelbianPlasticity.hpp:325
UserDataOperator
ForcesAndSourcesCore::UserDataOperator UserDataOperator
Definition: HookeElement.hpp:75
EshelbianPlasticity::OpSpatialPhysical::polyConvex
PetscBool polyConvex
Definition: EshelbianPlasticity.hpp:535
MoFEM::Types::VectorInt
UBlasVector< int > VectorInt
Definition: Types.hpp:67
EshelbianPlasticity::PhysicalEquations::get_VecTensor0
static DTensor0Ptr get_VecTensor0(std::vector< double > &v)
Definition: EshelbianPlasticity.hpp:224
EshelbianPlasticity::DataAtIntegrationPts::divSigmaAtPts
MatrixDouble divSigmaAtPts
Definition: EshelbianPlasticity.hpp:38
EshelbianPlasticity::RotSelector
RotSelector
Definition: EshelbianPlasticity.hpp:20
EshelbianPlasticity::TractionBc::flags
VectorInt3 flags
Definition: EshelbianPlasticity.hpp:321
EshelbianPlasticity::DataAtIntegrationPts::getSmallWGradH1AtPts
MatrixPtr getSmallWGradH1AtPts()
Definition: EshelbianPlasticity.hpp:171
EshelbianPlasticity::DataAtIntegrationPts::leviKirchhoffPAtPts
MatrixDouble leviKirchhoffPAtPts
Definition: EshelbianPlasticity.hpp:64
EshelbianPlasticity::DataAtIntegrationPts::diffRotMatAtPts
MatrixDouble diffRotMatAtPts
Definition: EshelbianPlasticity.hpp:71
EshelbianPlasticity::OpAssembleVolume::OpAssembleVolume
OpAssembleVolume(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type, const bool assemble_symmetry)
Definition: EshelbianPlasticity.hpp:468
EshelbianPlasticity::EshelbianCore::inv_d_f_linear
static double inv_d_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:902
EshelbianPlasticity::OpTractionBc
Definition: EshelbianPlasticity.hpp:612
EshelbianPlasticity::OpSpatialPrj::integrate
MoFEMErrorCode integrate(EntData &row_data)
mu
double mu
Definition: dynamic_first_order_con_law.cpp:98
EshelbianPlasticity::OpSpatialPrj_dx_dw
Definition: EshelbianPlasticity.hpp:837
lambda
static double lambda
Definition: incompressible_elasticity.cpp:199
EshelbianPlasticity::DataAtIntegrationPts::getSmallWL2DotAtPts
MatrixPtr getSmallWL2DotAtPts()
Definition: EshelbianPlasticity.hpp:111
EshelbianPlasticity::DataAtIntegrationPts::detStretchTensorAtPts
VectorDouble detStretchTensorAtPts
Definition: EshelbianPlasticity.hpp:46
EigenMatrix::Vec
const FTensor::Tensor2< T, Dim, Dim > Vec
Definition: MatrixFunction.hpp:66
MOFEM_DATA_INCONSISTENCY
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
EshelbianPlasticity::PhysicalEquations::DTensor1
FTensor::Tensor1< double, 3 > DTensor1
Definition: EshelbianPlasticity.hpp:186
EshelbianPlasticity::EshelbianCore::alphaU
double alphaU
Definition: EshelbianPlasticity.hpp:955
EshelbianPlasticity::OpSpatialRotation_domega_dBubble::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1999
EshelbianPlasticity::OpSpatialConsistency_dBubble_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:2168
EshelbianPlasticity::OpJacobian::evaluateRhs
virtual MoFEMErrorCode evaluateRhs(EntData &data)=0
EshelbianPlasticity::EshelbianCore::inv_d_f_log
static double inv_d_f_log(const double v)
Definition: EshelbianPlasticity.hpp:890
EshelbianPlasticity::EshelbianCore::addFields
MoFEMErrorCode addFields(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:256
EshelbianPlasticity::OpAssembleBasic::OpAssembleBasic
OpAssembleBasic(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type)
Definition: EshelbianPlasticity.hpp:359
EshelbianPlasticity::OpRotationBc_dx::OpRotationBc_dx
OpRotationBc_dx(const std::string &row_field_name, const std::string &col_field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< BcRotVec > &bc_rot_ptr)
Definition: EshelbianPlasticity.hpp:600
MoFEM::Types::VectorDouble
UBlasVector< double > VectorDouble
Definition: Types.hpp:68
EshelbianPlasticity::OpDispBc_dx
Definition: EshelbianPlasticity.hpp:577
EshelbianPlasticity::DataAtIntegrationPts::detStretchTensorAtPts_du
MatrixDouble detStretchTensorAtPts_du
Definition: EshelbianPlasticity.hpp:47
EshelbianPlasticity::EshelbianCore::inv_dd_f
static boost::function< double(const double)> inv_dd_f
Definition: EshelbianPlasticity.hpp:874
EshelbianPlasticity::DataAtIntegrationPts::nbUniq
VectorInt nbUniq
Definition: EshelbianPlasticity.hpp:82
EshelbianPlasticity::OpSpatialPhysical_du_dx
Definition: EshelbianPlasticity.hpp:730
EshelbianPlasticity::DataAtIntegrationPts::wGradH1AtPts
MatrixDouble wGradH1AtPts
Definition: EshelbianPlasticity.hpp:57
EshelbianPlasticity::EshelbianCore::inv_dd_f_log
static double inv_dd_f_log(const double v)
Definition: EshelbianPlasticity.hpp:893
EshelbianPlasticity::DataAtIntegrationPts::mu
double mu
Definition: EshelbianPlasticity.hpp:88
EshelbianPlasticity::FeTractionBc::nbConstrainsDofs
int nbConstrainsDofs
Definition: EshelbianPlasticity.hpp:625
EshelbianPlasticity::BcDisp
Definition: EshelbianPlasticity.hpp:296
m
FTensor::Index< 'm', 3 > m
Definition: shallow_wave.cpp:80
EshelbianPlasticity::EshelbianCore::getOptions
MoFEMErrorCode getOptions()
Definition: EshelbianPlasticity.cpp:135
MoFEM::Types::BitRefLevel
std::bitset< BITREFLEVEL_SIZE > BitRefLevel
Bit structure attached to each entity identifying to what mesh entity is attached.
Definition: Types.hpp:40
EshelbianPlasticity::OpJacobian::evalRhs
bool evalRhs
Definition: EshelbianPlasticity.hpp:342
EshelbianPlasticity::OpSpatialPhysical_du_du::integratePiola
MoFEMErrorCode integratePiola(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1744
EshelbianPlasticity::BcRot::theta
double theta
Definition: EshelbianPlasticity.hpp:310
EshelbianPlasticity::OpAssembleVolume::OpAssembleVolume
OpAssembleVolume(const std::string &field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type)
Definition: EshelbianPlasticity.hpp:463
EshelbianPlasticity::EshelbianCore::setContactElementOps
MoFEMErrorCode setContactElementOps(boost::shared_ptr< ContactTree > &fe_contact_tree, boost::shared_ptr< FaceElementForcesAndSourcesCore > &fe_rhs, boost::shared_ptr< FaceElementForcesAndSourcesCore > &fe_lhs)
Definition: EshelbianPlasticity.cpp:1057
EshelbianPlasticity::OpDispBc::OpDispBc
OpDispBc(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< BcDispVec > &bc_disp_ptr, std::vector< boost::shared_ptr< ScalingMethod >> smv)
Definition: EshelbianPlasticity.hpp:565
EshelbianPlasticity::EshelbianCore::getBc
MoFEMErrorCode getBc(boost::shared_ptr< BC > &bc_vec_ptr, const std::string block_name, const int nb_attributes)
Definition: EshelbianPlasticity.hpp:971
EshelbianPlasticity::OpPostProcDataStructure::postProcMesh
moab::Interface & postProcMesh
Definition: EshelbianPlasticity.hpp:806
EshelbianPlasticity::DataAtIntegrationPts::getApproxPAtPts
MatrixPtr getApproxPAtPts()
Definition: EshelbianPlasticity.hpp:95
EshelbianPlasticity::OpSpatialEquilibrium
Definition: EshelbianPlasticity.hpp:497
EshelbianPlasticity::OpJacobian::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:346
EshelbianPlasticity::OpSpatialEquilibrium_dw_dP
Definition: EshelbianPlasticity.hpp:641
EshelbianPlasticity::OpRotationBc_dx::bcRotPtr
boost::shared_ptr< BcRotVec > bcRotPtr
Definition: EshelbianPlasticity.hpp:599
EshelbianPlasticity::DataAtIntegrationPts::getSmallWL2AtPts
MatrixPtr getSmallWL2AtPts()
Definition: EshelbianPlasticity.hpp:107
EshelbianPlasticity::BcDisp::vals
VectorDouble3 vals
Definition: EshelbianPlasticity.hpp:300
EshelbianPlasticity::EshelbianCore::getSpatialTractionBc
MoFEMErrorCode getSpatialTractionBc()
Definition: EshelbianPlasticity.cpp:1648
EshelbianPlasticity::DataAtIntegrationPts::wL2DotAtPts
MatrixDouble wL2DotAtPts
Definition: EshelbianPlasticity.hpp:40
EshelbianPlasticity::FeTractionBc::postProcess
MoFEMErrorCode postProcess()
Definition: EshelbianPlasticity.hpp:630
EshelbianPlasticity::EshelbianCore::setVolumeElementOps
MoFEMErrorCode setVolumeElementOps(const int tag, const bool add_elastic, const bool add_material, boost::shared_ptr< VolumeElementForcesAndSourcesCore > &fe_rhs, boost::shared_ptr< VolumeElementForcesAndSourcesCore > &fe_lhs)
Definition: EshelbianPlasticity.cpp:918
EshelbianPlasticity::EshelbianCore::materialOrder
int materialOrder
Definition: EshelbianPlasticity.hpp:954
EshelbianPlasticity::OpSpatialPrj::OpSpatialPrj
OpSpatialPrj(const std::string &row_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:821
EshelbianPlasticity::OpJacobian::evalLhs
bool evalLhs
Definition: EshelbianPlasticity.hpp:343
EshelbianPlasticity::PhysicalEquations::get_h
DTensor2Ptr get_h()
Definition: EshelbianPlasticity.hpp:262
EshelbianPlasticity::EshelbianCore::SetUpSchur::preProc
virtual MoFEMErrorCode preProc()=0
EshelbianPlasticity::PhysicalEquations::ATensor3
FTensor::Tensor3< adouble, 3, 3, 3 > ATensor3
Definition: EshelbianPlasticity.hpp:185
EshelbianPlasticity::OpJacobian::OpJacobian
OpJacobian(const int tag, const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< PhysicalEquations > &physics_ptr)
Definition: EshelbianPlasticity.hpp:327
EshelbianPlasticity::OpSpatialRotation_domega_domega
Definition: EshelbianPlasticity.hpp:766
EshelbianPlasticity::MODERATE_ROT
@ MODERATE_ROT
Definition: EshelbianPlasticity.hpp:20
EshelbianPlasticity::OpTractionBc::matPP
MatrixDouble matPP
Definition: EshelbianPlasticity.hpp:620
EshelbianPlasticity::EshelbianCore::addMaterial_HMHMooneyRivlin
MoFEMErrorCode addMaterial_HMHMooneyRivlin(const int tape, const double alpha, const double beta, const double lambda, const double sigma_y)
Definition: EshelbianADOL-C.cpp:455
EshelbianPlasticity::OpCalculateStrainEnergy::energy
boost::shared_ptr< double > energy
Definition: EshelbianPlasticity.hpp:859
EshelbianPlasticity::OpAssembleBasic::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianPlasticity.hpp:435
EshelbianPlasticity::OpAssembleBasic::K
MatrixDouble K
local tangent matrix
Definition: EshelbianPlasticity.hpp:372
EshelbianPlasticity::EshelbianCore::materialL2Disp
const std::string materialL2Disp
Definition: EshelbianPlasticity.hpp:935
EshelbianPlasticity::OpAssembleBasic
Definition: EshelbianPlasticity.hpp:351
EshelbianPlasticity::OpSpatialPhysical_du_du::OpSpatialPhysical_du_du
OpSpatialPhysical_du_du(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const double alpha)
Definition: EshelbianPlasticity.hpp:669
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw
Definition: EshelbianPlasticity.hpp:653
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
EshelbianPlasticity::EshelbianCore::solveElastic
MoFEMErrorCode solveElastic(TS ts, Mat m, Vec f, Vec x)
Definition: EshelbianPlasticity.cpp:1309
MOFEM_NOT_IMPLEMENTED
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:32
EshelbianPlasticity::OpAssembleBasic::assembleSymmetry
const bool assembleSymmetry
Definition: EshelbianPlasticity.hpp:354
EshelbianPlasticity::PhysicalEquations::dependentVariablesPiola
std::vector< double > dependentVariablesPiola
Definition: EshelbianPlasticity.hpp:210
EshelbianPlasticity::DataAtIntegrationPts::PAtPts
MatrixDouble PAtPts
Definition: EshelbianPlasticity.hpp:73
SPACE_DIM
constexpr int SPACE_DIM
Definition: EshelbianPlasticity.hpp:10
EshelbianPlasticity::OpSpatialRotation_domega_dBubble
Definition: EshelbianPlasticity.hpp:754
EshelbianPlasticity::DataAtIntegrationPts::P_du
MatrixDouble P_du
Definition: EshelbianPlasticity.hpp:78
EshelbianPlasticity::EshelbianCore::eshelbyStress
const std::string eshelbyStress
Definition: EshelbianPlasticity.hpp:931
EshelbianPlasticity::EshelbianCore::tauField
const std::string tauField
Definition: EshelbianPlasticity.hpp:939
MoFEM::SCHUR
@ SCHUR
Definition: FormsIntegrators.hpp:104
EshelbianPlasticity::PhysicalEquations::PhysicalEquations
PhysicalEquations()=delete
EshelbianPlasticity::FeTractionBc::bcData
boost::shared_ptr< TractionBcVec > bcData
Definition: EshelbianPlasticity.hpp:637
EshelbianPlasticity::PhysicalEquations::recordTape
virtual MoFEMErrorCode recordTape(const int tag, DTensor2Ptr *t_h)=0
EshelbianPlasticity::EshelbianCore::lambdaField
const std::string lambdaField
Definition: EshelbianPlasticity.hpp:940
EshelbianPlasticity::OpSpatialPhysical
Definition: EshelbianPlasticity.hpp:515
EshelbianPlasticity::DataAtIntegrationPts::adjointPdUdPAtPts
MatrixDouble adjointPdUdPAtPts
Definition: EshelbianPlasticity.hpp:69
EshelbianPlasticity::OpSpatialRotation_domega_dP
Definition: EshelbianPlasticity.hpp:742
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::OpSpatialEquilibrium_dw_dw
OpSpatialEquilibrium_dw_dw(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const double alpha, const double rho)
Definition: EshelbianPlasticity.hpp:656
EshelbianPlasticity::OpDispBc_dx::OpDispBc_dx
OpDispBc_dx(const std::string &row_field_name, const std::string &col_field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< BcDispVec > &bc_disp_ptr)
Definition: EshelbianPlasticity.hpp:579
EshelbianPlasticity::EshelbianCore::contactDisp
const std::string contactDisp
Definition: EshelbianPlasticity.hpp:934
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
EshelbianPlasticity::PhysicalEquations::get_P
DTensor2Ptr get_P()
Definition: EshelbianPlasticity.hpp:270
EshelbianPlasticity::EshelbianCore::getSpatialRotationBc
MoFEMErrorCode getSpatialRotationBc()
Definition: EshelbianPlasticity.hpp:999
EshelbianPlasticity::EshelbianCore::getSpatialDispBc
MoFEMErrorCode getSpatialDispBc()
[Getting norms]
Definition: EshelbianPlasticity.cpp:1610
EshelbianPlasticity::OpSpatialConsistencyBubble
Definition: EshelbianPlasticity.hpp:547
EshelbianPlasticity::DataAtIntegrationPts::GAtPts
MatrixDouble GAtPts
Definition: EshelbianPlasticity.hpp:53
EshelbianPlasticity::EshelbianCore::naturalBcElement
const std::string naturalBcElement
Definition: EshelbianPlasticity.hpp:944
EshelbianPlasticity::EshelbianCore::precEpsOmega
double precEpsOmega
Definition: EshelbianPlasticity.hpp:959
EshelbianPlasticity::OpSpatialConsistencyBubble::OpSpatialConsistencyBubble
OpSpatialConsistencyBubble(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > &data_ptr)
Definition: EshelbianPlasticity.hpp:548
EshelbianPlasticity::EshelbianCore::gettingNorms
MoFEMErrorCode gettingNorms()
[Getting norms]
Definition: EshelbianPlasticity.cpp:1549
EshelbianPlasticity::EshelbianCore::~EshelbianCore
virtual ~EshelbianCore()
EshelbianPlasticity::OpSpatialConsistency_dBubble_domega::OpSpatialConsistency_dBubble_domega
OpSpatialConsistency_dBubble_domega(const std::string &row_field, const std::string &col_field, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:791
EshelbianPlasticity::TractionBc::vals
VectorDouble3 vals
Definition: EshelbianPlasticity.hpp:320
EshelbianPlasticity::DataAtIntegrationPts::hdLogStretchAtPts
MatrixDouble hdLogStretchAtPts
Definition: EshelbianPlasticity.hpp:62
EshelbianPlasticity::OpSpatialEquilibrium::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:514
EshelbianPlasticity::DataAtIntegrationPts::getContactL2AtPts
MatrixPtr getContactL2AtPts()
Definition: EshelbianPlasticity.hpp:167
EshelbianPlasticity::OpSpatialPhysical_du_dBubble
Definition: EshelbianPlasticity.hpp:705
EshelbianPlasticity::DataAtIntegrationPts::adjointPdUAtPts
MatrixDouble adjointPdUAtPts
Definition: EshelbianPlasticity.hpp:67
A
constexpr AssemblyType A
Definition: EshelbianPlasticity.hpp:11
MoFEM::PetscOptionsGetBool
PetscErrorCode PetscOptionsGetBool(PetscOptions *, const char pre[], const char name[], PetscBool *bval, PetscBool *set)
Definition: DeprecatedPetsc.hpp:182
EshelbianPlasticity::PhysicalEquations::DTensor3Ptr
FTensor::Tensor3< FTensor::PackPtr< double *, 1 >, 3, 3, 3 > DTensor3Ptr
Definition: EshelbianPlasticity.hpp:193