Cohesive Fracture with Matrix-Free Newton Solver
This tutorial demonstrates quasi-static fracture simulation using FEAX's matrix-free Newton solver and cohesive zone model. We solve a 3D Mode I fracture problem where the total energy is composed of bulk elastic and cohesive interface contributions — all expressed as pure JAX functions and differentiated automatically.
Overview
Traditional FE fracture solvers assemble the tangent stiffness matrix explicitly. FEAX takes a different approach:
- Define the total potential energy as a sum of bulk and cohesive terms
- The residual is obtained automatically:
- The tangent operator is computed via JVP (Jacobian-vector product) of the residual — no sparse matrix assembly
- An iterative Krylov solver (CG) solves the Newton linear system using only matvec operations
This is the matrix-free Newton path in FEAX, activated by passing MatrixFreeOptions as the solver options.
Energy-Based Formulation
Bulk Elastic Energy
The bulk elastic strain energy density for linear elasticity is:
where is the infinitesimal strain tensor, and , are the Lamé constants:
The total bulk energy is the volume integral:
In FEAX, this is obtained via get_energy_density() and create_energy_fn():
class Elasticity3D(fe.problem.Problem):
def get_energy_density(self):
def psi(u_grad):
eps = 0.5 * (u_grad + u_grad.T)
return 0.5 * lmbda * np.trace(eps)**2 + mu * np.sum(eps * eps)
return psi
elastic_energy = create_energy_fn(problem) # ∫ ψ(∇u) dΩ
Note that get_energy_density() returns the scalar energy density , not the stress tensor. FEAX integrates this over quadrature points to compute the total energy. The stress and tangent stiffness are never assembled explicitly — they are computed on-the-fly via JAX's automatic differentiation.
Cohesive Interface Energy
The cohesive zone model introduces an energy contribution along the fracture interface . For a node pair across the interface, the displacement jump is:
This jump is decomposed into normal and tangential components:
The effective opening combines both modes:
where is the Macaulay bracket (no energy in compression) and is the mode-mixity ratio.
Xu–Needleman Exponential Potential
The cohesive potential per node follows the Xu–Needleman law:
where is the characteristic opening, is the fracture energy, and is the critical cohesive traction. The traction-separation relation is:
with peak traction at .
Irreversibility
Unloading follows a secant path to prevent energy recovery: