Releases: nasa/CompDam_DGD
CompDam_DGD, version 2.6.1
- Fix end-of-file read errors sometimes encountered when reading the
.parameters
and.props
input files. - Update syntax of Python
subprocess.check_output()
statements insetup.py
. - Update
version.for.nogit
from v2.5.0
CompDam_DGD, version 2.6.0
Cohesive fatigue law updated
The cohesive fatigue law has been updated to Dávila's CF20 model. Four material properties related to the CF20 model can be defined in the input deck material definitions:
fatigue_gamma
: Default value: 10,000,000epsilon
: Default value: 0.2brittleness
: Default value: 0.95fatigue_p
: Default value: 0.0
Compatibility added for two-dimensional, four-node COH2D4 cohesive elements. Previously, only three-dimensional, eight-node COH3D8 cohesive elements were supported.
Solid-element matrix crack fatigue damage
Fatigue damage can now be used in both cohesive elements and solid elements. The interface to subroutine cohesive_damage
now includes a flag for whether or not to calculate incremental fatigue damage. This change avoids calculating fatigue damage during every MatrixDamage
loop of subroutine DGDEvolve
. That is, fatigue damage is only calculated after local equilibrium has been established and static matrix damage ceases to increase.
Two single-element tests for C3D8R solid elements are added for matrix cracks subjected to Mode I and Mode II fatigue loading. All single-element fatigue tests for solid and cohesive elements are grouped in the class SingleElementFatigueTests
within test_runner.py
.
Zero-strain residual thermal stresses
Previously, the material model had no means of having zero-strain stresses. Stresses were calculated as a function of the current deformation gradient tensor with respect to an initial temperature of zero. Including residual thermal stresses in the analysis required running a thermal analysis step prior to applying mechanical loads. For large, explicit finite element models, this additional analysis step considerably increased the model runtimes. A reference stress-free temperature T_sf
can now be defined as a material property input. The thermal strain is calculated by multiplying the 1-, 2-, and 3-direction coefficients of thermal expansion by the current temperature difference, ΔT. The current temperature is provided by the Abaqus solver, and the mechanical strain is found by subtracting the thermal strain from the total strain.
The coefficient of thermal expansion in the material 3-direction (alpha33
) is another new material input to provide more flexibility in defining residual thermal stress states. alpha33
can only be defined via a .props
file.
Finite-thickness cohesive elements
The finite-thickness cohesive element approach of Sarrado, Leone, and Turon (2016) has been implemented. For cohesive elements with a nonzero thickness, this approach allows for the independent selection of all stiffness, strength, and fracture toughness properties while still internally obeying Turon's constraints to ensure proper energy dissipation under mixed-mode conditions. This is enabled by embedding a damageable cohesive interface within a finite-thickness cohesive element with a purely elastic response.
Model parameters
Additions
alpha_search
: Logical flag controlling the search for the matrix crack angle alpha which corresponds to the maximum failure index. Default value: True. This parameter replaces the need to set the state variablealpha
to -999 via initial conditions to initiate the crack angle search algorithm. This change makes the state variable more useful, as it now provides data regarding the orientation of the maximum matrix failure index before matrix damage initiates.alpha_max
: Maximum integer value for the matrix crack angle alpha, in degrees. Default value: 60.check_for_snap_back
: Logical flag for whether to check each material point for constitutive snap-back for all locally active damage modes. Default value: False. Snap-back checks now issue errors instead of warnings, except for snap-backs within the individual superposed softening laws of the fiber responses. Snap-backs in the superposed fiber softening laws result in warnings and an attempt to avoid snap-back by using a linear softening.
Changes
penStiffMult
: Default changed from 10,000 to 1,000.EQ_max
: Now affects both the DGD Newton-Raphson and fiber kink band Newton-Raphson equilibrium loops.- Analyses now continue if the parameter
terminate_on_no_convergence
is set to false and an element is not already fully damaged. Previously, a material point had to either have the matrix or fiber damage variable set to its maximum value prior to being deleted due to nonconvergence. This change should allow analyses to more often proceed, though the number of prematurely deleted elements should be monitored and as it allows for error in the analysis.
Miscellaneous
VC
andalpha0
are now optional inputs for cohesive elements.thickness
is no longer a required material input for all element types.- VUCHARLENGTH refactored to correspond with "Effects of characteristic element length on fracture energy dissipation in continuum damage mechanics models"
- VUCHARLENGTH updated for tri and wedge elements.
- Matrix crack and delamination damage variables are based on percent damage area and are independent of the penalty stiffness.
- New utility for fitting Ramberg-Osgood law.
- Bug fix: The shear penalty stiffness calculations in
DGDInit
were accounting for compressive loads using the traction in the nonrotated frame. The traction in the rotated frame (T_crack
) is now calculated inDGDInit
and used for the shear penalty stiffness calculations. - The compressive stress that affects the shear strengths through the LaRC failure criteria is now limited to the matrix compressive strength,
YC
. - The matrix crack failure initiation criterion has been refactored and separated from the subroutine
cohesive_damage
, which is used to calculated new static and fatigue damage states. Withalpha_search
enabled andalpha_inc
set to small values, the damage subroutine was called many times for each undamaged material point, slowing down analyses considerably. The refactored failure criterion is written in terms of cohesive tractions rather than cohesive displacement-jumps. - The contents of vaba_param.inc are explicitly stated in the subroutine files. Starting in Abaqus 2017, the parameter
maxblk
was changed and the parametern_vec_Length
was removed. The statements in subroutine files have been updated to the changes first made in 2017, which are current as of Abaqus 2023. - Removed elective element deletion for cohesive elements.
- The implicit finite element solver compatibility, VUMAT wrapper, and related tests have been removed in this release due to disuse and conflicts with the fatigue capabilities. Please see earlier releases for these capabilities.
CompDam_DGD, version 2.5.0
Cohesive fatigue model
The cohesive fatigue constitutive model in CompDam can predict the initiation and the propagation of matrix cracks and delaminations as a function of fatigue cycles. The analyses are conducted such that the applied load (or displacement) corresponds to the maximum load of a fatigue cycle. The intended use is that the maximum load (or displacement) is held constant while fatigue damage develops with increasing step time. The constitutive model uses a specified load ratio Rmin/Rmax, the solution increment, and an automatically-calculated cycles-per-increment ratio to accumulate the damage due to fatigue loading. The cohesive fatigue model response is based on engineering approximations of the endurance limit as well as the Goodman diagram. No additional material inputs must be defined or state variables requested beyond those required for a quasi-static analysis step. This approach can predict the stress-life diagrams for crack initiation, the Paris law regime, as well as the transient effects of crack initiation and stable tearing. An example double cantilever beam model is available in the examples
directory.
A detailed description of the cohesive fatigue implemented herein is available in a 2018 NASA technical paper by Carlos Dávila.
Energy calculation updates
Inelastic energy dissipation output can be controlled on a per mechanism basis using feature flag position 5. Setting the feature flag to 0 (default) outputs energy dissipation from all inelastic mechanisms to ALLPD
. The feature flag can be set to report only fracture energy or only plastic energy from Ramberg-Osgood.
Now using a density corrected to represent only the bulk material (not the crack) in energy calculations.
Updated enerIntern
so that it now includes recoverable and unrecoverable energy. This was necessary to get ALLSE
and ALLIE
to be calculated correctly.
Added several assertions to existing tests to check the energy calculations. The nonlinearShear12 and nonlinearShear13 tests are now displaced until the crack is fully developed. Also added a new test: nonlinearShear12_monotonic.
Removed d_eps. Now always calculate eps_old.
At this time, implementation and testing of energy outputs for cohesive elements, fiber damage, FKT, schaefer plasticity, friction, and UMAT remains a work-in-progress.
Miscellaneous
Added check for *Characteristic Length in the input deck
Added warnings when non-default parameters are used
CompDam_DGD version 2.4.0
Three-dimensional (3-D) fiber kinking model:
- Out-of-plane kinking only activated with feature flag xxx4xx.
- 3-D fiber kinking activated with feature flag xxx5xx.
- New options for specifying the initial fiber misalignments for fiber kinking.
- Minor modifications to improve the robustness of the fiber kinking algorithm.
Cohesive element compatibility:
- The cohesive module can now be used as the constitutive model for COH3D8 cohesive elements.
- Available state variables include a failure initiation criterion, cohesive damage, current mode mixity, and others.
- Friction on crack surfaces can be modeled.
- The assumptions of increasing effective shear strength with applied compressive normal loads (consistent with the LaRC04 failure criteria) are made.
Plastic dissipation energy (history output ALLPD) is now calculated for DGD matrix cracks and cohesive element delaminations
Enhancements to debugging routines:
- forlog.for now includes terminate function, which cleanly terminates the analysis. Should alleviate issues where errors lead to corrupted ODBs (e.g., missing output histories, element sets). (#14)
- Enhancement to debug files. <job_name>-<element_number>-debug-.py give full context at point of error.
CDM fiber consistency improvements:
- rfT and rfC should act as failure indices prior to damage initiation and damage thresholds after damage initiation. That is, they should equal the current failure index when less than 1, and should equal to previous maximum failure criterion evaluation after damage initiates.
- Fixed comments in fiber CDM module.
- rfT and rfC now initiate to their previous values in loadStateVars().
CompDam_DGD version 2.3.1
CompDam_DGD version 2.3.0
- New Schaefer module for pre-peak nonlinearity (#4)
- Python utilities folder added to repository (#7), including:
- abaqus-python-addpkg, for installing additional Python packages to the Abaqus Python environment; and
- meshtools, various helpful Python scripts for building finite element model meshes.
- The calculation of characteristic element lengths in the fiber and matrix material directions has been updated to account for meshes not aligned with the material directions.
- Tests for conventional shell elements dropped.
- Matrix cracks represented via DGD are now limited to "crack-like" orientations so as to not interfere with the development of delamination damage in adjacent planes of cohesive elements.
CompDam_DGD version 2.2.0
Added uncoupled Ramberg-Osgood shear nonlinearity in the 1-3 plane. This capability complements the existing shear nonlinearity capability available in the 1-2 plane. Shear nonlinearity can be enabled in either or both planes.
CompDam_DGD version 2.1.3
No significant changes in functionality or features
- Reorganized Strain subroutine to declutter and decouple
- Moved plasticity-related prepeak nonlinearity to plasticity.for
- Moved nonlinear elatic prepeak nonlinearity to stiffFuncNL
- Moved temporary state variables for prepeak nonlinearity to stateVar.for
- Generally cleaned up code and remove old & unused bits of code
- Minor changes to initialization of material properties
- Spelling fixes
CompDam_DGD version 2.1.2
Minor update that fixes two bugs:
- Corrected initial condition for the fiber kinking test
- Add conversion to float type to fix failure envelope plots
CompDam_DGD version 2.1.1
Several minor updates rolled up.
The updates include: enhancement for large rotations in Abaqus/Standard, bug fix in vucharlength, and several minor formatting updates.