mpacts.contact.models.collision.cellmigration. cellmigration_fl_matrix

In order to be able to use this module import it like this:

import mpacts.contact.models.collision.cellmigration.cellmigration_fl_matrix
#or assign it to a shorter name
import mpacts.contact.models.collision.cellmigration.cellmigration_fl_matrix as cel

LinearFlatLayerAdhesionReinforcementMatrix

Description: Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Adhesion increases if a contact is under tension (pulled). Geometry combinations available:

PC2 | PC1 - Deformable_Triangle
Rigid_Triangle YES
Rigid_Quad YES
Rigid_CylinderBottom YES
Rigid_Cylinder YES
Deformable_Triangle YES

LinearFlatLayerAdhesionReinforcementMatrix (Deformable_Triangle Deformable_Triangle)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Adhesion increases if a contact is under tension (pulled).

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • attrFactorMax — maximum factor for contact state adhesion modifier
    • attrFactorTime — time it takes to linearly increase from attrFactorMin to attrFactorMax
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • k_t — Linear spring constant.
    • max_angle — Maximal angle between the two planes for which the adhesion can be reinforced
    • minimal_traction — minimal traction
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • PABB_margin (default value = -1) — Margin used by the Particle-Aligned Bounding Boxes (PABBs). This margin is added in all Particle-aligned axes of the bounding boxes in each direction. If specified as a value between 0 and half the calling contact detector’s ‘keep_distance’, the PABBs are considered as a pre-contact resolution step, and executed every timestep. Hence, the ‘margin’ can be interpreted as half the maximal overlap distance that should still be detected in the extreme case of two parallel N-gons. If ‘margin’ is not specified (or < 0), the PABBs are considered as a post-contact detection filtering step. The margin is then computed automatically based on the contact detector’s ‘keep_distance’ property, and the PABBs are only used to filter contacts whenever contact detection takes place, i.e. every ‘update_every’ steps. If unsure, leave this parameter as its default which is as safe as a Grid-Based contact detector and induces little overhead in general. However, for simulations with relatively ‘stiff’ and ‘fast’ particles, setting this to a non-zero value might significantly boost the simulation speed.
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • abort_if_different (default value = 0) — If ‘True’, inverts the regular function of ‘AbortIfSameParent’, and makes the contact model early abort if the particles’ parents are different. Please do not change this ‘Property’ if you are not sure what you are doing.
    • attrFactorMin (default value = 1) — minimum factor for contact state adhesion modifier
    • contact_data_storage_factory (default value = None) — The contact data storage factory to make contact data. Do not change! Especially vector in parallel is not a safe choice here.
    • contact_data (default value = None) — The contact data belonging to the DoF (parents) made by this model.
    • enable_PABB (default value = 1) — If ‘True’, the contacts will be pre-filtered using Particle-Aligned Bounding Boxes (PABBs). The usage strategy of the PABBs depends on the simulation, and can be configured using the property ‘PABB_margin’
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in RADIAN) for which the contact will still be considered flat (default: 1 degree).
    • reject_angle (default value = 1.2309594173407747) — Angles sharper than this angle (in RADIAN) will be ignored, regardless of node normals.Higher = more stable, but might miss sharp contacts. Lower = more inclusive, but numerically dangerous.Only change this setting from its default if you know what you are doing. Default value = arccos(1/3), the angle of the tetrahedron, which is the sharpest we can safely deal with.
    • transpose (default value = 0) — switches around pc1 and pc2 for the ContactMatrix.
    • weight_normal_1 (default value = 0.5) — Weight that will be assigned to the contribution of the normal of p1 in determining the normal unit vector. the weight from the normal of p2 is (1-weight_normal_1). Default is equal weights. Only change this setting if you know what you are doing.

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepDeformable_NGon_1_Data  <3 >
  ↓
Deformable_NGon_2_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_2_Data  <3 >
  ↓
PABB_NGon_NGonNGon_NGonLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_TangentialSpring_IntAdhesionReinforcementTractionN_T_AreaWeightedResistanceModifyFriction_ContactStateDistributeForcesAndMomentsToTriangle_1_NodesDistributeForcesAndMomentsToTriangle_2_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_DeformableTriangle_2AssembleSimpleTangentialForces_DeformableTriangle_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1Assemble_VirialStress_DeformableTriangle_2ComputeContactMatrixElementOverdampedDeformableTriangleDof_1DeformableTriangleDof_2AssembleContactMatrix_ComposedParticleAbortIfSameParentFeedback

