public ChMaterialCompositeNSC(ChMaterialCompositionStrategy <float> strategy, ChMaterialSurfaceNSC mat1, ChMaterialSurfaceNSC mat2) { static_friction = strategy.CombineFriction(mat1.static_friction, mat2.static_friction); sliding_friction = strategy.CombineFriction(mat1.sliding_friction, mat2.sliding_friction); restitution = strategy.CombineRestitution(mat1.restitution, mat2.restitution); cohesion = strategy.CombineCohesion(mat1.cohesion, mat2.cohesion); dampingf = strategy.CombineDamping(mat1.dampingf, mat2.dampingf); compliance = strategy.CombineCompliance(mat1.compliance, mat2.compliance); complianceT = strategy.CombineCompliance(mat1.complianceT, mat2.complianceT); rolling_friction = strategy.CombineFriction(mat1.rolling_friction, mat2.rolling_friction); spinning_friction = strategy.CombineFriction(mat1.spinning_friction, mat2.spinning_friction); complianceRoll = strategy.CombineCompliance(mat1.complianceRoll, mat2.complianceRoll); complianceSpin = strategy.CombineCompliance(mat1.complianceSpin, mat2.complianceSpin); }
public ChMaterialCompositeSMC(ChMaterialCompositionStrategy <float> strategy, ChMaterialSurfaceSMC mat1, ChMaterialSurfaceSMC mat2) { float inv_E = (1 - mat1.poisson_ratio * mat1.poisson_ratio) / mat1.young_modulus + (1 - mat2.poisson_ratio * mat2.poisson_ratio) / mat2.young_modulus; float inv_G = 2 * (2 - mat1.poisson_ratio) * (1 + mat1.poisson_ratio) / mat1.young_modulus + 2 * (2 - mat2.poisson_ratio) * (1 + mat2.poisson_ratio) / mat2.young_modulus; E_eff = 1 / inv_E; G_eff = 1 / inv_G; mu_eff = strategy.CombineFriction(mat1.static_friction, mat2.static_friction); cr_eff = strategy.CombineRestitution(mat1.restitution, mat2.restitution); adhesion_eff = strategy.CombineCohesion(mat1.constant_adhesion, mat2.constant_adhesion); adhesionMultDMT_eff = strategy.CombineAdhesionMultiplier(mat1.adhesionMultDMT, mat2.adhesionMultDMT); kn = strategy.CombineStiffnessCoefficient(mat1.kn, mat2.kn); kt = strategy.CombineStiffnessCoefficient(mat1.kt, mat2.kt); gn = strategy.CombineDampingCoefficient(mat1.gn, mat2.gn); gt = strategy.CombineDampingCoefficient(mat1.gt, mat2.gt); }