Exemplo n.º 1
0
 public CohesiveShell8ToHexa20(ICohesiveZoneMaterial3D material, IQuadrature2D quadratureForStiffness)
 {
     this.QuadratureForStiffness = quadratureForStiffness;
     this.nGaussPoints           = quadratureForStiffness.IntegrationPoints.Count;
     materialsAtGaussPoints      = new ICohesiveZoneMaterial3D[nGaussPoints];
     for (int i = 0; i < nGaussPoints; i++)
     {
         materialsAtGaussPoints[i] = material.Clone();
     }
 }
Exemplo n.º 2
0
        private static (double[][] stressHistory, double[][, ] constitutiveMatrixHistory) StressStrainHistory(double[][] strainHistory, ICohesiveZoneMaterial3D testedMaterial)
        {
            double[][] stressHistory = new double[strainHistory.GetLength(0)][];
            double[][,] constitutiveMatrixHistory = new double[strainHistory.GetLength(0)][, ];

            for (int l = 0; l < strainHistory.GetLength(0); l++)
            {
                if (l == 42)
                {
                    Console.Write("breakPointIsHere");
                }
                testedMaterial.UpdateMaterial(strainHistory[l]);
                testedMaterial.SaveState();
                stressHistory[l] = new double[testedMaterial.Tractions.Length];
                testedMaterial.Tractions.CopyTo(stressHistory[l], 0);
                constitutiveMatrixHistory[l] = new double[testedMaterial.ConstitutiveMatrix.NumColumns, testedMaterial.ConstitutiveMatrix.NumRows];

                for (int m = 0; m < testedMaterial.ConstitutiveMatrix.NumColumns; m++)
                {
                    for (int n = 0; n < testedMaterial.ConstitutiveMatrix.NumRows; n++)
                    {
                        constitutiveMatrixHistory[l][m, n] = testedMaterial.ConstitutiveMatrix[m, n];
                    }
                }
            }

            return(stressHistory, constitutiveMatrixHistory);
        }