LinearFlatLayerAdhesionReinforcementMatrix (Deformable_Triangle Rigid_Cylinder)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Adhesion increases if a contact is under tension (pulled).

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • attrFactorMax — maximum factor for contact state adhesion modifier
    • attrFactorTime — time it takes to linearly increase from attrFactorMin to attrFactorMax
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • k_t — Linear spring constant.
    • max_angle — Maximal angle between the two planes for which the adhesion can be reinforced
    • minimal_traction — minimal traction
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • attrFactorMin (default value = 1) — minimum factor for contact state adhesion modifier
    • contact_range (default value = 0) — The range of negative overlaps for which the intersection polygon will be expanded. Default: 0
    • extend_cylinder_hull (default value = 0) — Distance that the cylinder will be extended at top and bottom for contact resolution.It is recommended that you choose a non-zero value here, to prevent particles falling out at the edges. A good choice would be the maximal allowed overlap.Default: zero.
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepDeformable_NGon_1_Data  <3 >
  ↓
Rigid_Cylinder_2_DataFlatLayer_NGon_1_Data  <3 >
  ↓
NGon_HollowCylinderLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_TangentialSpring_IntAdhesionReinforcementTractionN_T_AreaWeightedResistanceModifyFriction_ContactStateDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionReinforcementMatrix (Deformable_Triangle Rigid_CylinderBottom)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Adhesion increases if a contact is under tension (pulled).

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • attrFactorMax — maximum factor for contact state adhesion modifier
    • attrFactorTime — time it takes to linearly increase from attrFactorMin to attrFactorMax
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • k_t — Linear spring constant.
    • max_angle — Maximal angle between the two planes for which the adhesion can be reinforced
    • minimal_traction — minimal traction
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • attrFactorMin (default value = 1) — minimum factor for contact state adhesion modifier
    • contact_range (default value = 0) — The range of negative overlaps for which the intersection polygon will be expanded. Default: 0
    • extend_radius (default value = 0) — If given, the radius will be increased with the given extend. Useful for hollow cylinders to avoid problems in the corner.
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in radians) for which the contact will still be considered flat (default: 1 degree).

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepRigid_Cylinder_2_DataDeformable_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
NGon_Disk  <Bottom_Selector >
  ↓
LinearFlatLayerAdhesion_Int  <6 >
  ↓
T_TangentialSpring_IntAdhesionReinforcementTractionN_T_AreaWeightedResistanceModifyFriction_ContactStateDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionReinforcementMatrix (Deformable_Triangle Rigid_Quad)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Adhesion increases if a contact is under tension (pulled).

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • attrFactorMax — maximum factor for contact state adhesion modifier
    • attrFactorTime — time it takes to linearly increase from attrFactorMin to attrFactorMax
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • k_t — Linear spring constant.
    • max_angle — Maximal angle between the two planes for which the adhesion can be reinforced
    • minimal_traction — minimal traction
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • PABB_margin (default value = -1) — Margin used by the Particle-Aligned Bounding Boxes (PABBs). This margin is added in all Particle-aligned axes of the bounding boxes in each direction. If specified as a value between 0 and half the calling contact detector’s ‘keep_distance’, the PABBs are considered as a pre-contact resolution step, and executed every timestep. Hence, the ‘margin’ can be interpreted as half the maximal overlap distance that should still be detected in the extreme case of two parallel N-gons. If ‘margin’ is not specified (or < 0), the PABBs are considered as a post-contact detection filtering step. The margin is then computed automatically based on the contact detector’s ‘keep_distance’ property, and the PABBs are only used to filter contacts whenever contact detection takes place, i.e. every ‘update_every’ steps. If unsure, leave this parameter as its default which is as safe as a Grid-Based contact detector and induces little overhead in general. However, for simulations with relatively ‘stiff’ and ‘fast’ particles, setting this to a non-zero value might significantly boost the simulation speed.
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • attrFactorMin (default value = 1) — minimum factor for contact state adhesion modifier
    • enable_PABB (default value = 1) — If ‘True’, the contacts will be pre-filtered using Particle-Aligned Bounding Boxes (PABBs). The usage strategy of the PABBs depends on the simulation, and can be configured using the property ‘PABB_margin’
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in RADIAN) for which the contact will still be considered flat (default: 1 degree).
    • reject_angle (default value = 1.2309594173407747) — Angles sharper than this angle (in RADIAN) will be ignored, regardless of node normals.Higher = more stable, but might miss sharp contacts. Lower = more inclusive, but numerically dangerous.Only change this setting from its default if you know what you are doing. Default value = arccos(1/3), the angle of the tetrahedron, which is the sharpest we can safely deal with.
    • weight_normal_1 (default value = 0.5) — Weight that will be assigned to the contribution of the normal of p1 in determining the normal unit vector. the weight from the normal of p2 is (1-weight_normal_1). Default is equal weights. Only change this setting if you know what you are doing.

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepRigid_NGon_2_Data  <4 >
  ↓
