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  * For reference on mixed formulation see: \cite gopalakrishnan2012second and
8  * \cite cockburn2010new
9  *
10  * \todo Implementation of plasticity
11  */
12 
13 constexpr int SPACE_DIM = 3;
14 constexpr auto A = AssemblyType::BLOCK_SCHUR;
15 
16 #ifndef __ESHELBIAN_PLASTICITY_HPP__
17  #define __ESHELBIAN_PLASTICITY_HPP__
18 
19 namespace EshelbianPlasticity {
20 
22 
23  using CachePhi = boost::tuple<int, int, MatrixDouble>;
24 
25  CGGUserPolynomialBase(boost::shared_ptr<CachePhi> cache_phi = nullptr);
26  ~CGGUserPolynomialBase() = default;
27 
28  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
29  BaseFunctionUnknownInterface **iface) const;
31  boost::shared_ptr<BaseFunctionCtx> ctx_ptr);
32 
33 private:
34 
36  boost::shared_ptr<CachePhi> cachePhiPtr;
37 
39 };
40 
41 struct ContactTree;
42 
45 
46 using MatrixPtr = boost::shared_ptr<MatrixDouble>;
47 using VectorPtr = boost::shared_ptr<VectorDouble>;
48 
53 
54 struct PhysicalEquations;
56  : public boost::enable_shared_from_this<DataAtIntegrationPts> {
57 
68 
85 
101  VectorDouble energyAtPts; //< this is density of energy at integration points
103 
105 
109 
114 
115  double mu;
116  double lambda;
117 
119  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
121  }
123  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &approxPAtPts);
124  }
125 
127  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &divPAtPts);
128  }
129 
131  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &divSigmaAtPts);
132  }
133 
135  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wL2AtPts);
136  }
137 
139  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wL2DotAtPts);
140  }
141 
143  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wL2DotDotAtPts);
144  }
145 
147  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
149  }
150 
152  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
154  }
155 
157  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
159  }
160 
162  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &rotAxisAtPts);
163  }
164 
166  return boost::shared_ptr<MatrixDouble>(shared_from_this(),
167  &rotAxisDotAtPts);
168  }
169 
171  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &GAtPts);
172  }
173 
175  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &GAtPts);
176  }
177 
179  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matD);
180  }
181 
183  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matInvD);
184  }
185 
187  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matAxiatorD);
188  }
189 
191  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &matDeviatorD);
192  }
193 
195  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wH1AtPts);
196  }
197 
199  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &XH1AtPts);
200  }
201 
203  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &contactL2AtPts);
204  }
205 
207  return boost::shared_ptr<MatrixDouble>(shared_from_this(), &wGradH1AtPts);
208  }
209 
211  return boost::shared_ptr<VectorDouble>(shared_from_this(), &jacobianAtPts);
212  }
213 
214  boost::shared_ptr<PhysicalEquations> physicsPtr;
215 };
216 
217 struct OpJacobian;
218 
220 
227 
229 
232 
233  PhysicalEquations() = delete;
234  PhysicalEquations(const int size_active, const int size_dependent)
235  : activeVariables(size_active, 0),
236  dependentVariablesPiola(size_dependent, 0),
237  dependentVariablesPiolaDirevatives(size_dependent * size_active, 0) {}
238  virtual ~PhysicalEquations() = default;
239 
240  virtual MoFEMErrorCode recordTape(const int tag, DTensor2Ptr *t_h) = 0;
241 
242  virtual OpJacobian *
243  returnOpJacobian(const int tag, const bool eval_rhs, const bool eval_lhs,
244  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
245  boost::shared_ptr<PhysicalEquations> physics_ptr) = 0;
246 
247  virtual VolUserDataOperator *
248  returnOpSpatialPhysical(const std::string &field_name,
249  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
250  const double alpha_u);
251 
253  std::string row_field, std::string col_field,
254  boost::shared_ptr<DataAtIntegrationPts> data_ptr, const double alpha);
255 
256  virtual VolUserDataOperator *
257  returnOpCalculateEnergy(boost::shared_ptr<DataAtIntegrationPts> data_ptr,
258  boost::shared_ptr<double> total_energy_ptr);
259 
261  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
262  boost::shared_ptr<PhysicalEquations> physics_ptr);
263 
264  std::vector<double> activeVariables;
265  std::vector<double> dependentVariablesPiola;
267 
268  /** \name Active variables */
269 
270  /**@{*/
271 
272  template <int S>
273  inline static DTensor2Ptr get_VecTensor2(std::vector<double> &v) {
274  return DTensor2Ptr(&v[S + 0], &v[S + 1], &v[S + 2], &v[S + 3], &v[S + 4],
275  &v[S + 5], &v[S + 6], &v[S + 7], &v[S + 8]);
276  }
277 
278  template <int S>
279  inline static DTensor0Ptr get_VecTensor0(std::vector<double> &v) {
280  return DTensor0Ptr(&v[S + 0]);
281  }
282 
283  template <int S0>
284  inline static DTensor3Ptr get_vecTensor3(std::vector<double> &v,
285  const int nba) {
286 
287  const int A00 = nba * 0 + S0;
288  const int A01 = nba * 1 + S0;
289  const int A02 = nba * 2 + S0;
290  const int A10 = nba * 3 + S0;
291  const int A11 = nba * 4 + S0;
292  const int A12 = nba * 5 + S0;
293  const int A20 = nba * 6 + S0;
294  const int A21 = nba * 7 + S0;
295  const int A22 = nba * 8 + S0;
296 
297  return DTensor3Ptr(
298 
299  &v[A00 + 0], &v[A00 + 1], &v[A00 + 2], &v[A01 + 0], &v[A01 + 1],
300  &v[A01 + 2], &v[A02 + 0], &v[A02 + 1], &v[A02 + 2],
301 
302  &v[A10 + 0], &v[A10 + 1], &v[A10 + 2], &v[A11 + 0], &v[A11 + 1],
303  &v[A11 + 2], &v[A12 + 0], &v[A12 + 1], &v[A12 + 2],
304 
305  &v[A20 + 0], &v[A20 + 1], &v[A20 + 2], &v[A21 + 0], &v[A21 + 1],
306  &v[A21 + 2], &v[A22 + 0], &v[A22 + 1], &v[A22 + 2]
307 
308  );
309  }
310 
311  /**@}*/
312 
313  /** \name Active variables */
314 
315  /**@{*/
316 
317  inline DTensor2Ptr get_h() { return get_VecTensor2<0>(activeVariables); }
318 
319  /**@}*/
320 
321  /** \name Dependent variables */
322 
323  /**@{*/
324 
325  inline DTensor2Ptr get_P() {
326  return get_VecTensor2<0>(dependentVariablesPiola);
327  }
328 
329  /**@}*/
330 
331  /** \name Derivatives of dependent variables */
332 
333  /**@{*/
334 
336  return get_vecTensor3<0>(dependentVariablesPiolaDirevatives,
337  activeVariables.size());
338  }
340  return get_vecTensor3<3>(dependentVariablesPiolaDirevatives,
341  activeVariables.size());
342  }
344  return get_vecTensor3<6>(dependentVariablesPiolaDirevatives,
345  activeVariables.size());
346  }
347 
348  /**@}*/
349 };
350 
351 struct BcDisp {
352  BcDisp(std::string name, std::vector<double> &attr, Range &faces);
353  std::string blockName;
357 };
358 typedef std::vector<BcDisp> BcDispVec;
359 
360 struct BcRot {
361  BcRot(std::string name, std::vector<double> &attr, Range &faces);
362  std::string blockName;
365  double theta;
366 };
367 typedef std::vector<BcRot> BcRotVec;
368 
369 typedef std::vector<Range> TractionFreeBc;
370 
371 struct TractionBc {
372  TractionBc(std::string name, std::vector<double> &attr, Range &faces);
373  std::string blockName;
377 };
378 typedef std::vector<TractionBc> TractionBcVec;
379 
380 struct OpJacobian : public UserDataOperator {
381 
382  OpJacobian(const int tag, const bool eval_rhs, const bool eval_lhs,
383  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
384  boost::shared_ptr<PhysicalEquations> physics_ptr)
385  : UserDataOperator(NOSPACE, OPSPACE), tAg(tag), evalRhs(eval_rhs),
386  evalLhs(eval_lhs), dataAtPts(data_ptr), physicsPtr(physics_ptr) {}
387 
388  virtual MoFEMErrorCode evaluateRhs(EntData &data) = 0;
389  virtual MoFEMErrorCode evaluateLhs(EntData &data) = 0;
390 
391  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
392 
393 protected:
395 
396  int tAg = -1; ///< adol-c tape
397  bool evalRhs = false;
398  bool evalLhs = false;
399 
400  boost::shared_ptr<DataAtIntegrationPts>
401  dataAtPts; ///< data at integration pts
402  boost::shared_ptr<PhysicalEquations>
403  physicsPtr; ///< material physical equations
404 };
405 
406 template <typename T> struct OpAssembleBasic : public T {
407 
408  using ScaleOff = boost::function<double()>;
409  const bool assembleSymmetry;
410 
411  boost::shared_ptr<DataAtIntegrationPts>
412  dataAtPts; ///< data at integration pts
413 
414  OpAssembleBasic(const std::string &field_name,
415  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
416  const char type)
417  : T(field_name, type), dataAtPts(data_ptr), assembleSymmetry(false) {}
418 
420  std::string row_field, std::string col_field,
421  boost::shared_ptr<DataAtIntegrationPts> data_ptr, const char type,
422  const bool assemble_symmetry, ScaleOff scale_off = []() { return 1; })
423  : T(row_field, col_field, type, false), dataAtPts(data_ptr),
424  assembleSymmetry(assemble_symmetry), scaleOff(scale_off) {}
425 
426  VectorDouble nF; ///< local right hand side vector
427  MatrixDouble K; ///< local tangent matrix
429 
431 
434  SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED, "Not yet implemented");
436  }
437 
438  virtual MoFEMErrorCode integrate(int row_side, EntityType row_type,
439  EntData &data) {
441  CHKERR integrate(data);
443  }
444 
445  virtual MoFEMErrorCode assemble(EntData &data) {
447  double *vec_ptr = &*nF.begin();
448  int nb_dofs = data.getIndices().size();
449  int *ind_ptr = &*data.getIndices().begin();
450  CHKERR VecSetValues(this->getTSf(), nb_dofs, ind_ptr, vec_ptr, ADD_VALUES);
452  }
453 
454  virtual MoFEMErrorCode assemble(int row_side, EntityType row_type,
455  EntData &data) {
457  CHKERR assemble(data);
459  }
460 
461  virtual MoFEMErrorCode integrate(EntData &row_data, EntData &col_data) {
463  SETERRQ(PETSC_COMM_SELF, MOFEM_NOT_IMPLEMENTED, "Not yet implemented");
465  }
466 
467  virtual MoFEMErrorCode assemble(int row_side, int col_side,
468  EntityType row_type, EntityType col_type,
469  EntData &row_data, EntData &col_data) {
471 
472  if (assembleSymmetry) {
473  const auto row_nb_dofs = row_data.getIndices().size();
474  const auto col_nb_dofs = col_data.getIndices().size();
475  transposeK.resize(col_nb_dofs, row_nb_dofs, false);
476  noalias(transposeK) = trans(K);
477  transposeK *= scaleOff();
478  }
479 
480  CHKERR MatSetValues<AssemblyTypeSelector<A>>(this->getTSB(), row_data,
481  col_data, K, ADD_VALUES);
482  if (assembleSymmetry) {
483  CHKERR MatSetValues<AssemblyTypeSelector<A>>(
484  this->getTSB(), col_data, row_data, transposeK, ADD_VALUES);
485  }
486 
488  }
489 
490  MoFEMErrorCode doWork(int side, EntityType type, EntData &data) {
492  if (data.getIndices().empty())
494  nF.resize(data.getIndices().size(), false);
495  nF.clear();
496  CHKERR integrate(side, type, data);
497  CHKERR assemble(side, type, data);
499  }
500 
501  MoFEMErrorCode doWork(int row_side, int col_side, EntityType row_type,
502  EntityType col_type, EntData &row_data,
503  EntData &col_data) {
505  if (row_data.getIndices().empty())
507  if (col_data.getIndices().empty())
509  K.resize(row_data.getIndices().size(), col_data.getIndices().size(), false);
510  K.clear();
511  CHKERR integrate(row_data, col_data);
512  CHKERR assemble(row_side, col_side, row_type, col_type, row_data, col_data);
514  }
515 };
516 
517 struct OpAssembleVolume : public OpAssembleBasic<VolUserDataOperator> {
518  OpAssembleVolume(const std::string &field,
519  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
520  const char type)
521  : OpAssembleBasic<VolUserDataOperator>(field, data_ptr, type) {}
522 
523  OpAssembleVolume(std::string row_field, std::string col_field,
524  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
525  const char type, const bool assemble_symmetry)
526  : OpAssembleBasic<VolUserDataOperator>(row_field, col_field, data_ptr,
527  type, assemble_symmetry) {}
528 };
529 
530 struct OpAssembleFace : public OpAssembleBasic<FaceUserDataOperator> {
531  OpAssembleFace(const std::string &field,
532  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
533  const char type)
534  : OpAssembleBasic<FaceUserDataOperator>(field, data_ptr, type) {}
535 
536  OpAssembleFace(std::string row_field, std::string col_field,
537  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
538  const char type, const bool assemble_symmetry)
539  : OpAssembleBasic<FaceUserDataOperator>(row_field, col_field, data_ptr,
540  type, assemble_symmetry) {}
541 };
542 
543 // Add operator to calculate Eshelby tensor
544 
547  OpCalculateEshelbyStress(boost::shared_ptr<DataAtIntegrationPts> data_ptr)
548  : ForcesAndSourcesCore::UserDataOperator(NOSPACE, OPSPACE),
549  dataAtPts(data_ptr) {}
550  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
551 
552 private:
553  boost::shared_ptr<DataAtIntegrationPts>
554  dataAtPts; ///< data at integration pts
555 };
556 
558 
560  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
561  : VolUserDataOperator(NOSPACE, OPSPACE), dataAtPts(data_ptr) {}
562  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
563 
564 private:
565  boost::shared_ptr<DataAtIntegrationPts>
566  dataAtPts; ///< data at integration pts
567 };
568 
570  const double alphaW;
571  const double alphaRho;
572  OpSpatialEquilibrium(const std::string &field_name,
573  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
574  const double alpha, const double rho)
575  : OpAssembleVolume(field_name, data_ptr, OPROW), alphaW(alpha),
576  alphaRho(rho) {}
578 };
579 
581  OpSpatialRotation(const std::string &field_name,
582  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
583  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
585 };
586 
588  OpSpatialConsistencyP(const std::string &field_name,
589  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
590  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
592 
593 private:
594 };
595 
598  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
599  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
601 
602 private:
603 };
604 
607  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
608  : OpAssembleVolume(field_name, data_ptr, OPROW) {}
610 };
611 
612 template <AssemblyType A, IntegrationType I> struct OpDispBcImpl;
613 
614 template <AssemblyType A>
616  : public FormsIntegrators<FaceUserDataOperator>::Assembly<A>::OpBrokenBase {
617 
618  using OP = typename FormsIntegrators<FaceUserDataOperator>::Assembly<
620 
622  boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
623  boost::shared_ptr<BcDispVec> &bc_disp_ptr,
624  std::vector<boost::shared_ptr<ScalingMethod>> smv,
625  boost::shared_ptr<Range> ents_ptr = nullptr)
626  : OP(broken_base_side_data, ents_ptr), bcDispPtr(bc_disp_ptr),
627  scalingMethodsVec(smv) {}
628 
629 protected:
630  MoFEMErrorCode iNtegrate(EntData &data);
631  boost::shared_ptr<BcDispVec> bcDispPtr;
632  std::vector<boost::shared_ptr<ScalingMethod>> scalingMethodsVec;
633 };
634 
635 struct OpDispBc : public OpDispBcImpl<PETSC, GAUSS> {
637  using OP::OpDispBcImpl;
638 
639 protected:
641 };
642 
643 template <AssemblyType A, IntegrationType I> struct OpRotationBcImpl;
644 
645 template <AssemblyType A>
647  : public FormsIntegrators<FaceUserDataOperator>::Assembly<A>::OpBrokenBase {
648 
649  using OP = typename FormsIntegrators<FaceUserDataOperator>::Assembly<
651 
653  boost::shared_ptr<std::vector<BrokenBaseSideData>> broken_base_side_data,
654  boost::shared_ptr<BcRotVec> &bc_rot_ptr,
655  std::vector<boost::shared_ptr<ScalingMethod>> smv,
656  boost::shared_ptr<Range> ents_ptr = nullptr)
657  : OP(broken_base_side_data, ents_ptr), bcRotPtr(bc_rot_ptr),
658  scalingMethodsVec(smv) {}
659 
660 protected:
661  MoFEMErrorCode iNtegrate(EntData &data);
662  boost::shared_ptr<BcRotVec> bcRotPtr;
663  std::vector<boost::shared_ptr<ScalingMethod>> scalingMethodsVec;
664 };
665 
666 struct OpRotationBc : public OpRotationBcImpl<PETSC, GAUSS> {
668  using OP::OpRotationBcImpl;
669 
670 protected:
672 };
673 
675  : public FormsIntegrators<FaceUserDataOperator>::Assembly<PETSC>::OpBase {
676  OpBrokenTractionBc(const std::string row_field,
677  boost::shared_ptr<TractionBcVec> bc_data)
678  : FormsIntegrators<FaceUserDataOperator>::Assembly<PETSC>::OpBase(
679  row_field, row_field, FaceUserDataOperator::OPROW),
680  bcData(bc_data) {}
681 
683 
684 protected:
685  boost::shared_ptr<TractionBcVec> bcData;
686 };
687 
689  OpSpatialEquilibrium_dw_dP(std::string row_field, std::string col_field,
690  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
691  const bool assemble_off = false)
692  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
693  assemble_off) {
694  sYmm = false;
695  }
696  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
697 };
698 
700  const double alphaW;
701  const double alphaRho;
702  OpSpatialEquilibrium_dw_dw(std::string row_field, std::string col_field,
703  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
704  const double alpha, const double rho)
705  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false),
706  alphaW(alpha), alphaRho(rho) {
707  sYmm = true;
708  }
709  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
710 };
711 
713  OpSpatialPhysical_du_dP(std::string row_field, std::string col_field,
714  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
715  const bool assemble_off = false)
716  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
717  assemble_off) {
718  sYmm = false;
719  }
720 
721  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
722 };
723 
725  OpSpatialPhysical_du_dBubble(std::string row_field, std::string col_field,
726  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
727  const bool assemble_off = false)
728  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
729  assemble_off) {
730  sYmm = false;
731  }
732 
733  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
734 };
735 
737  OpSpatialPhysical_du_domega(std::string row_field, std::string col_field,
738  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
739  const bool assemble_off = false)
740  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
741  assemble_off) {
742  sYmm = false;
743  }
744  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
745 };
746 
748  OpSpatialRotation_domega_dP(std::string row_field, std::string col_field,
749  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
750  const bool assemble_off)
751  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
752  assemble_off) {
753  sYmm = false;
754  }
755  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
756 };
757 
760  std::string row_field, std::string col_field,
761  boost::shared_ptr<DataAtIntegrationPts> data_ptr, const bool assemble_off)
762  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
763  assemble_off) {
764  sYmm = false;
765  }
766  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
767 };
768 
771  std::string row_field, std::string col_field,
772  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
773  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
774  sYmm = false;
775  }
776  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
777 };
778 
780  OpSpatialConsistency_dP_dP(std::string row_field, std::string col_field,
781  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
782  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
783  sYmm = false;
784  }
785  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
786 
787 private:
788  template <int S>
789  MoFEMErrorCode integrateImpl(EntData &row_data, EntData &col_data);
790 };
791 
794  std::string row_field, std::string col_field,
795  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
796  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
797  sYmm = false;
798  }
799  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
800 
801 private:
802  template <int S>
803  MoFEMErrorCode integrateImpl(EntData &row_data, EntData &col_data);
804 };
805 
808  std::string row_field, std::string col_field,
809  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
810  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, true) {
811  sYmm = false;
812  }
813  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
814 
815 private:
816  template <int S>
817  MoFEMErrorCode integrateImpl(EntData &row_data, EntData &col_data);
818 };
819 
822  std::string row_field, std::string col_field,
823  boost::shared_ptr<DataAtIntegrationPts> data_ptr, const bool assemble_off)
824  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
825  assemble_off) {
826  sYmm = false;
827  }
828  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
829 
830 private:
831 };
832 
835  std::string row_field, std::string col_field,
836  boost::shared_ptr<DataAtIntegrationPts> data_ptr, const bool assemble_off)
837  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL,
838  assemble_off) {
839  sYmm = false;
840  }
841  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
842 
843 private:
844 };
845 
848 
850 
852  std::vector<EntityHandle> &mapGaussPts;
853  boost::shared_ptr<DataAtIntegrationPts> dataAtPts;
854 
856  std::vector<EntityHandle> &map_gauss_pts,
857  boost::shared_ptr<DataAtIntegrationPts> data_ptr,
858  int sense)
859  : OP(NOSPACE, UserDataOperator::OPSPACE), postProcMesh(post_proc_mesh),
860  mapGaussPts(map_gauss_pts), dataAtPts(data_ptr), tagSense(sense) {}
861 
862  MoFEMErrorCode doWork(int side, EntityType type, EntData &data);
863 
864 private:
865  int tagSense;
866 };
867 
869  OpSpatialPrj(std::string row_field,
870  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
871  : OpAssembleVolume(row_field, data_ptr, OPROW) {}
872  MoFEMErrorCode integrate(EntData &row_data);
873 };
874 
876  OpSpatialPrj_dx_dx(std::string row_field, std::string col_field,
877  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
878  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
879  // FIXME: That is symmetric
880  sYmm = false;
881  }
882  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
883 };
884 
886  OpSpatialPrj_dx_dw(std::string row_field, std::string col_field,
887  boost::shared_ptr<DataAtIntegrationPts> data_ptr)
888  : OpAssembleVolume(row_field, col_field, data_ptr, OPROWCOL, false) {
889  sYmm = false;
890  }
891  MoFEMErrorCode integrate(EntData &row_data, EntData &col_data);
892 };
893 
895 
896  static inline enum RotSelector rotSelector = LARGE_ROT;
897  static inline enum RotSelector gradApproximator = LARGE_ROT;
898  static inline enum StretchSelector stretchSelector = LOG;
899  static inline PetscBool noStretch = PETSC_FALSE; //< no stretch field
900  static inline PetscBool setSingularity = PETSC_TRUE; //< set singularity
901 
902  static double exponentBase;
903  static boost::function<double(const double)> f;
904  static boost::function<double(const double)> d_f;
905  static boost::function<double(const double)> dd_f;
906  static boost::function<double(const double)> inv_f;
907  static boost::function<double(const double)> inv_d_f;
908  static boost::function<double(const double)> inv_dd_f;
909 
910  static double f_log_e(const double v) { return std::exp(v); }
911  static double d_f_log_e(const double v) { return std::exp(v); }
912  static double dd_f_log_e(const double v) { return std::exp(v); }
913 
914  static double f_log(const double v) {
915  return pow(EshelbianCore::exponentBase, v);
916  }
917  static double d_f_log(const double v) {
918  return pow(exponentBase, v) * log(EshelbianCore::exponentBase);
919  }
920  static double dd_f_log(const double v) {
921  return pow(EshelbianCore::exponentBase, v) *
923  }
924 
925  static double inv_f_log(const double v) {
926  return log(v) / log(EshelbianCore::exponentBase);
927  }
928  static double inv_d_f_log(const double v) {
929  return (1. / v) / log(EshelbianCore::exponentBase);
930  }
931  static double inv_dd_f_log(const double v) {
932  return -(1. / (v * v)) / log(EshelbianCore::exponentBase);
933  }
934 
935  static double f_linear(const double v) { return v + 1; }
936  static double d_f_linear(const double v) { return 1; }
937  static double dd_f_linear(const double v) { return 0; }
938 
939  static double inv_f_linear(const double v) { return v - 1; }
940  static double inv_d_f_linear(const double v) { return 0; }
941  static double inv_dd_f_linear(const double v) { return 0; }
942 
943  /**
944  * \brief Getting interface of core database
945  * @param uuid unique ID of interface
946  * @param iface returned pointer to interface
947  * @return error code
948  */
949  MoFEMErrorCode query_interface(boost::typeindex::type_index type_index,
950  UnknownInterface **iface) const;
951 
953 
954  boost::shared_ptr<DataAtIntegrationPts> dataAtPts;
955  boost::shared_ptr<PhysicalEquations> physicalEquations;
956 
957  boost::shared_ptr<VolumeElementForcesAndSourcesCore> elasticFeRhs;
958  boost::shared_ptr<VolumeElementForcesAndSourcesCore> elasticFeLhs;
959  boost::shared_ptr<FaceElementForcesAndSourcesCore> elasticBcLhs;
960  boost::shared_ptr<FaceElementForcesAndSourcesCore> elasticBcRhs;
961  boost::shared_ptr<ContactTree> contactTreeRhs; ///< Make a contact tree
962 
963  SmartPetscObj<DM> dM; ///< Coupled problem all fields
964  SmartPetscObj<DM> dmElastic; ///< Elastic problem
965  SmartPetscObj<DM> dmMaterial; ///< Material problem
966  SmartPetscObj<DM> dmPrjSpatial; ///< Projection spatial displacement
967 
968  const std::string piolaStress = "P";
969  const std::string eshelbyStress = "S";
970  const std::string spatialL2Disp = "wL2";
971  const std::string materialL2Disp = "WL2";
972  const std::string spatialH1Disp = "wH1";
973  const std::string materialH1Positions = "XH1";
974  const std::string hybridSpatialDisp = "hybridSpatialDisp";
975  const std::string hybridMaterialDisp = "hybridMaterialDisp";
976  const std::string contactDisp = "contactDisp";
977  const std::string stretchTensor = "u";
978  const std::string rotAxis = "omega";
979  const std::string bubbleField = "bubble";
980 
981  const std::string elementVolumeName = "EP";
982  const std::string naturalBcElement = "NATURAL_BC";
983  const std::string skinElement = "SKIN";
984  const std::string skeletonElement = "SKELETON";
985  const std::string contactElement = "CONTACT";
986  const std::string crackElement = "CRACK";
987  const std::string materialVolumeElement = "MEP";
988  const std::string materialSkeletonElement = "MATERIAL_SKELETON";
989 
991  virtual ~EshelbianCore();
992 
993  int spaceOrder = 2;
994  int spaceH1Order = -1;
995  int materialOrder = 1;
996  double alphaU = 0;
997  double alphaW = 0;
998  double alphaRho = 0;
999 
1000  int contactRefinementLevels = 1; //< refinement levels for contact integration
1001  int frontLayers = 3; //< front layers with material element
1002 
1004 
1005  boost::shared_ptr<BcDispVec> bcSpatialDispVecPtr;
1006  boost::shared_ptr<BcRotVec> bcSpatialRotationVecPtr;
1007  boost::shared_ptr<TractionBcVec> bcSpatialTraction;
1008  boost::shared_ptr<TractionFreeBc> bcSpatialFreeTraction;
1009 
1010  template <typename BC>
1011  MoFEMErrorCode getBc(boost::shared_ptr<BC> &bc_vec_ptr,
1012  const std::string block_name, const int nb_attributes) {
1014  for (auto it :
1015  mField.getInterface<MeshsetsManager>()->getCubitMeshsetPtr(std::regex(
1016 
1017  (boost::format("%s(.*)") % block_name).str()
1018 
1019  ))
1020 
1021  ) {
1022  std::vector<double> block_attributes;
1023  CHKERR it->getAttributes(block_attributes);
1024  if (block_attributes.size() < nb_attributes) {
1025  SETERRQ3(PETSC_COMM_SELF, MOFEM_DATA_INCONSISTENCY,
1026  "In block %s expected %d attributes, but given %d",
1027  it->getName().c_str(), nb_attributes, block_attributes.size());
1028  }
1029  Range faces;
1030  CHKERR it->getMeshsetIdEntitiesByDimension(mField.get_moab(), 2, faces,
1031  true);
1032  bc_vec_ptr->emplace_back(it->getName(), block_attributes, faces);
1033  }
1035  }
1036 
1038 
1040  bcSpatialRotationVecPtr = boost::make_shared<BcRotVec>();
1041  return getBc(bcSpatialRotationVecPtr, "SPATIAL_ROTATION_BC", 4);
1042  }
1043 
1045 
1046  /**
1047  * @brief Remove all, but entities where kinematic constrains are applied.
1048  *
1049  * @param meshset
1050  * @param bc_ptr
1051  * @param disp_block_set_name
1052  * @param rot_block_set_name
1053  * @param contact_set_name
1054  * @return MoFEMErrorCode
1055  */
1057  boost::shared_ptr<TractionFreeBc> &bc_ptr,
1058  const std::string contact_set_name);
1059 
1060  inline MoFEMErrorCode
1063  boost::shared_ptr<TractionFreeBc>(new TractionFreeBc());
1064  return getTractionFreeBc(meshset, bcSpatialFreeTraction, "CONTACT");
1065  }
1066 
1067  MoFEMErrorCode addFields(const EntityHandle meshset = 0);
1068  MoFEMErrorCode projectGeometry(const EntityHandle meshset = 0);
1069 
1070 
1073  MoFEMErrorCode addDMs(const BitRefLevel bit = BitRefLevel().set(0),
1074  const EntityHandle meshset = 0);
1075 
1077  const double lambda,
1078  const double mu,
1079  const double sigma_y);
1080 
1081  MoFEMErrorCode addMaterial_HMHMooneyRivlin(const int tape, const double alpha,
1082  const double beta,
1083  const double lambda,
1084  const double sigma_y);
1085 
1086  MoFEMErrorCode addMaterial_HMHNeohookean(const int tape, const double c10,
1087  const double K);
1088 
1089  MoFEMErrorCode addMaterial_Hencky(double E, double nu);
1090 
1092  const int tag, const bool do_rhs, const bool do_lhs,
1093  boost::shared_ptr<VolumeElementForcesAndSourcesCore> &fe);
1094 
1096  const int tag, const bool add_elastic, const bool add_material,
1097  boost::shared_ptr<VolumeElementForcesAndSourcesCore> &fe_rhs,
1098  boost::shared_ptr<VolumeElementForcesAndSourcesCore> &fe_lhs);
1099 
1101  setFaceElementOps(const bool add_elastic, const bool add_material,
1102  boost::shared_ptr<FaceElementForcesAndSourcesCore> &fe_rhs,
1103  boost::shared_ptr<FaceElementForcesAndSourcesCore> &fe_lhs);
1104 
1106 
1107  boost::shared_ptr<ContactTree> &fe_contact_tree
1108 
1109  );
1110 
1111  MoFEMErrorCode setElasticElementOps(const int tag);
1113 
1114  MoFEMErrorCode solveElastic(TS ts, Vec x);
1115 
1116  MoFEMErrorCode postProcessResults(const int tag, const std::string file);
1118 
1119  struct SetUpSchur {
1120  static boost::shared_ptr<SetUpSchur> createSetUpSchur(
1121 
1122  MoFEM::Interface &m_field, EshelbianCore *ep_core_ptr
1123 
1124  );
1125  virtual MoFEMErrorCode setUp(TS) = 0;
1126 
1127  protected:
1128  SetUpSchur() = default;
1129  };
1130 
1131  boost::shared_ptr<Range> contactFaces;
1132  boost::shared_ptr<Range> crackFaces;
1133  boost::shared_ptr<Range> frontEdges;
1134  boost::shared_ptr<Range> frontAdjEdges;
1135  boost::shared_ptr<Range> frontVertices;
1136  boost::shared_ptr<Range> skeletonFaces;
1137  boost::shared_ptr<Range> materialSkeletonFaces;
1138 
1139  boost::shared_ptr<ParentFiniteElementAdjacencyFunctionSkeleton<2>>
1141 
1142  BitRefLevel bitAdjParent = BitRefLevel().set(); ///< bit ref level for parent
1144  BitRefLevel().set(); ///< bit ref level for parent parent
1145  BitRefLevel bitAdjEnt = BitRefLevel().set(); ///< bit ref level for parent
1147  BitRefLevel().set(); ///< bit ref level for parent parent
1148 };
1149 
1150 template <int FE_DIM, int PROBLEM_DIM, int SPACE_DIM> struct AddHOOps;
1151 
1152 template <> struct AddHOOps<2, 3, 3> {
1153  AddHOOps() = delete;
1154  static MoFEMErrorCode
1155  add(boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pipeline,
1156  std::vector<FieldSpace> space, std::string geom_field_name,
1157  boost::shared_ptr<Range> crack_front_edges_ptr);
1158 };
1159 
1160 template <> struct AddHOOps<3, 3, 3> {
1161  AddHOOps() = delete;
1162  static MoFEMErrorCode
1163  add(boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pipeline,
1164  std::vector<FieldSpace> space, std::string geom_field_name,
1165  boost::shared_ptr<Range> crack_front_edges_ptr);
1166 };
1167 
1168 } // namespace EshelbianPlasticity
1169 
1170 #endif //__ESHELBIAN_PLASTICITY_HPP__
EshelbianPlasticity::DataAtIntegrationPts::jacobianAtPts
VectorDouble jacobianAtPts
Definition: EshelbianPlasticity.hpp:67
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:460
MoFEM::UnknownInterface::getInterface
MoFEMErrorCode getInterface(IFACE *&iface) const
Get interface reference to pointer of interface.
Definition: UnknownInterface.hpp:93
EshelbianPlasticity::TractionBc
Definition: EshelbianPlasticity.hpp:371
EshelbianPlasticity::EshelbianCore::f_log_e
static double f_log_e(const double v)
Definition: EshelbianPlasticity.hpp:910
MoFEM::K
VectorDouble K
Definition: Projection10NodeCoordsOnField.cpp:125
EshelbianPlasticity::EshelbianCore::f_linear
static double f_linear(const double v)
Definition: EshelbianPlasticity.hpp:935
EshelbianPlasticity::BcDispVec
std::vector< BcDisp > BcDispVec
Definition: EshelbianPlasticity.hpp:358
EshelbianPlasticity::PhysicalEquations::DTensor2
FTensor::Tensor2< double, 3, 3 > DTensor2
Definition: EshelbianPlasticity.hpp:225
EshelbianPlasticity::OpSpatialPhysical_du_dP
Definition: EshelbianPlasticity.hpp:712
MoFEM::EntitiesFieldData::EntData
Data on single entity (This is passed as argument to DataOperator::doWork)
Definition: EntitiesFieldData.hpp:128
EshelbianPlasticity::BcRot::BcRot
BcRot(std::string name, std::vector< double > &attr, Range &faces)
Definition: EshelbianPlasticity.cpp:1254
EshelbianPlasticity::OpSpatialEquilibrium::alphaW
const double alphaW
Definition: EshelbianPlasticity.hpp:570
EshelbianPlasticity::DataAtIntegrationPts::logStretch2H1AtPts
MatrixDouble logStretch2H1AtPts
Definition: EshelbianPlasticity.hpp:83
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient
Definition: EshelbianPlasticity.hpp:557
EshelbianPlasticity::DataAtIntegrationPts::getDivSigmaAtPts
MatrixPtr getDivSigmaAtPts()
Definition: EshelbianPlasticity.hpp:130
EshelbianPlasticity::OpAssembleBasic::scaleOff
ScaleOff scaleOff
Definition: EshelbianPlasticity.hpp:430
EshelbianPlasticity::DataAtIntegrationPts::getSmallWH1AtPts
MatrixPtr getSmallWH1AtPts()
Definition: EshelbianPlasticity.hpp:194
EshelbianPlasticity::TractionBcVec
std::vector< TractionBc > TractionBcVec
Definition: EshelbianPlasticity.hpp:378
EshelbianPlasticity::DataAtIntegrationPts::XH1AtPts
MatrixDouble XH1AtPts
Definition: EshelbianPlasticity.hpp:80
EshelbianPlasticity::PhysicalEquations::PhysicalEquations
PhysicalEquations(const int size_active, const int size_dependent)
Definition: EshelbianPlasticity.hpp:234
EshelbianPlasticity::LINEAR
@ LINEAR
Definition: EshelbianPlasticity.hpp:44
EshelbianPlasticity::CGGUserPolynomialBase
Definition: EshelbianPlasticity.hpp:21
EshelbianPlasticity::DataAtIntegrationPts::approxSigmaAtPts
MatrixDouble approxSigmaAtPts
Definition: EshelbianPlasticity.hpp:59
EshelbianPlasticity::EshelbianCore::alphaW
double alphaW
Definition: EshelbianPlasticity.hpp:997
EshelbianPlasticity::EshelbianCore::bcSpatialRotationVecPtr
boost::shared_ptr< BcRotVec > bcSpatialRotationVecPtr
Definition: EshelbianPlasticity.hpp:1006
EshelbianPlasticity::EshelbianCore::dd_f
static boost::function< double(const double)> dd_f
Definition: EshelbianPlasticity.hpp:905
EshelbianPlasticity::PhysicalEquations::activeVariables
std::vector< double > activeVariables
Definition: EshelbianPlasticity.hpp:264
EshelbianPlasticity::BcRot
Definition: EshelbianPlasticity.hpp:360
EshelbianPlasticity::DataAtIntegrationPts::getLargeXH1AtPts
MatrixPtr getLargeXH1AtPts()
Definition: EshelbianPlasticity.hpp:198
MoFEM::Types::VectorDouble3
VectorBoundedArray< double, 3 > VectorDouble3
Definition: Types.hpp:92
EshelbianPlasticity::EshelbianCore::hybridMaterialDisp
const std::string hybridMaterialDisp
Definition: EshelbianPlasticity.hpp:975
EshelbianPlasticity::DataAtIntegrationPts::getJacobianAtPts
VectorPtr getJacobianAtPts()
Definition: EshelbianPlasticity.hpp:210
EshelbianPlasticity::PhysicalEquations::returnOpSpatialPhysical_du_du
virtual VolUserDataOperator * returnOpSpatialPhysical_du_du(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha)
Definition: EshelbianADOL-C.cpp:259
EshelbianPlasticity::EshelbianCore::inv_f_log
static double inv_f_log(const double v)
Definition: EshelbianPlasticity.hpp:925
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:1282
EshelbianPlasticity::DataAtIntegrationPts::getSmallWL2DotDotAtPts
MatrixPtr getSmallWL2DotDotAtPts()
Definition: EshelbianPlasticity.hpp:142
EntityHandle
EshelbianPlasticity::EshelbianCore::piolaStress
const std::string piolaStress
Definition: EshelbianPlasticity.hpp:968
EshelbianPlasticity::DataAtIntegrationPts::hAtPts
MatrixDouble hAtPts
Definition: EshelbianPlasticity.hpp:86
EshelbianPlasticity::OpJacobian::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianPlasticity.cpp:359
EshelbianPlasticity::DataAtIntegrationPts::getBigG0AtPts
MatrixPtr getBigG0AtPts()
Definition: EshelbianPlasticity.hpp:174
EshelbianPlasticity::DataAtIntegrationPts::wH1AtPts
MatrixDouble wH1AtPts
Definition: EshelbianPlasticity.hpp:79
EshelbianPlasticity::DataAtIntegrationPts
Definition: EshelbianPlasticity.hpp:55
EshelbianPlasticity::EshelbianCore::spatialH1Disp
const std::string spatialH1Disp
Definition: EshelbianPlasticity.hpp:972
EshelbianPlasticity::PhysicalEquations::DTensor0Ptr
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > DTensor0Ptr
Definition: EshelbianPlasticity.hpp:228
EshelbianPlasticity::EshelbianCore::addDMs
MoFEMErrorCode addDMs(const BitRefLevel bit=BitRefLevel().set(0), const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:1101
EshelbianPlasticity::OpAssembleFace::OpAssembleFace
OpAssembleFace(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type, const bool assemble_symmetry)
Definition: EshelbianPlasticity.hpp:536
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient::OpCalculateRotationAndSpatialGradient
OpCalculateRotationAndSpatialGradient(boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:559
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::OpDispBc::iNtegrate
MoFEMErrorCode iNtegrate(EntData &data)
Definition: EshelbianOperators.cpp:789
EshelbianPlasticity::EshelbianCore::SetUpSchur
Definition: EshelbianPlasticity.hpp:1119
EshelbianPlasticity::OpSpatialPrj::OpSpatialPrj
OpSpatialPrj(std::string row_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:869
EshelbianPlasticity::EshelbianCore::setBaseVolumeElementOps
MoFEMErrorCode setBaseVolumeElementOps(const int tag, const bool do_rhs, const bool do_lhs, boost::shared_ptr< VolumeElementForcesAndSourcesCore > &fe)
Definition: EshelbianPlasticity.cpp:1488
EshelbianPlasticity::OpSpatialConsistency_dBubble_dP
Definition: EshelbianPlasticity.hpp:806
EshelbianPlasticity::DataAtIntegrationPts::rotAxisDotAtPts
MatrixDouble rotAxisDotAtPts
Definition: EshelbianPlasticity.hpp:74
rho
double rho
Definition: plastic.cpp:140
EshelbianPlasticity::EshelbianCore::projectGeometry
MoFEMErrorCode projectGeometry(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:707
EshelbianPlasticity::EshelbianCore::exponentBase
static double exponentBase
Definition: EshelbianPlasticity.hpp:902
EshelbianPlasticity::EshelbianCore::inv_dd_f_linear
static double inv_dd_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:941
EshelbianPlasticity::OpSpatialConsistency_dP_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1582
EshelbianPlasticity::OpSpatialConsistency_dP_dP::integrateImpl
MoFEMErrorCode integrateImpl(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1396
EshelbianPlasticity::PhysicalEquations::DTensor2Ptr
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 3 > DTensor2Ptr
Definition: EshelbianPlasticity.hpp:230
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:467
EshelbianPlasticity::EshelbianCore::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
Definition: EshelbianPlasticity.hpp:954
EshelbianPlasticity::PhysicalEquations::get_P_dh2
DTensor3Ptr get_P_dh2()
Definition: EshelbianPlasticity.hpp:343
EshelbianPlasticity::EshelbianCore::spaceH1Order
int spaceH1Order
Definition: EshelbianPlasticity.hpp:994
EshelbianPlasticity::DataAtIntegrationPts::matInvD
MatrixDouble matInvD
Definition: EshelbianPlasticity.hpp:113
EshelbianPlasticity::OpAssembleBasic::assemble
virtual MoFEMErrorCode assemble(int row_side, EntityType row_type, EntData &data)
Definition: EshelbianPlasticity.hpp:454
EshelbianPlasticity::OpBrokenTractionBc::iNtegrate
MoFEMErrorCode iNtegrate(EntData &data)
Definition: EshelbianOperators.cpp:861
EshelbianPlasticity::EshelbianCore::materialSkeletonFaces
boost::shared_ptr< Range > materialSkeletonFaces
Definition: EshelbianPlasticity.hpp:1137
EshelbianPlasticity::TractionBc::blockName
std::string blockName
Definition: EshelbianPlasticity.hpp:373
EshelbianPlasticity::EshelbianCore::bitAdjParentMask
BitRefLevel bitAdjParentMask
bit ref level for parent parent
Definition: EshelbianPlasticity.hpp:1143
EshelbianPlasticity::EshelbianCore::alphaRho
double alphaRho
Definition: EshelbianPlasticity.hpp:998
EshelbianPlasticity::DataAtIntegrationPts::getRotAxisDotAtPts
MatrixPtr getRotAxisDotAtPts()
Definition: EshelbianPlasticity.hpp:165
EshelbianPlasticity::DataAtIntegrationPts::stretchTensorAtPts
MatrixDouble stretchTensorAtPts
Definition: EshelbianPlasticity.hpp:66
EshelbianPlasticity::DataAtIntegrationPts::leviKirchhoffOmegaAtPts
MatrixDouble leviKirchhoffOmegaAtPts
Definition: EshelbianPlasticity.hpp:91
EshelbianPlasticity::OpAssembleVolume::OpAssembleVolume
OpAssembleVolume(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type, const bool assemble_symmetry)
Definition: EshelbianPlasticity.hpp:523
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:566
EshelbianPlasticity::EshelbianCore::addMaterial_Hencky
MoFEMErrorCode addMaterial_Hencky(double E, double nu)
Definition: EshelbianADOL-C.cpp:491
EshelbianPlasticity::BcRot::blockName
std::string blockName
Definition: EshelbianPlasticity.hpp:362
EshelbianPlasticity::EshelbianCore::addBoundaryFiniteElement
MoFEMErrorCode addBoundaryFiniteElement(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:912
EshelbianPlasticity::PhysicalEquations::returnOpSpatialPhysical
virtual VolUserDataOperator * returnOpSpatialPhysical(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha_u)
Definition: EshelbianADOL-C.cpp:99
EshelbianPlasticity::OpPostProcDataStructure::mapGaussPts
std::vector< EntityHandle > & mapGaussPts
Definition: EshelbianPlasticity.hpp:852
EshelbianPlasticity::DataAtIntegrationPts::diff2RotMatAtPts
MatrixDouble diff2RotMatAtPts
Definition: EshelbianPlasticity.hpp:98
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:1225
E
EshelbianPlasticity::EshelbianCore::dd_f_linear
static double dd_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:937
MoFEM::Types::MatrixDouble
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
EshelbianPlasticity::DataAtIntegrationPts::matDeviatorD
MatrixDouble matDeviatorD
Definition: EshelbianPlasticity.hpp:112
EshelbianPlasticity::OpRotationBc
Definition: EshelbianPlasticity.hpp:666
EshelbianPlasticity::AddHOOps
Definition: EshelbianPlasticity.hpp:1150
EshelbianPlasticity::EshelbianCore::stretchTensor
const std::string stretchTensor
Definition: EshelbianPlasticity.hpp:977
EshelbianPlasticity::OpSpatialConsistencyP
Definition: EshelbianPlasticity.hpp:587
EshelbianPlasticity::PhysicalEquations::~PhysicalEquations
virtual ~PhysicalEquations()=default
EshelbianPlasticity::EshelbianCore::materialVolumeElement
const std::string materialVolumeElement
Definition: EshelbianPlasticity.hpp:987
EshelbianPlasticity::EshelbianCore::setElasticElementToTs
MoFEMErrorCode setElasticElementToTs(DM dm)
Definition: EshelbianPlasticity.cpp:2192
EshelbianPlasticity::BcRotVec
std::vector< BcRot > BcRotVec
Definition: EshelbianPlasticity.hpp:367
EshelbianPlasticity::EshelbianCore::setElasticElementOps
MoFEMErrorCode setElasticElementOps(const int tag)
Definition: EshelbianPlasticity.cpp:2169
EshelbianPlasticity::DataAtIntegrationPts::SigmaAtPts
MatrixDouble SigmaAtPts
Definition: EshelbianPlasticity.hpp:100
EshelbianPlasticity::OpJacobian::physicsPtr
boost::shared_ptr< PhysicalEquations > physicsPtr
material physical equations
Definition: EshelbianPlasticity.hpp:403
EshelbianPlasticity::OpSpatialConsistencyDivTerm::OpSpatialConsistencyDivTerm
OpSpatialConsistencyDivTerm(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:606
EshelbianPlasticity
Definition: CGGTonsorialBubbleBase.hpp:11
MoFEM::PETSC
@ PETSC
Definition: FormsIntegrators.hpp:105
EshelbianPlasticity::OpSpatialConsistency_dBubble_dBubble::integrateImpl
MoFEMErrorCode integrateImpl(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1469
EshelbianPlasticity::OpRotationBcImpl< A, GAUSS >::OpRotationBcImpl
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)
Definition: EshelbianPlasticity.hpp:652
EshelbianPlasticity::DataAtIntegrationPts::W0AtPts
MatrixDouble W0AtPts
Definition: EshelbianPlasticity.hpp:76
EshelbianPlasticity::DataAtIntegrationPts::logStretchTotalTensorAtPts
MatrixDouble logStretchTotalTensorAtPts
Definition: EshelbianPlasticity.hpp:84
EshelbianPlasticity::EshelbianCore::d_f_linear
static double d_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:936
EshelbianPlasticity::OpSpatialConsistencyDivTerm
Definition: EshelbianPlasticity.hpp:605
EshelbianPlasticity::EshelbianCore::dd_f_log
static double dd_f_log(const double v)
Definition: EshelbianPlasticity.hpp:920
EshelbianPlasticity::OpSpatialConsistency_dBubble_dP::integrateImpl
MoFEMErrorCode integrateImpl(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1526
EshelbianPlasticity::OpSpatialConsistency_dBubble_dBubble::OpSpatialConsistency_dBubble_dBubble
OpSpatialConsistency_dBubble_dBubble(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:793
EshelbianPlasticity::EshelbianCore::getSpatialTractionFreeBc
MoFEMErrorCode getSpatialTractionFreeBc(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.hpp:1061
EshelbianPlasticity::DataAtIntegrationPts::flowL2AtPts
MatrixDouble flowL2AtPts
Definition: EshelbianPlasticity.hpp:102
EshelbianPlasticity::PhysicalEquations
Definition: EshelbianPlasticity.hpp:219
EshelbianPlasticity::DataAtIntegrationPts::getStretchTensorAtPts
MatrixPtr getStretchTensorAtPts()
Definition: EshelbianPlasticity.hpp:151
EshelbianPlasticity::OpSpatialPhysical_du_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1157
EshelbianPlasticity::EshelbianCore::inv_f_linear
static double inv_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:939
EshelbianPlasticity::OpAssembleBasic::nF
VectorDouble nF
local right hand side vector
Definition: EshelbianPlasticity.hpp:426
EshelbianPlasticity::EshelbianCore::d_f
static boost::function< double(const double)> d_f
Definition: EshelbianPlasticity.hpp:904
EshelbianPlasticity::EshelbianCore::dmPrjSpatial
SmartPetscObj< DM > dmPrjSpatial
Projection spatial displacement.
Definition: EshelbianPlasticity.hpp:966
EshelbianPlasticity::OpJacobian::evaluateLhs
virtual MoFEMErrorCode evaluateLhs(EntData &data)=0
EshelbianPlasticity::NO_H1_CONFIGURATION
@ NO_H1_CONFIGURATION
Definition: EshelbianPlasticity.hpp:43
EshelbianPlasticity::OpAssembleBasic< VolUserDataOperator >::ScaleOff
boost::function< double()> ScaleOff
Definition: EshelbianPlasticity.hpp:408
EshelbianPlasticity::OpSpatialConsistencyP::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:618
EshelbianPlasticity::OpSpatialConsistency_dBubble_dP::OpSpatialConsistency_dBubble_dP
OpSpatialConsistency_dBubble_dP(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:807
EshelbianPlasticity::EshelbianCore::elasticFeRhs
boost::shared_ptr< VolumeElementForcesAndSourcesCore > elasticFeRhs
Definition: EshelbianPlasticity.hpp:957
EshelbianPlasticity::PhysicalEquations::DTensor3
FTensor::Tensor3< double, 3, 3, 3 > DTensor3
Definition: EshelbianPlasticity.hpp:226
EshelbianPlasticity::EshelbianCore::elasticBcRhs
boost::shared_ptr< FaceElementForcesAndSourcesCore > elasticBcRhs
Definition: EshelbianPlasticity.hpp:960
EshelbianPlasticity::OpSpatialRotation_domega_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1330
EshelbianPlasticity::DataAtIntegrationPts::getRotAxisAtPts
MatrixPtr getRotAxisAtPts()
Definition: EshelbianPlasticity.hpp:161
EshelbianPlasticity::OpSpatialConsistencyDivTerm::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:706
EshelbianPlasticity::EshelbianCore::elasticFeLhs
boost::shared_ptr< VolumeElementForcesAndSourcesCore > elasticFeLhs
Definition: EshelbianPlasticity.hpp:958
EshelbianPlasticity::EshelbianCore::frontEdges
boost::shared_ptr< Range > frontEdges
Definition: EshelbianPlasticity.hpp:1133
EshelbianPlasticity::DataAtIntegrationPts::getApproxSigmaAtPts
MatrixPtr getApproxSigmaAtPts()
Definition: EshelbianPlasticity.hpp:118
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::OpSpatialEquilibrium_dw_dw
OpSpatialEquilibrium_dw_dw(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha, const double rho)
Definition: EshelbianPlasticity.hpp:702
EshelbianPlasticity::EshelbianCore::hybridSpatialDisp
const std::string hybridSpatialDisp
Definition: EshelbianPlasticity.hpp:974
EshelbianPlasticity::DataAtIntegrationPts::wL2AtPts
MatrixDouble wL2AtPts
Definition: EshelbianPlasticity.hpp:62
MoFEM::VecSetValues
MoFEMErrorCode VecSetValues(Vec V, const EntitiesFieldData::EntData &data, const double *ptr, InsertMode iora)
Assemble PETSc vector.
Definition: EntitiesFieldData.hpp:1589
EshelbianPlasticity::DataAtIntegrationPts::WAtPts
MatrixDouble WAtPts
Definition: EshelbianPlasticity.hpp:75
FTensor::Tensor2< adouble, 3, 3 >
EshelbianPlasticity::CGGUserPolynomialBase::shapeFun
MatrixDouble shapeFun
Definition: EshelbianPlasticity.hpp:35
EshelbianPlasticity::DataAtIntegrationPts::rotAxisAtPts
MatrixDouble rotAxisAtPts
Definition: EshelbianPlasticity.hpp:73
MoFEM::Types::VectorInt3
VectorBoundedArray< int, 3 > VectorInt3
Definition: Types.hpp:87
MoFEM::DeprecatedCoreInterface
Deprecated interface functions.
Definition: DeprecatedCoreInterface.hpp:16
EshelbianPlasticity::MatrixPtr
boost::shared_ptr< MatrixDouble > MatrixPtr
Definition: EshelbianPlasticity.hpp:46
EshelbianPlasticity::OpAssembleBasic::OpAssembleBasic
OpAssembleBasic(std::string row_field, 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:419
EshelbianPlasticity::DataAtIntegrationPts::contactL2AtPts
MatrixDouble contactL2AtPts
Definition: EshelbianPlasticity.hpp:81
EshelbianPlasticity::EshelbianCore::f_log
static double f_log(const double v)
Definition: EshelbianPlasticity.hpp:914
MoFEM::Interface
DeprecatedCoreInterface Interface
Definition: Interface.hpp:2010
EshelbianPlasticity::OpAssembleBasic::assemble
virtual MoFEMErrorCode assemble(EntData &data)
Definition: EshelbianPlasticity.hpp:445
EshelbianPlasticity::EshelbianCore::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, UnknownInterface **iface) const
Getting interface of core database.
Definition: EshelbianPlasticity.cpp:353
EshelbianPlasticity::EshelbianCore::frontAdjEdges
boost::shared_ptr< Range > frontAdjEdges
Definition: EshelbianPlasticity.hpp:1134
EshelbianPlasticity::OpCalculateRotationAndSpatialGradient::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianOperators.cpp:231
EshelbianPlasticity::DataAtIntegrationPts::adjointPdstretchAtPts
MatrixDouble adjointPdstretchAtPts
Definition: EshelbianPlasticity.hpp:92
EshelbianPlasticity::BcDisp::flags
VectorInt3 flags
Definition: EshelbianPlasticity.hpp:356
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:501
EshelbianPlasticity::OpSpatialConsistency_dBubble_dBubble
Definition: EshelbianPlasticity.hpp:792
EshelbianPlasticity::EshelbianCore::d_f_log_e
static double d_f_log_e(const double v)
Definition: EshelbianPlasticity.hpp:911
EshelbianPlasticity::OpSpatialConsistencyP::OpSpatialConsistencyP
OpSpatialConsistencyP(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:588
EshelbianPlasticity::BcDisp::faces
Range faces
Definition: EshelbianPlasticity.hpp:354
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::alphaRho
const double alphaRho
Definition: EshelbianPlasticity.hpp:701
EshelbianPlasticity::OpDispBcImpl< A, GAUSS >::bcDispPtr
boost::shared_ptr< BcDispVec > bcDispPtr
Definition: EshelbianPlasticity.hpp:631
EshelbianPlasticity::OpSpatialRotation::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:584
EshelbianPlasticity::DataAtIntegrationPts::eigenVecs
MatrixDouble eigenVecs
Definition: EshelbianPlasticity.hpp:107
EshelbianPlasticity::DataAtIntegrationPts::logStretchDotTensorAtPts
MatrixDouble logStretchDotTensorAtPts
Definition: EshelbianPlasticity.hpp:72
EshelbianPlasticity::EntData
EntitiesFieldData::EntData EntData
Definition: EshelbianPlasticity.hpp:49
EshelbianPlasticity::EshelbianCore::postProcessResults
MoFEMErrorCode postProcessResults(const int tag, const std::string file)
Definition: EshelbianPlasticity.cpp:2344
EshelbianPlasticity::OpJacobian::tAg
int tAg
adol-c tape
Definition: EshelbianPlasticity.hpp:396
MoFEM::OpBaseImpl
Definition: FormsIntegrators.hpp:178
EshelbianPlasticity::OpAssembleFace::OpAssembleFace
OpAssembleFace(const std::string &field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type)
Definition: EshelbianPlasticity.hpp:531
EshelbianPlasticity::OpSpatialRotation
Definition: EshelbianPlasticity.hpp:580
EshelbianPlasticity::EshelbianCore::crackFaces
boost::shared_ptr< Range > crackFaces
Definition: EshelbianPlasticity.hpp:1132
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:548
FTensor::Tensor3
Definition: Tensor3_value.hpp:12
EshelbianPlasticity::TractionBc::faces
Range faces
Definition: EshelbianPlasticity.hpp:374
EshelbianPlasticity::OpSpatialConsistency_dBubble_domega
Definition: EshelbianPlasticity.hpp:833
EshelbianPlasticity::OpAssembleBasic::integrate
virtual MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianPlasticity.hpp:432
MoFEM::CoreInterface::get_moab
virtual moab::Interface & get_moab()=0
EshelbianPlasticity::DataAtIntegrationPts::getMatInvDPtr
MatrixPtr getMatInvDPtr()
Definition: EshelbianPlasticity.hpp:182
EshelbianPlasticity::DataAtIntegrationPts::getDivPAtPts
MatrixPtr getDivPAtPts()
Definition: EshelbianPlasticity.hpp:126
EshelbianPlasticity::OpCalculateEshelbyStress::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:554
EshelbianPlasticity::EshelbianCore::SetUpSchur::createSetUpSchur
static boost::shared_ptr< SetUpSchur > createSetUpSchur(MoFEM::Interface &m_field, EshelbianCore *ep_core_ptr)
Definition: SetUpSchurImpl.cpp:515
EshelbianPlasticity::EshelbianCore::skinElement
const std::string skinElement
Definition: EshelbianPlasticity.hpp:983
EshelbianPlasticity::DataAtIntegrationPts::approxPAtPts
MatrixDouble approxPAtPts
Definition: EshelbianPlasticity.hpp:58
EshelbianPlasticity::DataAtIntegrationPts::getMatDPtr
MatrixPtr getMatDPtr()
Definition: EshelbianPlasticity.hpp:178
EshelbianPlasticity::DataAtIntegrationPts::adjointPdUdOmegaAtPts
MatrixDouble adjointPdUdOmegaAtPts
Definition: EshelbianPlasticity.hpp:94
EshelbianPlasticity::EshelbianCore::d_f_log
static double d_f_log(const double v)
Definition: EshelbianPlasticity.hpp:917
EshelbianPlasticity::EshelbianCore::gradApproximator
static enum RotSelector gradApproximator
Definition: EshelbianPlasticity.hpp:897
EshelbianPlasticity::EshelbianCore::spaceOrder
int spaceOrder
Definition: EshelbianPlasticity.hpp:993
EshelbianPlasticity::DataAtIntegrationPts::divPAtPts
MatrixDouble divPAtPts
Definition: EshelbianPlasticity.hpp:60
MoFEM::ForcesAndSourcesCore::UserDataOperator
Definition: ForcesAndSourcesCore.hpp:549
EshelbianPlasticity::EshelbianCore::addVolumeFiniteElement
MoFEMErrorCode addVolumeFiniteElement(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:850
EshelbianPlasticity::DataAtIntegrationPts::physicsPtr
boost::shared_ptr< PhysicalEquations > physicsPtr
Definition: EshelbianPlasticity.hpp:214
EshelbianPlasticity::BcRot::vals
VectorDouble3 vals
Definition: EshelbianPlasticity.hpp:364
EshelbianPlasticity::OpSpatialPrj_dx_dx::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::OpSpatialConsistency_dP_domega
Definition: EshelbianPlasticity.hpp:820
EshelbianPlasticity::TractionFreeBc
std::vector< Range > TractionFreeBc
Definition: EshelbianPlasticity.hpp:369
EshelbianPlasticity::EshelbianCore::stretchSelector
static enum StretchSelector stretchSelector
Definition: EshelbianPlasticity.hpp:898
EshelbianPlasticity::EshelbianCore::dmElastic
SmartPetscObj< DM > dmElastic
Elastic problem.
Definition: EshelbianPlasticity.hpp:964
EshelbianPlasticity::BcRot::faces
Range faces
Definition: EshelbianPlasticity.hpp:363
EshelbianPlasticity::EshelbianCore::elasticBcLhs
boost::shared_ptr< FaceElementForcesAndSourcesCore > elasticBcLhs
Definition: EshelbianPlasticity.hpp:959
EshelbianPlasticity::EshelbianCore::contactTreeRhs
boost::shared_ptr< ContactTree > contactTreeRhs
Make a contact tree.
Definition: EshelbianPlasticity.hpp:961
double
bit
auto bit
set bit
Definition: hanging_node_approx.cpp:75
EshelbianPlasticity::OpAssembleFace
Definition: EshelbianPlasticity.hpp:530
convert.type
type
Definition: convert.py:64
EshelbianPlasticity::OpDispBcImpl< A, GAUSS >::OpDispBcImpl
OpDispBcImpl(boost::shared_ptr< std::vector< BrokenBaseSideData >> broken_base_side_data, boost::shared_ptr< BcDispVec > &bc_disp_ptr, std::vector< boost::shared_ptr< ScalingMethod >> smv, boost::shared_ptr< Range > ents_ptr=nullptr)
Definition: EshelbianPlasticity.hpp:621
EshelbianPlasticity::DataAtIntegrationPts::matD
MatrixDouble matD
Definition: EshelbianPlasticity.hpp:110
EshelbianPlasticity::OpPostProcDataStructure::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianOperators.cpp:1705
EshelbianPlasticity::OpBrokenTractionBc
Definition: EshelbianPlasticity.hpp:674
EshelbianPlasticity::OpAssembleVolume
Definition: EshelbianPlasticity.hpp:517
EshelbianPlasticity::EshelbianCore::SetUpSchur::SetUpSchur
SetUpSchur()=default
EshelbianPlasticity::EshelbianCore::skeletonFaces
boost::shared_ptr< Range > skeletonFaces
Definition: EshelbianPlasticity.hpp:1136
EshelbianPlasticity::EshelbianCore::rotSelector
static enum RotSelector rotSelector
Definition: EshelbianPlasticity.hpp:896
EshelbianPlasticity::PhysicalEquations::ATensor2
FTensor::Tensor2< adouble, 3, 3 > ATensor2
Definition: EshelbianPlasticity.hpp:222
EshelbianPlasticity::EshelbianCore::addMaterial_HMHHStVenantKirchhoff
MoFEMErrorCode addMaterial_HMHHStVenantKirchhoff(const int tape, const double lambda, const double mu, const double sigma_y)
Definition: EshelbianADOL-C.cpp:464
EshelbianPlasticity::OpRotationBcImpl< A, GAUSS >::bcRotPtr
boost::shared_ptr< BcRotVec > bcRotPtr
Definition: EshelbianPlasticity.hpp:662
EshelbianPlasticity::CGGUserPolynomialBase::~CGGUserPolynomialBase
~CGGUserPolynomialBase()=default
EshelbianPlasticity::EshelbianCore::f
static boost::function< double(const double)> f
Definition: EshelbianPlasticity.hpp:903
EshelbianPlasticity::DataAtIntegrationPts::G0AtPts
MatrixDouble G0AtPts
Definition: EshelbianPlasticity.hpp:78
EshelbianPlasticity::DataAtIntegrationPts::leviKirchhoffAtPts
MatrixDouble leviKirchhoffAtPts
Definition: EshelbianPlasticity.hpp:89
EshelbianPlasticity::EshelbianCore::bcSpatialDispVecPtr
boost::shared_ptr< BcDispVec > bcSpatialDispVecPtr
Definition: EshelbianPlasticity.hpp:1005
EshelbianPlasticity::BcDisp::blockName
std::string blockName
Definition: EshelbianPlasticity.hpp:353
MoFEM::EntitiesFieldData::EntData::getIndices
const VectorInt & getIndices() const
Get global indices of dofs on entity.
Definition: EntitiesFieldData.hpp:1214
EshelbianPlasticity::CGGUserPolynomialBase::query_interface
MoFEMErrorCode query_interface(boost::typeindex::type_index type_index, BaseFunctionUnknownInterface **iface) const
Definition: EshelbianPlasticity.cpp:1372
EshelbianPlasticity::OpSpatialEquilibrium_dw_dP::OpSpatialEquilibrium_dw_dP
OpSpatialEquilibrium_dw_dP(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:689
EshelbianPlasticity::EshelbianCore::inv_d_f
static boost::function< double(const double)> inv_d_f
Definition: EshelbianPlasticity.hpp:907
EshelbianPlasticity::EshelbianCore::materialSkeletonElement
const std::string materialSkeletonElement
Definition: EshelbianPlasticity.hpp:988
EshelbianPlasticity::DataAtIntegrationPts::logStretchTensorAtPts
MatrixDouble logStretchTensorAtPts
Definition: EshelbianPlasticity.hpp:65
EshelbianPlasticity::StretchSelector
StretchSelector
Definition: EshelbianPlasticity.hpp:44
EshelbianPlasticity::EshelbianCore::bcSpatialTraction
boost::shared_ptr< TractionBcVec > bcSpatialTraction
Definition: EshelbianPlasticity.hpp:1007
EshelbianPlasticity::EshelbianCore::EshelbianCore
EshelbianCore(MoFEM::Interface &m_field)
Definition: EshelbianPlasticity.cpp:371
EshelbianPlasticity::OpPostProcDataStructure::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
Definition: EshelbianPlasticity.hpp:853
MoFEM::GAUSS
@ GAUSS
Definition: FormsIntegrators.hpp:136
EshelbianPlasticity::OpAssembleBasic::integrate
virtual MoFEMErrorCode integrate(int row_side, EntityType row_type, EntData &data)
Definition: EshelbianPlasticity.hpp:438
EshelbianPlasticity::VectorPtr
boost::shared_ptr< VectorDouble > VectorPtr
Definition: EshelbianPlasticity.hpp:47
EshelbianPlasticity::EshelbianCore::mField
MoFEM::Interface & mField
Definition: EshelbianPlasticity.hpp:952
EshelbianPlasticity::PhysicalEquations::dependentVariablesPiolaDirevatives
std::vector< double > dependentVariablesPiolaDirevatives
Definition: EshelbianPlasticity.hpp:266
EshelbianPlasticity::OpAssembleBasic::transposeK
MatrixDouble transposeK
Definition: EshelbianPlasticity.hpp:428
EshelbianPlasticity::OpSpatialRotation::OpSpatialRotation
OpSpatialRotation(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:581
EshelbianPlasticity::EshelbianCore::addMaterial_HMHNeohookean
MoFEMErrorCode addMaterial_HMHNeohookean(const int tape, const double c10, const double K)
Definition: EshelbianADOL-C.cpp:482
EshelbianPlasticity::DataAtIntegrationPts::matAxiatorD
MatrixDouble matAxiatorD
Definition: EshelbianPlasticity.hpp:111
EshelbianPlasticity::OpSpatialRotation_domega_domega::OpSpatialRotation_domega_domega
OpSpatialRotation_domega_domega(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:770
EshelbianPlasticity::OpDispBc
Definition: EshelbianPlasticity.hpp:635
EshelbianPlasticity::PhysicalEquations::get_P_dh1
DTensor3Ptr get_P_dh1()
Definition: EshelbianPlasticity.hpp:339
EshelbianPlasticity::EshelbianCore::noStretch
static PetscBool noStretch
Definition: EshelbianPlasticity.hpp:899
EshelbianPlasticity::OpDispBcImpl
Definition: EshelbianPlasticity.hpp:612
EshelbianPlasticity::VolUserDataOperator
VolumeElementForcesAndSourcesCore::UserDataOperator VolUserDataOperator
Definition: EshelbianPlasticity.hpp:51
EshelbianPlasticity::PhysicalEquations::get_vecTensor3
static DTensor3Ptr get_vecTensor3(std::vector< double > &v, const int nba)
Definition: EshelbianPlasticity.hpp:284
EshelbianPlasticity::OpAssembleBasic::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:412
EshelbianPlasticity::EshelbianCore::solveElastic
MoFEMErrorCode solveElastic(TS ts, Vec x)
Definition: EshelbianPlasticity.cpp:2225
EshelbianPlasticity::BcDisp::BcDisp
BcDisp(std::string name, std::vector< double > &attr, Range &faces)
Definition: EshelbianPlasticity.cpp:1237
EshelbianPlasticity::OpSpatialPrj_dx_dx
Definition: EshelbianPlasticity.hpp:875
EshelbianPlasticity::CGGUserPolynomialBase::getValueHdivForCGGBubble
MoFEMErrorCode getValueHdivForCGGBubble(MatrixDouble &pts)
Definition: EshelbianPlasticity.cpp:1423
EshelbianPlasticity::EshelbianCore::setSingularity
static PetscBool setSingularity
Definition: EshelbianPlasticity.hpp:900
EshelbianPlasticity::EshelbianCore::contactElement
const std::string contactElement
Definition: EshelbianPlasticity.hpp:985
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:2005
EshelbianPlasticity::EshelbianCore::dM
SmartPetscObj< DM > dM
Coupled problem all fields.
Definition: EshelbianPlasticity.hpp:963
EshelbianPlasticity::PhysicalEquations::get_VecTensor2
static DTensor2Ptr get_VecTensor2(std::vector< double > &v)
Definition: EshelbianPlasticity.hpp:273
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::alphaW
const double alphaW
Definition: EshelbianPlasticity.hpp:700
EshelbianPlasticity::OpSpatialEquilibrium_dw_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:958
EshelbianPlasticity::PhysicalEquations::returnOpCalculateStretchFromStress
virtual VolUserDataOperator * returnOpCalculateStretchFromStress(boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr)
Definition: EshelbianADOL-C.cpp:271
EshelbianPlasticity::OpCalculateEshelbyStress
Definition: EshelbianPlasticity.hpp:545
EshelbianPlasticity::OpSpatialConsistencyBubble::OpSpatialConsistencyBubble
OpSpatialConsistencyBubble(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:597
EshelbianPlasticity::DataAtIntegrationPts::getMatAxiatorDPtr
MatrixPtr getMatAxiatorDPtr()
Definition: EshelbianPlasticity.hpp:186
EshelbianPlasticity::DataAtIntegrationPts::getLogStretchTensorAtPts
MatrixPtr getLogStretchTensorAtPts()
Definition: EshelbianPlasticity.hpp:146
EshelbianPlasticity::OpSpatialPhysical_du_domega
Definition: EshelbianPlasticity.hpp:736
EshelbianPlasticity::EshelbianCore::rotAxis
const std::string rotAxis
Definition: EshelbianPlasticity.hpp:978
EshelbianPlasticity::OpSpatialPhysical_du_dBubble::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1109
EshelbianPlasticity::DataAtIntegrationPts::eigenVals
MatrixDouble eigenVals
Definition: EshelbianPlasticity.hpp:106
EshelbianPlasticity::OpPostProcDataStructure
Definition: EshelbianPlasticity.hpp:846
EshelbianPlasticity::OpSpatialPhysical_du_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1049
EshelbianPlasticity::EshelbianCore::spatialL2Disp
const std::string spatialL2Disp
Definition: EshelbianPlasticity.hpp:970
EshelbianPlasticity::DataAtIntegrationPts::getBigGAtPts
MatrixPtr getBigGAtPts()
Definition: EshelbianPlasticity.hpp:170
EshelbianPlasticity::FaceUserDataOperator
FaceElementForcesAndSourcesCore::UserDataOperator FaceUserDataOperator
Definition: EshelbianPlasticity.hpp:52
EshelbianPlasticity::OpAssembleBasic::integrate
virtual MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianPlasticity.hpp:461
EshelbianPlasticity::EshelbianCore::contactFaces
boost::shared_ptr< Range > contactFaces
Definition: EshelbianPlasticity.hpp:1131
EshelbianPlasticity::OpSpatialPrj
Definition: EshelbianPlasticity.hpp:868
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
EshelbianPlasticity::EshelbianCore::bcSpatialFreeTraction
boost::shared_ptr< TractionFreeBc > bcSpatialFreeTraction
Definition: EshelbianPlasticity.hpp:1008
EshelbianPlasticity::DataAtIntegrationPts::getLogStretchDotTensorAtPts
MatrixPtr getLogStretchDotTensorAtPts()
Definition: EshelbianPlasticity.hpp:156
EshelbianPlasticity::DataAtIntegrationPts::getMatDeviatorDPtr
MatrixPtr getMatDeviatorDPtr()
Definition: EshelbianPlasticity.hpp:190
EshelbianPlasticity::EshelbianCore::dd_f_log_e
static double dd_f_log_e(const double v)
Definition: EshelbianPlasticity.hpp:912
EshelbianPlasticity::OpRotationBcImpl< A, GAUSS >::scalingMethodsVec
std::vector< boost::shared_ptr< ScalingMethod > > scalingMethodsVec
Definition: EshelbianPlasticity.hpp:663
EshelbianPlasticity::OpSpatialRotation_domega_dP::OpSpatialRotation_domega_dP
OpSpatialRotation_domega_dP(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:748
EshelbianPlasticity::EshelbianCore::bubbleField
const std::string bubbleField
Definition: EshelbianPlasticity.hpp:979
EshelbianPlasticity::PhysicalEquations::ATensor1
FTensor::Tensor1< adouble, 3 > ATensor1
Definition: EshelbianPlasticity.hpp:221
MoFEM::UnknownInterface
base class for all interface classes
Definition: UnknownInterface.hpp:34
EshelbianPlasticity::EshelbianCore
Definition: EshelbianPlasticity.hpp:894
EshelbianPlasticity::OpSpatialConsistency_dP_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1383
A
constexpr auto A
Definition: EshelbianPlasticity.hpp:14
EshelbianPlasticity::EshelbianCore::inv_f
static boost::function< double(const double)> inv_f
Definition: EshelbianPlasticity.hpp:906
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:64
Range
EshelbianPlasticity::CGGUserPolynomialBase::getValue
MoFEMErrorCode getValue(MatrixDouble &pts, boost::shared_ptr< BaseFunctionCtx > ctx_ptr)
Definition: EshelbianPlasticity.cpp:1380
EshelbianPlasticity::OpSpatialPrj_dx_dw::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
EshelbianPlasticity::PhysicalEquations::get_P_dh0
DTensor3Ptr get_P_dh0()
Definition: EshelbianPlasticity.hpp:335
EshelbianPlasticity::SMALL_ROT
@ SMALL_ROT
Definition: EshelbianPlasticity.hpp:43
EshelbianPlasticity::DataAtIntegrationPts::rotMatAtPts
MatrixDouble rotMatAtPts
Definition: EshelbianPlasticity.hpp:96
EshelbianPlasticity::OpJacobian::OpJacobian
OpJacobian()
Definition: EshelbianPlasticity.hpp:394
EshelbianPlasticity::OpSpatialConsistencyBubble::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:663
EshelbianPlasticity::CGGUserPolynomialBase::cachePhiPtr
boost::shared_ptr< CachePhi > cachePhiPtr
Definition: EshelbianPlasticity.hpp:36
EshelbianPlasticity::OpDispBcImpl< A, GAUSS >::scalingMethodsVec
std::vector< boost::shared_ptr< ScalingMethod > > scalingMethodsVec
Definition: EshelbianPlasticity.hpp:632
EshelbianPlasticity::EshelbianCore::physicalEquations
boost::shared_ptr< PhysicalEquations > physicalEquations
Definition: EshelbianPlasticity.hpp:955
EshelbianPlasticity::LARGE_ROT
@ LARGE_ROT
Definition: EshelbianPlasticity.hpp:43
FTensor::Tensor0
Definition: Tensor0.hpp:16
EshelbianPlasticity::LOG
@ LOG
Definition: EshelbianPlasticity.hpp:44
EshelbianPlasticity::EshelbianCore::elementVolumeName
const std::string elementVolumeName
Definition: EshelbianPlasticity.hpp:981
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:994
EshelbianPlasticity::EshelbianCore::frontVertices
boost::shared_ptr< Range > frontVertices
Definition: EshelbianPlasticity.hpp:1135
EshelbianPlasticity::OpRotationBcImpl
Definition: EshelbianPlasticity.hpp:643
EshelbianPlasticity::DataAtIntegrationPts::diffStretchTensorAtPts
MatrixDouble diffStretchTensorAtPts
Definition: EshelbianPlasticity.hpp:69
EshelbianPlasticity::DataAtIntegrationPts::hdOmegaAtPts
MatrixDouble hdOmegaAtPts
Definition: EshelbianPlasticity.hpp:87
EshelbianPlasticity::EshelbianCore::frontLayers
int frontLayers
Definition: EshelbianPlasticity.hpp:1001
EshelbianPlasticity::DataAtIntegrationPts::lambda
double lambda
Definition: EshelbianPlasticity.hpp:116
EshelbianPlasticity::TractionBc::TractionBc
TractionBc(std::string name, std::vector< double > &attr, Range &faces)
Definition: EshelbianPlasticity.cpp:1263
EshelbianPlasticity::OpSpatialConsistency_dP_domega::OpSpatialConsistency_dP_domega
OpSpatialConsistency_dP_domega(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:821
EshelbianPlasticity::OpSpatialEquilibrium::alphaRho
const double alphaRho
Definition: EshelbianPlasticity.hpp:571
EshelbianPlasticity::OpJacobian
Definition: EshelbianPlasticity.hpp:380
UserDataOperator
ForcesAndSourcesCore::UserDataOperator UserDataOperator
Definition: HookeElement.hpp:75
EshelbianPlasticity::OpCalculateEshelbyStress::OpCalculateEshelbyStress
OpCalculateEshelbyStress(boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:547
MoFEM::Types::VectorInt
UBlasVector< int > VectorInt
Definition: Types.hpp:67
EshelbianPlasticity::OpSpatialConsistency_dP_dP::OpSpatialConsistency_dP_dP
OpSpatialConsistency_dP_dP(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:780
EshelbianPlasticity::PhysicalEquations::get_VecTensor0
static DTensor0Ptr get_VecTensor0(std::vector< double > &v)
Definition: EshelbianPlasticity.hpp:279
EshelbianPlasticity::DataAtIntegrationPts::divSigmaAtPts
MatrixDouble divSigmaAtPts
Definition: EshelbianPlasticity.hpp:61
EshelbianPlasticity::RotSelector
RotSelector
Definition: EshelbianPlasticity.hpp:43
EshelbianPlasticity::EshelbianCore::bitAdjParent
BitRefLevel bitAdjParent
bit ref level for parent
Definition: EshelbianPlasticity.hpp:1142
EshelbianPlasticity::OpSpatialPhysical_du_dBubble::OpSpatialPhysical_du_dBubble
OpSpatialPhysical_du_dBubble(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:725
EshelbianPlasticity::TractionBc::flags
VectorInt3 flags
Definition: EshelbianPlasticity.hpp:376
EshelbianPlasticity::EshelbianCore::bitAdjEntMask
BitRefLevel bitAdjEntMask
bit ref level for parent parent
Definition: EshelbianPlasticity.hpp:1146
EshelbianPlasticity::DataAtIntegrationPts::getSmallWGradH1AtPts
MatrixPtr getSmallWGradH1AtPts()
Definition: EshelbianPlasticity.hpp:206
EshelbianPlasticity::DataAtIntegrationPts::leviKirchhoffPAtPts
MatrixDouble leviKirchhoffPAtPts
Definition: EshelbianPlasticity.hpp:90
EshelbianPlasticity::DataAtIntegrationPts::diffRotMatAtPts
MatrixDouble diffRotMatAtPts
Definition: EshelbianPlasticity.hpp:97
EshelbianPlasticity::OpPostProcDataStructure::tagSense
int tagSense
Definition: EshelbianPlasticity.hpp:865
EshelbianPlasticity::EshelbianCore::inv_d_f_linear
static double inv_d_f_linear(const double v)
Definition: EshelbianPlasticity.hpp:940
EshelbianPlasticity::OpBrokenTractionBc::bcData
boost::shared_ptr< TractionBcVec > bcData
Definition: EshelbianPlasticity.hpp:685
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:885
lambda
static double lambda
Definition: incompressible_elasticity.cpp:199
EshelbianPlasticity::DataAtIntegrationPts::getSmallWL2DotAtPts
MatrixPtr getSmallWL2DotAtPts()
Definition: EshelbianPlasticity.hpp:138
EshelbianPlasticity::DataAtIntegrationPts::detStretchTensorAtPts
VectorDouble detStretchTensorAtPts
Definition: EshelbianPlasticity.hpp:70
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:224
EshelbianPlasticity::EshelbianCore::alphaU
double alphaU
Definition: EshelbianPlasticity.hpp:996
EshelbianPlasticity::OpSpatialConsistency_dBubble_domega::OpSpatialConsistency_dBubble_domega
OpSpatialConsistency_dBubble_domega(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:834
EshelbianPlasticity::OpSpatialRotation_domega_dBubble::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1280
EshelbianPlasticity::OpSpatialConsistency_dBubble_domega::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1648
EshelbianPlasticity::EshelbianCore::skeletonElement
const std::string skeletonElement
Definition: EshelbianPlasticity.hpp:984
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:928
EshelbianPlasticity::EshelbianCore::addFields
MoFEMErrorCode addFields(const EntityHandle meshset=0)
Definition: EshelbianPlasticity.cpp:483
EshelbianPlasticity::OpAssembleBasic::OpAssembleBasic
OpAssembleBasic(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type)
Definition: EshelbianPlasticity.hpp:414
TetPolynomialBase
MoFEM::Types::VectorDouble
UBlasVector< double > VectorDouble
Definition: Types.hpp:68
EshelbianPlasticity::PhysicalEquations::returnOpCalculateEnergy
virtual VolUserDataOperator * returnOpCalculateEnergy(boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< double > total_energy_ptr)
Definition: EshelbianADOL-C.cpp:265
EshelbianPlasticity::DataAtIntegrationPts::detStretchTensorAtPts_du
MatrixDouble detStretchTensorAtPts_du
Definition: EshelbianPlasticity.hpp:71
EshelbianPlasticity::EshelbianCore::inv_dd_f
static boost::function< double(const double)> inv_dd_f
Definition: EshelbianPlasticity.hpp:908
EshelbianPlasticity::DataAtIntegrationPts::nbUniq
VectorInt nbUniq
Definition: EshelbianPlasticity.hpp:108
EshelbianPlasticity::DataAtIntegrationPts::wGradH1AtPts
MatrixDouble wGradH1AtPts
Definition: EshelbianPlasticity.hpp:82
EshelbianPlasticity::EshelbianCore::inv_dd_f_log
static double inv_dd_f_log(const double v)
Definition: EshelbianPlasticity.hpp:931
EshelbianPlasticity::DataAtIntegrationPts::mu
double mu
Definition: EshelbianPlasticity.hpp:115
MoFEM::BLOCK_SCHUR
@ BLOCK_SCHUR
Definition: FormsIntegrators.hpp:108
EshelbianPlasticity::BcDisp
Definition: EshelbianPlasticity.hpp:351
EshelbianPlasticity::OpSpatialConsistency_dBubble_dBubble::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1455
EshelbianPlasticity::EshelbianCore::getOptions
MoFEMErrorCode getOptions()
Definition: EshelbianPlasticity.cpp:377
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:397
EshelbianPlasticity::OpSpatialPhysical_du_dP::OpSpatialPhysical_du_dP
OpSpatialPhysical_du_dP(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:713
EshelbianPlasticity::OpSpatialPrj_dx_dw::OpSpatialPrj_dx_dw
OpSpatialPrj_dx_dw(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:886
EshelbianPlasticity::BcRot::theta
double theta
Definition: EshelbianPlasticity.hpp:365
EshelbianPlasticity::OpRotationBc::iNtegrate
MoFEMErrorCode iNtegrate(EntData &data)
Definition: EshelbianOperators.cpp:857
EshelbianPlasticity::OpAssembleVolume::OpAssembleVolume
OpAssembleVolume(const std::string &field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const char type)
Definition: EshelbianPlasticity.hpp:518
EshelbianPlasticity::DataAtIntegrationPts::energyAtPts
VectorDouble energyAtPts
Definition: EshelbianPlasticity.hpp:101
EshelbianPlasticity::EshelbianCore::contactRefinementLevels
int contactRefinementLevels
Definition: EshelbianPlasticity.hpp:1000
EshelbianPlasticity::EshelbianCore::getBc
MoFEMErrorCode getBc(boost::shared_ptr< BC > &bc_vec_ptr, const std::string block_name, const int nb_attributes)
Definition: EshelbianPlasticity.hpp:1011
EshelbianPlasticity::OpPostProcDataStructure::postProcMesh
moab::Interface & postProcMesh
Definition: EshelbianPlasticity.hpp:851
EshelbianPlasticity::DataAtIntegrationPts::getApproxPAtPts
MatrixPtr getApproxPAtPts()
Definition: EshelbianPlasticity.hpp:122
EshelbianPlasticity::EshelbianCore::parentAdjSkeletonFunctionDim2
boost::shared_ptr< ParentFiniteElementAdjacencyFunctionSkeleton< 2 > > parentAdjSkeletonFunctionDim2
Definition: EshelbianPlasticity.hpp:1140
EshelbianPlasticity::OpSpatialEquilibrium
Definition: EshelbianPlasticity.hpp:569
EshelbianPlasticity::OpJacobian::dataAtPts
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
data at integration pts
Definition: EshelbianPlasticity.hpp:401
EshelbianPlasticity::OpSpatialEquilibrium_dw_dP
Definition: EshelbianPlasticity.hpp:688
EshelbianPlasticity::OpSpatialPhysical_du_domega::OpSpatialPhysical_du_domega
OpSpatialPhysical_du_domega(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off=false)
Definition: EshelbianPlasticity.hpp:737
EshelbianPlasticity::DataAtIntegrationPts::getSmallWL2AtPts
MatrixPtr getSmallWL2AtPts()
Definition: EshelbianPlasticity.hpp:134
EshelbianPlasticity::BcDisp::vals
VectorDouble3 vals
Definition: EshelbianPlasticity.hpp:355
EshelbianPlasticity::ContactTree
Definition: EshelbianContact.hpp:34
EshelbianPlasticity::EshelbianCore::getSpatialTractionBc
MoFEMErrorCode getSpatialTractionBc()
Definition: EshelbianPlasticity.cpp:2599
EshelbianPlasticity::DataAtIntegrationPts::wL2DotAtPts
MatrixDouble wL2DotAtPts
Definition: EshelbianPlasticity.hpp:63
EshelbianPlasticity::OpCalculateEshelbyStress::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianOperators.cpp:200
EshelbianPlasticity::OpSpatialConsistency_dBubble_dP::integrate
MoFEMErrorCode integrate(EntData &row_data, EntData &col_data)
Definition: EshelbianOperators.cpp:1513
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:1571
EshelbianPlasticity::OpSpatialEquilibrium::OpSpatialEquilibrium
OpSpatialEquilibrium(const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha, const double rho)
Definition: EshelbianPlasticity.hpp:572
EshelbianPlasticity::EshelbianCore::materialOrder
int materialOrder
Definition: EshelbianPlasticity.hpp:995
EshelbianPlasticity::OpJacobian::evalLhs
bool evalLhs
Definition: EshelbianPlasticity.hpp:398
EshelbianPlasticity::EshelbianCore::crackElement
const std::string crackElement
Definition: EshelbianPlasticity.hpp:986
EshelbianPlasticity::PhysicalEquations::get_h
DTensor2Ptr get_h()
Definition: EshelbianPlasticity.hpp:317
EshelbianPlasticity::PhysicalEquations::ATensor3
FTensor::Tensor3< adouble, 3, 3, 3 > ATensor3
Definition: EshelbianPlasticity.hpp:223
EshelbianPlasticity::OpSpatialRotation_domega_domega
Definition: EshelbianPlasticity.hpp:769
EshelbianPlasticity::MODERATE_ROT
@ MODERATE_ROT
Definition: EshelbianPlasticity.hpp:43
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:473
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:382
EshelbianPlasticity::OpAssembleBasic::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntData &data)
Definition: EshelbianPlasticity.hpp:490
EshelbianPlasticity::OpAssembleBasic::K
MatrixDouble K
local tangent matrix
Definition: EshelbianPlasticity.hpp:427
EshelbianPlasticity::EshelbianCore::materialL2Disp
const std::string materialL2Disp
Definition: EshelbianPlasticity.hpp:971
EshelbianPlasticity::OpAssembleBasic
Definition: EshelbianPlasticity.hpp:406
OP
EshelbianPlasticity::OpSpatialEquilibrium_dw_dw
Definition: EshelbianPlasticity.hpp:699
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:429
MOFEM_NOT_IMPLEMENTED
@ MOFEM_NOT_IMPLEMENTED
Definition: definitions.h:32
EshelbianPlasticity::OpAssembleBasic::assembleSymmetry
const bool assembleSymmetry
Definition: EshelbianPlasticity.hpp:409
EshelbianPlasticity::PhysicalEquations::dependentVariablesPiola
std::vector< double > dependentVariablesPiola
Definition: EshelbianPlasticity.hpp:265
EshelbianPlasticity::DataAtIntegrationPts::PAtPts
MatrixDouble PAtPts
Definition: EshelbianPlasticity.hpp:99
SPACE_DIM
constexpr int SPACE_DIM
Definition: EshelbianPlasticity.hpp:13
EshelbianPlasticity::OpSpatialRotation_domega_dBubble
Definition: EshelbianPlasticity.hpp:758
EshelbianPlasticity::DataAtIntegrationPts::P_du
MatrixDouble P_du
Definition: EshelbianPlasticity.hpp:104
EshelbianPlasticity::EshelbianCore::setContactElementRhsOps
MoFEMErrorCode setContactElementRhsOps(boost::shared_ptr< ContactTree > &fe_contact_tree)
Definition: EshelbianPlasticity.cpp:2074
EshelbianPlasticity::EshelbianCore::eshelbyStress
const std::string eshelbyStress
Definition: EshelbianPlasticity.hpp:969
EshelbianPlasticity::PhysicalEquations::PhysicalEquations
PhysicalEquations()=delete
EshelbianPlasticity::PhysicalEquations::recordTape
virtual MoFEMErrorCode recordTape(const int tag, DTensor2Ptr *t_h)=0
EshelbianPlasticity::OpSpatialRotation_domega_dBubble::OpSpatialRotation_domega_dBubble
OpSpatialRotation_domega_dBubble(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const bool assemble_off)
Definition: EshelbianPlasticity.hpp:759
OpBrokenBase
EshelbianPlasticity::EshelbianCore::bitAdjEnt
BitRefLevel bitAdjEnt
bit ref level for parent
Definition: EshelbianPlasticity.hpp:1145
EshelbianPlasticity::DataAtIntegrationPts::adjointPdUdPAtPts
MatrixDouble adjointPdUdPAtPts
Definition: EshelbianPlasticity.hpp:95
EshelbianPlasticity::OpSpatialRotation_domega_dP
Definition: EshelbianPlasticity.hpp:747
EshelbianPlasticity::EshelbianCore::contactDisp
const std::string contactDisp
Definition: EshelbianPlasticity.hpp:976
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:359
EshelbianPlasticity::PhysicalEquations::get_P
DTensor2Ptr get_P()
Definition: EshelbianPlasticity.hpp:325
EshelbianPlasticity::EshelbianCore::getSpatialRotationBc
MoFEMErrorCode getSpatialRotationBc()
Definition: EshelbianPlasticity.hpp:1039
EshelbianPlasticity::OpSpatialPrj_dx_dx::OpSpatialPrj_dx_dx
OpSpatialPrj_dx_dx(std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
Definition: EshelbianPlasticity.hpp:876
EshelbianPlasticity::EshelbianCore::getSpatialDispBc
MoFEMErrorCode getSpatialDispBc()
[Getting norms]
Definition: EshelbianPlasticity.cpp:2561
EshelbianPlasticity::OpPostProcDataStructure::OpPostProcDataStructure
OpPostProcDataStructure(moab::Interface &post_proc_mesh, std::vector< EntityHandle > &map_gauss_pts, boost::shared_ptr< DataAtIntegrationPts > data_ptr, int sense)
Definition: EshelbianPlasticity.hpp:855
EshelbianPlasticity::EshelbianCore::SetUpSchur::setUp
virtual MoFEMErrorCode setUp(TS)=0
EshelbianPlasticity::OpSpatialConsistencyBubble
Definition: EshelbianPlasticity.hpp:596
EshelbianPlasticity::DataAtIntegrationPts::GAtPts
MatrixDouble GAtPts
Definition: EshelbianPlasticity.hpp:77
EshelbianPlasticity::CGGUserPolynomialBase::CachePhi
boost::tuple< int, int, MatrixDouble > CachePhi
Definition: EshelbianPlasticity.hpp:23
EshelbianPlasticity::EshelbianCore::naturalBcElement
const std::string naturalBcElement
Definition: EshelbianPlasticity.hpp:982
EshelbianPlasticity::EshelbianCore::gettingNorms
MoFEMErrorCode gettingNorms()
[Getting norms]
Definition: EshelbianPlasticity.cpp:2497
EshelbianPlasticity::EshelbianCore::~EshelbianCore
virtual ~EshelbianCore()
EshelbianPlasticity::CGGUserPolynomialBase::CGGUserPolynomialBase
CGGUserPolynomialBase(boost::shared_ptr< CachePhi > cache_phi=nullptr)
Definition: EshelbianPlasticity.cpp:1368
EshelbianPlasticity::TractionBc::vals
VectorDouble3 vals
Definition: EshelbianPlasticity.hpp:375
EshelbianPlasticity::DataAtIntegrationPts::hdLogStretchAtPts
MatrixDouble hdLogStretchAtPts
Definition: EshelbianPlasticity.hpp:88
EshelbianPlasticity::OpSpatialEquilibrium::integrate
MoFEMErrorCode integrate(EntData &data)
Definition: EshelbianOperators.cpp:538
EshelbianPlasticity::DataAtIntegrationPts::getContactL2AtPts
MatrixPtr getContactL2AtPts()
Definition: EshelbianPlasticity.hpp:202
EshelbianPlasticity::OpSpatialPhysical_du_dBubble
Definition: EshelbianPlasticity.hpp:724
EshelbianPlasticity::OpBrokenTractionBc::OpBrokenTractionBc
OpBrokenTractionBc(const std::string row_field, boost::shared_ptr< TractionBcVec > bc_data)
Definition: EshelbianPlasticity.hpp:676
EshelbianPlasticity::EshelbianCore::materialH1Positions
const std::string materialH1Positions
Definition: EshelbianPlasticity.hpp:973
EshelbianPlasticity::DataAtIntegrationPts::adjointPdUAtPts
MatrixDouble adjointPdUAtPts
Definition: EshelbianPlasticity.hpp:93
EshelbianPlasticity::EshelbianCore::dmMaterial
SmartPetscObj< DM > dmMaterial
Material problem.
Definition: EshelbianPlasticity.hpp:965
EshelbianPlasticity::PhysicalEquations::DTensor3Ptr
FTensor::Tensor3< FTensor::PackPtr< double *, 1 >, 3, 3, 3 > DTensor3Ptr
Definition: EshelbianPlasticity.hpp:231
EshelbianPlasticity::OpSpatialConsistency_dP_dP
Definition: EshelbianPlasticity.hpp:779