Systems

Draft & Work in Progress

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.