Deformable_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_2_Data  <4 >
  ↓
PABB_NGon_NGonNGon_NGonLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_TangentialSpring_IntAdhesionReinforcementTractionN_T_AreaWeightedResistanceModifyFriction_ContactStateDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionReinforcementMatrix (Deformable_Triangle Rigid_Triangle)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Adhesion increases if a contact is under tension (pulled).

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • attrFactorMax — maximum factor for contact state adhesion modifier
    • attrFactorTime — time it takes to linearly increase from attrFactorMin to attrFactorMax
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • k_t — Linear spring constant.
    • max_angle — Maximal angle between the two planes for which the adhesion can be reinforced
    • minimal_traction — minimal traction
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • PABB_margin (default value = -1) — Margin used by the Particle-Aligned Bounding Boxes (PABBs). This margin is added in all Particle-aligned axes of the bounding boxes in each direction. If specified as a value between 0 and half the calling contact detector’s ‘keep_distance’, the PABBs are considered as a pre-contact resolution step, and executed every timestep. Hence, the ‘margin’ can be interpreted as half the maximal overlap distance that should still be detected in the extreme case of two parallel N-gons. If ‘margin’ is not specified (or < 0), the PABBs are considered as a post-contact detection filtering step. The margin is then computed automatically based on the contact detector’s ‘keep_distance’ property, and the PABBs are only used to filter contacts whenever contact detection takes place, i.e. every ‘update_every’ steps. If unsure, leave this parameter as its default which is as safe as a Grid-Based contact detector and induces little overhead in general. However, for simulations with relatively ‘stiff’ and ‘fast’ particles, setting this to a non-zero value might significantly boost the simulation speed.
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • attrFactorMin (default value = 1) — minimum factor for contact state adhesion modifier
    • enable_PABB (default value = 1) — If ‘True’, the contacts will be pre-filtered using Particle-Aligned Bounding Boxes (PABBs). The usage strategy of the PABBs depends on the simulation, and can be configured using the property ‘PABB_margin’
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in RADIAN) for which the contact will still be considered flat (default: 1 degree).
    • reject_angle (default value = 1.2309594173407747) — Angles sharper than this angle (in RADIAN) will be ignored, regardless of node normals.Higher = more stable, but might miss sharp contacts. Lower = more inclusive, but numerically dangerous.Only change this setting from its default if you know what you are doing. Default value = arccos(1/3), the angle of the tetrahedron, which is the sharpest we can safely deal with.
    • weight_normal_1 (default value = 0.5) — Weight that will be assigned to the contribution of the normal of p1 in determining the normal unit vector. the weight from the normal of p2 is (1-weight_normal_1). Default is equal weights. Only change this setting if you know what you are doing.

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepRigid_NGon_2_Data  <3 >
  ↓
Deformable_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_2_Data  <3 >
  ↓
PABB_NGon_NGonNGon_NGonLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_TangentialSpring_IntAdhesionReinforcementTractionN_T_AreaWeightedResistanceModifyFriction_ContactStateDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionTractionSubstrateMatrix

Description: Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Traction on a substrate for which traction forces are computed. Geometry combinations available:

PC2 | PC1 - Deformable_Triangle
Rigid_Triangle YES
Rigid_Quad YES
Rigid_CylinderBottom YES
Rigid_Cylinder YES
Deformable_Triangle YES

