https://mooseframework.inl.gov
Loading...
Searching...
No Matches
BilinearMixedModeCohesiveZoneModel.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
13#include "TwoVector.h"
14
19{
20public:
22
24
25 virtual void initialize() override;
26 virtual void finalize() override;
27
28 // Getters for analysis output
29 Real getModeMixityRatio(const Node * const node) const;
30 Real getCohesiveDamage(const Node * const node) const;
31 Real getLocalDisplacementNormal(const Node * const node) const;
32 Real getLocalDisplacementTangential(const Node * const node) const;
33 Real getLocalDisplacementTangentialOne(const Node * const node) const;
34 Real getLocalDisplacementTangentialTwo(const Node * const node) const;
35 Real getLocalDisplacementTangentialEffective(const Node * const node) const;
36 Real getCohesiveTractionNormal(const Node * const node) const;
37 Real getCohesiveTractionTangentialMagnitude(const Node * const node) const;
38 Real getCohesiveTractionTangentialOne(const Node * const node) const;
39 Real getCohesiveTractionTangentialTwo(const Node * const node) const;
40 Real getCohesiveTractionEffective(const Node * const node) const;
41
42protected:
43 virtual void computeQpProperties() override;
44 virtual void computeQpIProperties() override;
45
46 virtual bool constrainedByOwner() const override { return false; }
47
48 // @{
49 // Compute CZM bilinear traction law.
50 virtual void computeModeMixity(const Node * const node);
51 virtual void computeCriticalDisplacementJump(const Node * const node);
52 virtual void computeFinalDisplacementJump(const Node * const node);
53 virtual void computeEffectiveDisplacementJump(const Node * const node);
54 virtual void computeDamage(const Node * const node) override;
55 // @}
56
58 virtual void computeCZMTraction(const Node * const node) override;
59
62
64 std::unordered_map<const DofObject *, ADReal> _dof_to_mode_mixity_ratio;
65
68 std::unordered_map<const DofObject *, RealVectorValue> _dof_to_local_czm_traction;
69
72
75
78
81
84
87
90
93
94 // Penalty stiffness for bilinear traction model
96
103
106
108 const Real _viscosity;
109
112
113 // @{
114 // Strength material properties at the nodes
115 std::unordered_map<const DofObject *, ADReal> _dof_to_normal_strength;
116 std::unordered_map<const DofObject *, ADReal> _dof_to_shear_strength;
117 // @}
118
119 // @{
120 // Fracture properties at the nodes
121 std::unordered_map<const DofObject *, ADReal> _dof_to_GI_c;
122 std::unordered_map<const DofObject *, ADReal> _dof_to_GII_c;
123 // @}
124
125 // @{
126 // The parameters in the damage evolution law: Maps node to damage
127 std::unordered_map<const DofObject *, ADReal> _dof_to_delta_initial;
128 std::unordered_map<const DofObject *, ADReal> _dof_to_delta_final;
129 std::unordered_map<const DofObject *, ADReal> _dof_to_delta_max;
130 // @}
131};
DualNumber< Real, DNDerivativeType, true > ADReal
User object that computes bilinear mixed mode traction separation law.
const bool _set_compressive_traction_to_zero
Zero compressive traction.
std::unordered_map< const DofObject *, ADReal > _dof_to_delta_final
Real getLocalDisplacementTangentialOne(const Node *const node) const
Real getCohesiveDamage(const Node *const node) const
const MaterialProperty< Real > & _normal_strength
The normal strength material property.
MixedModeCriterion
Mixed-mode propagation criterion.
const Real _power_law_parameter
Power law parameter for bilinear traction model.
std::unordered_map< const DofObject *, ADReal > _dof_to_shear_strength
const Real _regularization_alpha
Parameter for the regularization of the Macaulay bracket.
virtual void computeDamage(const Node *const node) override
std::unordered_map< const DofObject *, ADReal > _dof_to_delta_max
Real getLocalDisplacementTangential(const Node *const node) const
Real getCohesiveTractionTangentialMagnitude(const Node *const node) const
virtual void computeQpProperties() override
Computes properties that are functions only of the current quadrature point (_qp),...
Real getLocalDisplacementTangentialEffective(const Node *const node) const
Real getCohesiveTractionTangentialTwo(const Node *const node) const
std::unordered_map< const DofObject *, ADReal > _dof_to_normal_strength
const MaterialProperty< Real > & _GI_c
Fracture parameter mode I.
const MaterialProperty< Real > & _GII_c
Fracture parameter mode II.
std::unordered_map< const DofObject *, ADReal > _dof_to_mode_mixity_ratio
Map from degree of freedom to mode mixity ratio (AD needed?)
Real getCohesiveTractionNormal(const Node *const node) const
virtual void computeQpIProperties() override
Computes properties that are functions both of _qp and _i, for example the weighted gap.
ADReal _GI_c_interpolation
Interpolated value of fracture paramter mode I.
virtual void computeFinalDisplacementJump(const Node *const node)
ADReal _shear_strength_interpolation
Interpolated value of shear_strength.
virtual void computeEffectiveDisplacementJump(const Node *const node)
enum BilinearMixedModeCohesiveZoneModel::MixedModeCriterion _mix_mode_criterion
const Real _viscosity
Viscosity for damage model.
std::unordered_map< const DofObject *, RealVectorValue > _dof_to_local_czm_traction
Map from degree of freedom to the local-frame cohesive traction.
const MaterialProperty< Real > & _shear_strength
The shear strength material property.
Real getModeMixityRatio(const Node *const node) const
Real getLocalDisplacementNormal(const Node *const node) const
virtual void computeModeMixity(const Node *const node)
Real getCohesiveTractionTangentialOne(const Node *const node) const
std::unordered_map< const DofObject *, ADReal > _dof_to_GI_c
std::unordered_map< const DofObject *, ADReal > _dof_to_GII_c
virtual void computeCriticalDisplacementJump(const Node *const node)
virtual void computeCZMTraction(const Node *const node) override
Encapsulate the CZM constitutive behavior.
Real getCohesiveTractionEffective(const Node *const node) const
Real getLocalDisplacementTangentialTwo(const Node *const node) const
ADReal _GII_c_interpolation
Interpolated value of fracture paramter mode II.
ADReal _normal_strength_interpolation
Interpolated value of normal_strength.
std::unordered_map< const DofObject *, ADReal > _dof_to_delta_initial
Base class for mortar-based cohesive zone model.
const InputParameters & parameters() const