Integrator::Fracture
This class implements second and fourth order phase field brittle fracture with near singular solver.
This class inherits from the base class Base/Mechanics.H.
See this link
for more information on this implementation.
The energy functional for a second order model is given by
where \(g(c)\) and \(w(c)\) are interpolation functions specified by the user. The fracture energy \(G_c\) and crack length scale \(xi\) are also read from input file. The tension compression asymmetry is accounted by splitting the strain energy \(W_0\) as
where \(\lambda\) and \(\mu\) are material models for linear elastic isotropic material, \(\bm{\varepsilon}_\pm\) are the positive and negative components of the strain tensor \(\bm{\varepsilon}\) computed through eigenvalue decomposition. The fourth order model adds a laplacian term to the free energy functional. The code performs a staggered solve where it solves the elastic problem implicitly and crack problem explicitly.
Class methods:
Fracture(): Basic constructor. Does nothing, and leaves all values initiated as NAN.Fracture(IO::ParmParse &pp): Calls the parser.static void Parse(Fracture &value, IO::ParmParse &pp)Parses input file, ICs, BCs, and sets up multifabs appropriatelyvoid Initialize(int lev) overrideCalls IC and sets up the initial crack geometry.virtual void UpdateModel(int a_step) overridePerforms degradation by updating the \(\psi\) field using \(g(c)\).void TimeStepBegin(Set::Scalar a_time, int a_step) overrideSolves the elastic problem, performs eigen value decomposition of strain, and computes the positive part of the strain energy.void Advance(int a_lev, amrex::Real a_time, amrex::Real a_dt)Advances the crack field by computing the variational derivative of energy functional with \(c\).void TagCellsForRefinement(int lev, amrex::TagBoxArray &a_tags, Set::Scalar a_time, int a_ngrow) overrideRefines the grid based on the crack field.void Integrate(int amrlev, Set::Scalar time, int step, const amrex::MFIter &mfi, const amrex::Box &a_box) overridePerforms spatial integration of the driving force to check for convergence of crack problemvoid TimeStepComplete(Set::Scalar /*time*/, int /* iter*/)Checks whether the solver should work on crack problem or elastic problem.
material.refinement_threshold
Material field related parsing
Names by executable 4 executables, 4 uses
material.refinement_threshold
material.refinement_threshold
material.refinement_threshold
material.refinement_threshold
driving_force_refinement_threshold
Driving force threshold
Names by executable 4 executables, 4 uses
driving_force_refinement_threshold
driving_force_refinement_threshold
driving_force_refinement_threshold
driving_force_refinement_threshold
material.model
Let's query material properties for different materials in the system
Names by executable 4 executables, 4 uses
material.model
material.model
material.model
material.model
crack.refinement_threshold
Crack related parsing mesh refinement criteria
Names by executable 4 executables, 4 uses
crack.refinement_threshold
crack.refinement_threshold
crack.refinement_threshold
crack.refinement_threshold
crack.df.beta
constant multiplier for fourth orther model with bilaplacian
Names by executable 4 executables, 4 uses
crack.df.beta
crack.df.beta
crack.df.beta
crack.df.beta
crack.df.tol_rel
relative tolerance for convergence of driving force
Names by executable 4 executables, 4 uses
crack.df.tol_rel
crack.df.tol_rel
crack.df.tol_rel
crack.df.tol_rel
crack.df.tol_abs
absolute tolerance for convergence of driving force
Names by executable 4 executables, 4 uses
crack.df.tol_abs
crack.df.tol_abs
crack.df.tol_abs
crack.df.tol_abs
crack.df.max_iter
Maximum number of solver iterations
Names by executable 4 executables, 4 uses
crack.df.max_iter
crack.df.max_iter
crack.df.max_iter
crack.df.max_iter
crack.df.mult_Gc
constant multiplier for controlling fracture energy of interface
Names by executable 4 executables, 4 uses
crack.df.mult_Gc
crack.df.mult_Gc
crack.df.mult_Gc
crack.df.mult_Gc
crack.df.mult_lap
constant multiplier for second order model with laplacian
Names by executable 4 executables, 4 uses
crack.df.mult_lap
crack.df.mult_lap
crack.df.mult_lap
crack.df.mult_lap
crack.df.el_mult
unit conversion multiplier between elastic problem and crack problem
Names by executable 4 executables, 4 uses
crack.df.el_mult
crack.df.el_mult
crack.df.el_mult
crack.df.el_mult
crack.ic
Let's figure out if there is an initial crack or void
Names by executable 4 executables, 4 uses
crack.ic0.type
crack.ic0.type
crack.ic0.type
crack.ic0.type
crack.ic
Let's figure out if there is an initial crack or void
Names by executable 4 executables, 4 uses
crack.ic
crack.ic
crack.ic
crack.ic
crack.model
This is needed for the specific crack model we are implementing
Names by executable 4 executables, 4 uses
crack.model
crack.model
crack.model
crack.model