LinearFlatLayerAdhesionTractionSubstrateMatrix (Deformable_Triangle Deformable_Triangle)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Traction on a substrate for which traction forces are computed.

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • PABB_margin (default value = -1) — Margin used by the Particle-Aligned Bounding Boxes (PABBs). This margin is added in all Particle-aligned axes of the bounding boxes in each direction. If specified as a value between 0 and half the calling contact detector’s ‘keep_distance’, the PABBs are considered as a pre-contact resolution step, and executed every timestep. Hence, the ‘margin’ can be interpreted as half the maximal overlap distance that should still be detected in the extreme case of two parallel N-gons. If ‘margin’ is not specified (or < 0), the PABBs are considered as a post-contact detection filtering step. The margin is then computed automatically based on the contact detector’s ‘keep_distance’ property, and the PABBs are only used to filter contacts whenever contact detection takes place, i.e. every ‘update_every’ steps. If unsure, leave this parameter as its default which is as safe as a Grid-Based contact detector and induces little overhead in general. However, for simulations with relatively ‘stiff’ and ‘fast’ particles, setting this to a non-zero value might significantly boost the simulation speed.
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • abort_if_different (default value = 0) — If ‘True’, inverts the regular function of ‘AbortIfSameParent’, and makes the contact model early abort if the particles’ parents are different. Please do not change this ‘Property’ if you are not sure what you are doing.
    • contact_data_storage_factory (default value = None) — The contact data storage factory to make contact data. Do not change! Especially vector in parallel is not a safe choice here.
    • contact_data (default value = None) — The contact data belonging to the DoF (parents) made by this model.
    • enable_PABB (default value = 1) — If ‘True’, the contacts will be pre-filtered using Particle-Aligned Bounding Boxes (PABBs). The usage strategy of the PABBs depends on the simulation, and can be configured using the property ‘PABB_margin’
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in RADIAN) for which the contact will still be considered flat (default: 1 degree).
    • modify_traction (default value = 1) — factor modifying the triangle’s fraction
    • reject_angle (default value = 1.2309594173407747) — Angles sharper than this angle (in RADIAN) will be ignored, regardless of node normals.Higher = more stable, but might miss sharp contacts. Lower = more inclusive, but numerically dangerous.Only change this setting from its default if you know what you are doing. Default value = arccos(1/3), the angle of the tetrahedron, which is the sharpest we can safely deal with.
    • transpose (default value = 0) — switches around pc1 and pc2 for the ContactMatrix.
    • weight_normal_1 (default value = 0.5) — Weight that will be assigned to the contribution of the normal of p1 in determining the normal unit vector. the weight from the normal of p2 is (1-weight_normal_1). Default is equal weights. Only change this setting if you know what you are doing.

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepDeformable_NGon_1_Data  <3 >
  ↓
Deformable_NGon_2_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_2_Data  <3 >
  ↓
PABB_NGon_NGonNGon_NGonNoContactAdhesionModifierLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_ActiveTraction_Front_1T_ActiveTraction_Front_2N_T_AreaWeightedResistanceDistributeForcesAndMomentsToTriangle_1_NodesDistributeForcesAndMomentsToTriangle_2_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_DeformableTriangle_2AssembleSimpleTangentialForces_DeformableTriangle_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2AssembleTriangleForcesToNodes_2Assemble_VirialStress_DeformableTriangle_1Assemble_VirialStress_DeformableTriangle_2ComputeContactMatrixElementOverdampedDeformableTriangleDof_1DeformableTriangleDof_2AssembleContactMatrix_ComposedParticleAbortIfSameParentFeedback

LinearFlatLayerAdhesionTractionSubstrateMatrix (Deformable_Triangle Rigid_Cylinder)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Traction on a substrate for which traction forces are computed.

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • contact_range (default value = 0) — The range of negative overlaps for which the intersection polygon will be expanded. Default: 0
    • extend_cylinder_hull (default value = 0) — Distance that the cylinder will be extended at top and bottom for contact resolution.It is recommended that you choose a non-zero value here, to prevent particles falling out at the edges. A good choice would be the maximal allowed overlap.Default: zero.
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • modify_traction (default value = 1) — factor modifying the triangle’s fraction

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepDeformable_NGon_1_Data  <3 >
  ↓
