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>Materialthat 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.