Systems
This documentation is a draft and work in progress. It will be extended and improved in the future.
Systems are the backbone of the simulations. They contain all the required pre-defined data structures (e.g. bonds, point-families, interactions, ...).
BondSystem
The standard system for bond-based (BBMaterial
), ordinary state-based (OSBMaterial
) and non-ordinary state-based correspondence formulation (CMaterial
) material models. Used material models have to be subtypes of AbstractBondSystemMaterial
or AbstractCorrespondenceMaterial
.
InteractionSystem
The system utilizing one-, two- and three-neighbor-interactions for the continuum-kinematics-inspired material model (CKIMaterial
). Used material models have to be subtypes of AbstractInteractionSystemMaterial
.
BondAssociatedSystem
A system for the bond-associated correspondence model by Chen and Spencer (BACMaterial
). Used material models have to be subtypes of AbstractBondAssociatedSystemMaterial
.
Custom systems
Custom systems are relatively free in how they are defined, only these things are required:
- define an abstract type
Abstract<SystemName>Material
that all materials using this system have to be a subtype of. - define the
get_system(body::AbstractBody{Material}, pd::PointDecomposition, chunk_id::Int) where {Material<:Abstract<SystemName>Material}
function. - define the
system_type(mat::Abstract<SystemName>Material)
function that returns the system type. - define the
calc_timestep_point(system::<SystemType>, params::AbstractPointParameters, point_id::Int)
function. - define the
calc_force_density!(chunk::AbstractBodyChunk{<:<SystemType>}, t, Δt)
function.