Rigid_Cylinder_2_DataFlatLayer_NGon_1_Data  <3 >
  ↓
NGon_HollowCylinderNoContactAdhesionModifierLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_ActiveTraction_Front_1N_T_AreaWeightedResistanceDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionTractionSubstrateMatrix (Deformable_Triangle Rigid_CylinderBottom)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Traction on a substrate for which traction forces are computed.

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • contact_range (default value = 0) — The range of negative overlaps for which the intersection polygon will be expanded. Default: 0
    • extend_radius (default value = 0) — If given, the radius will be increased with the given extend. Useful for hollow cylinders to avoid problems in the corner.
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in radians) for which the contact will still be considered flat (default: 1 degree).
    • modify_traction (default value = 1) — factor modifying the triangle’s fraction

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepRigid_Cylinder_2_DataDeformable_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
NGon_Disk  <Bottom_Selector >
  ↓
NoContactAdhesionModifierLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_ActiveTraction_Front_1N_T_AreaWeightedResistanceDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionTractionSubstrateMatrix (Deformable_Triangle Rigid_Quad)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Traction on a substrate for which traction forces are computed.

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • PABB_margin (default value = -1) — Margin used by the Particle-Aligned Bounding Boxes (PABBs). This margin is added in all Particle-aligned axes of the bounding boxes in each direction. If specified as a value between 0 and half the calling contact detector’s ‘keep_distance’, the PABBs are considered as a pre-contact resolution step, and executed every timestep. Hence, the ‘margin’ can be interpreted as half the maximal overlap distance that should still be detected in the extreme case of two parallel N-gons. If ‘margin’ is not specified (or < 0), the PABBs are considered as a post-contact detection filtering step. The margin is then computed automatically based on the contact detector’s ‘keep_distance’ property, and the PABBs are only used to filter contacts whenever contact detection takes place, i.e. every ‘update_every’ steps. If unsure, leave this parameter as its default which is as safe as a Grid-Based contact detector and induces little overhead in general. However, for simulations with relatively ‘stiff’ and ‘fast’ particles, setting this to a non-zero value might significantly boost the simulation speed.
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • enable_PABB (default value = 1) — If ‘True’, the contacts will be pre-filtered using Particle-Aligned Bounding Boxes (PABBs). The usage strategy of the PABBs depends on the simulation, and can be configured using the property ‘PABB_margin’
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in RADIAN) for which the contact will still be considered flat (default: 1 degree).
    • modify_traction (default value = 1) — factor modifying the triangle’s fraction
    • reject_angle (default value = 1.2309594173407747) — Angles sharper than this angle (in RADIAN) will be ignored, regardless of node normals.Higher = more stable, but might miss sharp contacts. Lower = more inclusive, but numerically dangerous.Only change this setting from its default if you know what you are doing. Default value = arccos(1/3), the angle of the tetrahedron, which is the sharpest we can safely deal with.
    • weight_normal_1 (default value = 0.5) — Weight that will be assigned to the contribution of the normal of p1 in determining the normal unit vector. the weight from the normal of p2 is (1-weight_normal_1). Default is equal weights. Only change this setting if you know what you are doing.

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepRigid_NGon_2_Data  <4 >
  ↓
Deformable_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_2_Data  <4 >
  ↓
PABB_NGon_NGonNGon_NGonNoContactAdhesionModifierLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_ActiveTraction_Front_1N_T_AreaWeightedResistanceDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback

LinearFlatLayerAdhesionTractionSubstrateMatrix (Deformable_Triangle Rigid_Triangle)

Flat layer repulsion with linear adhesion; Virial stress tensor is computed based on contact forces; Traction on a substrate for which traction forces are computed.

Parallel Compatible: Yes

