示例#1
0
        public ContinuumElement3DNonLinear(IReadOnlyList <Node> nodes, IIsoparametricInterpolation3D interpolation,
                                           IQuadrature3D quadratureForStiffness, IQuadrature3D quadratureForMass,
                                           IGaussPointExtrapolation3D gaussPointExtrapolation,
                                           IContinuumMaterial3D material, IDynamicMaterial dynamicProperties)
        {
            this.dynamicProperties           = dynamicProperties;
            this.Interpolation               = interpolation;
            this.QuadratureForConsistentMass = quadratureForMass;
            this.nGaussPoints           = quadratureForStiffness.IntegrationPoints.Count;
            this.QuadratureForStiffness = quadratureForStiffness;
            this.Nodes = nodes;

            materialsAtGaussPoints = new IContinuumMaterial3D[nGaussPoints];
            for (int i = 0; i < nGaussPoints; i++)
            {
                materialsAtGaussPoints[i] = (IContinuumMaterial3D)material.Clone();
            }

            dofTypes = new IDofType[nodes.Count][];
            for (int i = 0; i < nodes.Count; i++)
            {
                dofTypes[i] = new IDofType[]
                {
                    StructuralDof.TranslationX, StructuralDof.TranslationY, StructuralDof.TranslationZ
                };
            }
        }
示例#2
0
 public Hexa8Fixed(IContinuumMaterial3D material)
 {
     materialsAtGaussPoints = new IContinuumMaterial3D[iInt3];
     for (int i = 0; i < iInt3; i++)
     {
         materialsAtGaussPoints[i] = (IContinuumMaterial3D)material.Clone();
     }
 }
        public Hexa8NonLinear(IContinuumMaterial3D material, IQuadrature3D quadratureForStiffness)
        {
            this.nGaussPoints           = quadratureForStiffness.IntegrationPoints.Count;
            this.QuadratureForStiffness = quadratureForStiffness;
            this.Interpolation          = InterpolationHexa8Reverse.UniqueInstance;

            materialsAtGaussPoints = new IContinuumMaterial3D[nGaussPoints];
            for (int i = 0; i < nGaussPoints; i++)
            {
                materialsAtGaussPoints[i] = (IContinuumMaterial3D)material.Clone();
            }
        }
        private ContinuumElement3D CreateElement(CellType cellType, IReadOnlyList <Node> nodes,
                                                 IContinuumMaterial3D commonMaterial, IDynamicMaterial commonDynamicProperties)
        {
            int numGPs = integrationsForStiffness[cellType].IntegrationPoints.Count;
            var materialsAtGaussPoints = new IContinuumMaterial3D[numGPs];

            for (int gp = 0; gp < numGPs; ++gp)
            {
                materialsAtGaussPoints[gp] = (IContinuumMaterial3D)commonMaterial.Clone();
            }
            return(CreateElement(cellType, nodes, materialsAtGaussPoints, commonDynamicProperties));
        }
示例#5
0
 public Hexa8Fixed(IContinuumMaterial3D material, IElementDofEnumerator dofEnumerator)
     : this(material)
 {
     this.dofEnumerator = dofEnumerator;
 }
 public ContinuumElement3DFactory(IContinuumMaterial3D commonMaterial, IDynamicMaterial commonDynamicProperties)
 {
     this.commonDynamicProperties = commonDynamicProperties;
     this.commonMaterial          = commonMaterial;
 }
示例#7
0
 public ContinuumElement3DNonLinear CreateNonLinearElement(CellType cellType, IReadOnlyList <Node> nodes,
                                                           IContinuumMaterial3D commonMaterial, DynamicMaterial commonDynamicProperties)
 {
     return(new ContinuumElement3DNonLinear(nodes, commonMaterial, integrationsForStiffness[cellType], interpolations[cellType]));
 }