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 }; } }
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)); }
public Hexa8Fixed(IContinuumMaterial3D material, IElementDofEnumerator dofEnumerator) : this(material) { this.dofEnumerator = dofEnumerator; }
public ContinuumElement3DFactory(IContinuumMaterial3D commonMaterial, IDynamicMaterial commonDynamicProperties) { this.commonDynamicProperties = commonDynamicProperties; this.commonMaterial = commonMaterial; }
public ContinuumElement3DNonLinear CreateNonLinearElement(CellType cellType, IReadOnlyList <Node> nodes, IContinuumMaterial3D commonMaterial, DynamicMaterial commonDynamicProperties) { return(new ContinuumElement3DNonLinear(nodes, commonMaterial, integrationsForStiffness[cellType], interpolations[cellType])); }