Properties:

  • Required keywords:
    • attrConst — Adhesion energy (J/m^2) of two surfaces brought together
    • gamma_normal (kg . s^-1 . m^-2) — Normal friction coefficient (Pa*s/m)
    • gamma_tangential (kg . s^-1 . m^-2) — Tangential friction coefficient (Pa*s/m)
    • k_layer — layer stiffnes [Pa/m]. Not that k_layer = bulk modulus / layer thickness
    • pc1 — The first particle container in the binary contact detection.
    • pc2 — The second particle container in the binary contact detection. If contact detection within the same particle container is desired, and it is applicable for the contactmodel, pass the same pc to both pc1 and pc2.
  • Optional keywords:
    • Fprim1 (default value = None) — Array with vectors which stores the contact force per primitive for pc1. If not given, the array pc1[‘Fprim’] is searched first, and if not found, nothing will be done
    • Fprim2 (default value = None) — Array with vectors which stores the contact force per primitive for pc2. If not given, the array pc2[‘Fprim’] is searched first, and if not found, nothing will be done
    • PABB_margin (default value = -1) — Margin used by the Particle-Aligned Bounding Boxes (PABBs). This margin is added in all Particle-aligned axes of the bounding boxes in each direction. If specified as a value between 0 and half the calling contact detector’s ‘keep_distance’, the PABBs are considered as a pre-contact resolution step, and executed every timestep. Hence, the ‘margin’ can be interpreted as half the maximal overlap distance that should still be detected in the extreme case of two parallel N-gons. If ‘margin’ is not specified (or < 0), the PABBs are considered as a post-contact detection filtering step. The margin is then computed automatically based on the contact detector’s ‘keep_distance’ property, and the PABBs are only used to filter contacts whenever contact detection takes place, i.e. every ‘update_every’ steps. If unsure, leave this parameter as its default which is as safe as a Grid-Based contact detector and induces little overhead in general. However, for simulations with relatively ‘stiff’ and ‘fast’ particles, setting this to a non-zero value might significantly boost the simulation speed.
    • _contactmatrixdatatype (default value = 1) — Identifier that signals that this chain element’s containing contact model is a friction matrix type. Only change this if you really know what you are doing!
    • enable_PABB (default value = 1) — If ‘True’, the contacts will be pre-filtered using Particle-Aligned Bounding Boxes (PABBs). The usage strategy of the PABBs depends on the simulation, and can be configured using the property ‘PABB_margin’
    • implicitness (default value = 0) — Choose the semi-implicit integration method. (0 for explicit Euler, 1 for implicit Euler, 0.5 for Cranck-Nicholson).
    • max_flat_angle (default value = 0.017453292519943295) — Maximal deviation of normal1 and -normal2 (in RADIAN) for which the contact will still be considered flat (default: 1 degree).
    • modify_traction (default value = 1) — factor modifying the triangle’s fraction
    • reject_angle (default value = 1.2309594173407747) — Angles sharper than this angle (in RADIAN) will be ignored, regardless of node normals.Higher = more stable, but might miss sharp contacts. Lower = more inclusive, but numerically dangerous.Only change this setting from its default if you know what you are doing. Default value = arccos(1/3), the angle of the tetrahedron, which is the sharpest we can safely deal with.
    • weight_normal_1 (default value = 0.5) — Weight that will be assigned to the contribution of the normal of p1 in determining the normal unit vector. the weight from the normal of p2 is (1-weight_normal_1). Default is equal weights. Only change this setting if you know what you are doing.

This contact model is composed out of following pieces (click on the chain elements to get more information):

FlatNGonBoilerPlateContactMatrixDataBoilerPlateContactMatrixContactStateKeepTimeStepRigid_NGon_2_Data  <3 >
  ↓
Deformable_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_1_Data  <3 >
  ↓
FlatLayer_NGon_2_Data  <3 >
  ↓
PABB_NGon_NGonNGon_NGonNoContactAdhesionModifierLinearFlatLayerAdhesion_Int  <6 >
  ↓
T_ActiveTraction_Front_1N_T_AreaWeightedResistanceDistributeForcesAndMomentsToTriangle_1_NodesAssembleForces_DeformableTriangle_1AssembleSimpleTangentialForces_DeformableTriangle_1AssembleForces_2AssembleMoments_cps_2AssembleMoments_2Assemble_ContactArea_1Assemble_ContactArea_2AssembleForces_Primitives_1AssembleForces_Primitives_2DistributeForcesAndMomentsToTriangle_2_NodesAssembleTriangleForcesToNodes_2Assemble_VirialStress_DeformableTriangle_1ComputeContactMatrixElementOverdampedDeformableTriangleDof_1RigidBodyDof_2AssembleContactMatrixToDiagonal_ComposedParticle_1FrictionMatrixForce_1Feedback