Exemplo n.º 1
0
 public IntegrationForCrackPropagation2D(
     IIntegrationStrategy2D <XContinuumElement2D> integrationForEnrichedElements,
     IIntegrationStrategy2D <XContinuumElement2D> integrationForTipBlendingElements)
 {
     this.integrationForEnrichedElements    = integrationForEnrichedElements;
     this.integrationForTipBlendingElements = integrationForTipBlendingElements;
 }
 public XContinuumElement2DFactory(IIntegrationStrategy2D <XContinuumElement2D> xIntegrationStrategy,
                                   IIntegrationStrategy2D <XContinuumElement2D> jIntegralStrategy, IMaterialField2D commonMaterial)
 {
     this.commonMaterial       = commonMaterial;
     this.xIntegrationStrategy = xIntegrationStrategy;
     this.jIntegralStrategy    = jIntegralStrategy;
 }
Exemplo n.º 3
0
 public DoubleCantileverBeam()
 {
     this.material    = HomogeneousElasticMaterial2D.CreateMaterialForPlaneStrain(E, v);
     this.integration = new IntegrationForCrackPropagation2D(
         new RectangularSubgridIntegration2D <XContinuumElement2D>(8, GaussLegendre2D.GetQuadratureWithOrder(2, 2)),
         new RectangularSubgridIntegration2D <XContinuumElement2D>(8, GaussLegendre2D.GetQuadratureWithOrder(2, 2)));
     this.jIntegration =
         new RectangularSubgridIntegration2D <XContinuumElement2D>(8, GaussLegendre2D.GetQuadratureWithOrder(4, 4));
     this.beamBoundary = new Rectangular2DBoundary(0, beamLength, 0, beamHeight);
 }
Exemplo n.º 4
0
        private readonly IDofType[][] standardDofTypes; //TODO: this should not be stored for each element. Instead store it once for each Quad4, Tri3, etc. Otherwise create it on the fly.

        public XContinuumElement2D(int id, IReadOnlyList <XNode> nodes, IIsoparametricInterpolation2D interpolation,
                                   IGaussPointExtrapolation2D gaussPointExtrapolation, IQuadrature2D standardQuadrature,
                                   IIntegrationStrategy2D <XContinuumElement2D> integrationStrategy,
                                   IIntegrationStrategy2D <XContinuumElement2D> jIntegralStrategy, IMaterialField2D material)
        {
            this.id                      = id;
            this.Nodes                   = nodes;
            this.Interpolation           = interpolation;
            this.GaussPointExtrapolation = gaussPointExtrapolation;
            this.StandardQuadrature      = standardQuadrature;
            this.IntegrationStrategy     = integrationStrategy;
            this.JintegralStrategy       = jIntegralStrategy;
            this.Material                = material;

            this.NumStandardDofs = 2 * nodes.Count;
            standardDofTypes     = new IDofType[nodes.Count][];
            for (int i = 0; i < nodes.Count; ++i)
            {
                standardDofTypes[i] = new IDofType[] { StructuralDof.TranslationX, StructuralDof.TranslationY };
            }

            //OBSOLETE: Elements access their enrichments from nodes now.
            //this.EnrichmentItems = new List<IEnrichmentItem2D>();
        }