public Hexa8u8p(IIsotropicContinuumMaterial3D material) { throw new NotImplementedException(); //materialsAtGaussPoints = new IIsotropicContinuumMaterial3D[Hexa8u8p.iInt3]; //for (int i = 0; i < Hexa8u8p.iInt3; i++) // materialsAtGaussPoints[i] = (IIsotropicContinuumMaterial3D)material.Clone(); }
protected Beam3DCorotationalAbstract(IList <Node> nodes, IIsotropicContinuumMaterial3D material, double density, BeamSection3D beamSection) { this.nodes = nodes; this.material = material; this.density = density; this.beamSection = beamSection; this.initialLength = Math.Sqrt(Math.Pow(nodes[0].X - nodes[1].X, 2) + Math.Pow(nodes[0].Y - nodes[1].Y, 2) + Math.Pow(nodes[0].Z - nodes[1].Z, 2)); this.currentLength = this.initialLength; this.currentRotationMatrix = Matrix.CreateZero(AXIS_COUNT, AXIS_COUNT); this.naturalDeformations = new double[NATURAL_DEFORMATION_COUNT]; this.beamAxisX = new double[AXIS_COUNT]; this.beamAxisY = new double[AXIS_COUNT]; this.beamAxisZ = new double[AXIS_COUNT]; }
/** * Creates a new instance of {@link Beam3DCorotationalIncremental} class. * * @param nodes * The element nodes * @param material * The element material * @param density * The element density * @param beamSection * The beam section. */ public Beam3DCorotationalQuaternion(IList <Node> nodes, IIsotropicContinuumMaterial3D material, double density, BeamSection3D beamSection) : base(nodes, material, density, beamSection) { this.displacementsOfCurrentIncrement = new double[FREEDOM_DEGREE_COUNT]; this.lastDisplacements = new double[FREEDOM_DEGREE_COUNT]; this.currentDisplacements = new double[FREEDOM_DEGREE_COUNT]; this.quaternionLastNodeA = Quaternion.OfZeroAngle(); this.quaternionLastNodeB = Quaternion.OfZeroAngle(); this.quaternionCurrentNodeA = Quaternion.OfZeroAngle(); this.quaternionCurrentNodeB = Quaternion.OfZeroAngle(); this.initialAxisX = new double[AXIS_COUNT]; this.initialAxisY = new double[AXIS_COUNT]; this.initialAxisZ = new double[AXIS_COUNT]; this.currentBeamAxis = new double[AXIS_COUNT]; this.InitializeElementAxes(); }
internal static int DefineContinuumElement3DNonLinear(Model model, IIsotropicContinuumMaterial3D material3D, IDynamicMaterial dynamicMaterial) { // Node creation var node1 = new Node(id: 1, x: 0.0, y: 0.0, z: 0.0); var node2 = new Node(id: 2, x: 100.0, y: 0.0, z: 0.0); var node3 = new Node(id: 3, x: 0.0, y: 100.0, z: 0.0); var node4 = new Node(id: 4, x: 100.0, y: 100.0, z: 0.0); var node5 = new Node(id: 5, x: 0.0, y: 0.0, z: 100.0); var node6 = new Node(id: 6, x: 100.0, y: 0.0, z: 100.0); var node7 = new Node(id: 7, x: 0.0, y: 100.0, z: 100.0); var node8 = new Node(id: 8, x: 100.0, y: 100.0, z: 100.0); // Create List of nodes IList <Node> nodes = new List <Node>(); nodes.Add(node1); nodes.Add(node2); nodes.Add(node3); nodes.Add(node4); nodes.Add(node5); nodes.Add(node6); nodes.Add(node7); nodes.Add(node8); numberOfNodes = nodes.Count; // Add nodes to the nodes dictonary of the model for (int i = 0; i < numberOfNodes; ++i) { model.NodesDictionary.Add(i, nodes[i]); } int[][] connectivityMatrix = new int[8][]; connectivityMatrix[0] = new int[] { 1, 1, 2, 4, 3, 5, 6, 8, 7 }; var factory = new ContinuumElement3DNonLinearFactory(material3D, dynamicMaterial); for (int i = 0; i < 1; i++) { List <Node> elementNodeSet = new List <Node>(8); for (int j = 1; j < 9; j++) { elementNodeSet.Add((Node)model.NodesDictionary[connectivityMatrix[i][j] - 1]); } var hexa8element = new Element() { ID = connectivityMatrix[i][0], ElementType = factory.CreateElement(CellType.Hexa8, elementNodeSet), }; for (int j = 1; j < 9; j++) { hexa8element.AddNode(model.NodesDictionary[connectivityMatrix[i][j] - 1]); } model.ElementsDictionary.Add(hexa8element.ID, hexa8element); model.SubdomainsDictionary[0].Elements.Add(hexa8element); } return(numberOfNodes); }
public Hexa8u8p(IIsotropicContinuumMaterial3D material, IElementDofEnumerator dofEnumerator) : this(material) { this.dofEnumerator = dofEnumerator; }