Skip to content

Releases: nasa/CompDam_DGD

CompDam_DGD, version 2.6.1

22 Jun 17:08
Compare
Choose a tag to compare
  • Fix end-of-file read errors sometimes encountered when reading the .parameters and .props input files.
  • Update syntax of Python subprocess.check_output() statements in setup.py.
  • Update version.for.nogit from v2.5.0

CompDam_DGD, version 2.6.0

06 Jun 20:43
Compare
Choose a tag to compare

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,000
  • epsilon: Default value: 0.2
  • brittleness: Default value: 0.95
  • fatigue_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 variable alpha 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 and alpha0 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 in DGDInit 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. With alpha_search enabled and alpha_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 parameter n_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

08 Aug 12:32
Compare
Choose a tag to compare

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

17 May 14:58
Compare
Choose a tag to compare

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

13 Dec 20:20
Compare
Choose a tag to compare
  • Added check for uncommitted code to env file (#9)
  • Update to phi0 initialization
  • Moved d_eps calculations to DGDInit; added phi0=2
  • Fixed bugs related to 3- and 6-node elements in vucharlength
  • Fixed a bug related to numerical error in the Schaefer module related to small element sizes (#10)

CompDam_DGD version 2.3.0

24 Oct 18:59
Compare
Choose a tag to compare
  • 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

03 Jul 12:55
92897fc
Compare
Choose a tag to compare

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

25 Jun 20:30
22e1238
Compare
Choose a tag to compare

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

21 Jun 12:02
Compare
Choose a tag to compare

Minor update that fixes two bugs:

  1. Corrected initial condition for the fiber kinking test
  2. Add conversion to float type to fix failure envelope plots

CompDam_DGD version 2.1.1

19 Jun 12:55
Compare
Choose a tag to compare

Several minor updates rolled up.

The updates include: enhancement for large rotations in Abaqus/Standard, bug fix in vucharlength, and several minor formatting updates.