protected TriangleElement(SerializationInfo info, StreamingContext context) : base(info, context) { _material = (BaseMaterial)info.GetValue("_material", typeof(BaseMaterial)); _section = (Base2DSection)info.GetValue("_section", typeof(Base2DSection)); _behavior = (TriangleElementBehaviour)info.GetInt32("_behavior"); _formulation = (MembraneFormulation)info.GetInt32("_behavior"); }
internal static Matrix GetDMatrix(double e, double nu, MembraneFormulation f) { var d = new Matrix(3, 3); if (f == MembraneFormulation.PlaneStress) { //page 23 of JAVA Thesis pdf var cf = e / (1 - nu * nu); d[0, 0] = d[1, 1] = 1; d[1, 0] = d[0, 1] = nu; d[2, 2] = (1 - nu) / 2; d.MultiplyByConstant(cf); } else { //page 24 of JAVA Thesis pdf var cf = e / ((1 + nu) * (1 - 2 * nu)); d[0, 0] = d[1, 1] = 1 - nu; d[1, 0] = d[0, 1] = nu; d[2, 2] = (1 - 2 * nu) / 2; d.MultiplyByConstant(cf); } return(d); }
/// <summary> /// Initializes a new instance of the <see cref="CstElement"/> class. /// </summary> /// <param name="info">The information.</param> /// <param name="context">The context.</param> protected CstElement(SerializationInfo info, StreamingContext context) : base(info, context) { this._thickness = info.GetDouble("_thickness"); this._poissonRatio = info.GetDouble("_poissonRatio"); this._elasticModulus = info.GetDouble("_elasticModulus"); this._formulationType = (MembraneFormulation)info.GetInt32("_formulationType"); }
/// <summary> /// Initializes a new instance of the <see cref="DktElement"/> class. /// </summary> /// <param name="info">The information.</param> /// <param name="context">The context.</param> protected TriangleFlatShell(SerializationInfo info, StreamingContext context) : base(info, context) { this._thickness = info.GetDouble("_thickness"); this._poissonRatio = info.GetDouble("_poissonRatio"); this._elasticModulus = info.GetDouble("_elasticModulus"); this._addDrillingDof = info.GetBoolean("_addDrillingDof"); this._behaviour = (FlatShellBehaviour)info.GetInt32("_behaviour"); this._formulationType = (MembraneFormulation)info.GetInt32("_formulationType"); }
/// <summary> /// Gets the stiffness matrix of DKT element. /// </summary> /// <param name="x">The x location of points, in local coordinates.</param> /// <param name="y">The y location of points, in local coordinates.</param> /// <param name="t">The thickness.</param> /// <param name="e">The elastic modulus.</param> /// <param name="nu">The Poisson ratio.</param> /// <returns></returns> internal static Matrix GetStiffnessMatrix(double[] x, double[] y, double t, double e, double nu, MembraneFormulation f) { double a;//area { var x31 = x[2] - x[0]; var x12 = x[0] - x[1]; var y31 = y[2] - y[0]; var y12 = y[0] - y[1]; a = 0.5 * Math.Abs(x31 * y12 - x12 * y31); } var d = GetDMatrix(e, nu, f); var b = GetBMatrix(0, 0, x, y);//only one Gaussian point var klocal = b.Transpose() * d * b; klocal.MultiplyByConstant(t * a); return(klocal); }