public override bool Equals(object obj) { EmbeddedNode e = obj as EmbeddedNode; if (e == null) { return(false); } return(e.Node == this.node && e.EmbeddedInElement == embeddedInElement); }
public double[][] GetTransformationVector(EmbeddedNode node) { CheckElementType(node.EmbeddedInElement.ElementType); const int commonDofsPerNode = 3; const int hostDofsPerNode = 3; const int hostShapeFunctionLength = 8; double[] hostShapeFunctions = ((IEmbeddedHostElement)node.EmbeddedInElement.ElementType).GetShapeFunctionsForNode(node.EmbeddedInElement, node); var transformation = new double[commonDofsPerNode][]; for (int j = 0; j < commonDofsPerNode; j++) { transformation[j] = new double[hostShapeFunctionLength * hostDofsPerNode]; for (int k = 0; k < hostShapeFunctionLength; k++) { transformation[j][hostDofsPerNode * k + j] = hostShapeFunctions[k]; } } return(transformation); }
public double[][] GetTransformationVector(EmbeddedNode node) { //CheckElementType(node.EmbeddedInElement.ElementType); const int commonDofsPerNode = 1; const int hostDofsPerNode = 1; const int hostShapeFunctionLength = 4; //TODO: Use the interpolation for this. Probably for the next line too. double[] hostShapeFunctions = ((IEmbeddedHostElement)node.EmbeddedInElement.ElementType).GetShapeFunctionsForNode(node.EmbeddedInElement, node); var transformation = new double[commonDofsPerNode][]; for (int j = 0; j < commonDofsPerNode; j++) { transformation[j] = new double[hostShapeFunctionLength * hostDofsPerNode]; for (int k = 0; k < hostShapeFunctionLength; k++) { transformation[j][hostDofsPerNode * k + j] = hostShapeFunctions[k]; } } return(transformation); }
public IReadOnlyList <IReadOnlyList <IDofType> > GetDOFTypesOfHost(EmbeddedNode node) { return(node.EmbeddedInElement.ElementType.GetElementDofTypes(node.EmbeddedInElement)); }
private double[][] GetTransformationVectorForTranslationsOnly(EmbeddedNode node) { if (node.EmbeddedInElement.ElementType is Hexa8 == false && node.EmbeddedInElement.ElementType is Hexa8Fixed == false && node.EmbeddedInElement.ElementType is Hexa8NonLinear == false && node.EmbeddedInElement.ElementType is Hexa8u8p == false) { throw new ArgumentException("Host element is not Hexa8."); } double[] hostShapeFunctions = ((IEmbeddedHostElement)node.EmbeddedInElement.ElementType).GetShapeFunctionsForNode(node.EmbeddedInElement, node); var transformation = new double[commonDofsPerNode + rotationalDofsPerNode][]; for (int j = 0; j < commonDofsPerNode; j++) { transformation[j] = new double[hostShapeFunctionLength * hostDofsPerNode]; for (int k = 0; k < hostShapeFunctionLength; k++) { transformation[j][hostDofsPerNode * k + j] = hostShapeFunctions[k]; } } for (int j = 0; j < rotationalDofsPerNode; j++) { transformation[commonDofsPerNode + j] = new double[hostShapeFunctionLength * hostDofsPerNode]; } var jacobianAndInverse = GetJacobiansFromShapeFunctionsVector(hostShapeFunctions); transformation[commonDofsPerNode - 1 + 1][0] = 0; transformation[commonDofsPerNode - 1 + 1][1] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 9] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 1] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 17]; transformation[commonDofsPerNode - 1 + 1][2] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 9] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 1] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 17]; transformation[commonDofsPerNode - 1 + 1][3] = 0; transformation[commonDofsPerNode - 1 + 1][4] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 10] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 2] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 18]; transformation[commonDofsPerNode - 1 + 1][5] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 10] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 2] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 18]; transformation[commonDofsPerNode - 1 + 1][6] = 0; transformation[commonDofsPerNode - 1 + 1][7] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 11] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 3] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 19]; transformation[commonDofsPerNode - 1 + 1][8] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 11] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 3] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 19]; transformation[commonDofsPerNode - 1 + 1][9] = 0; transformation[commonDofsPerNode - 1 + 1][10] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 12] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 4] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 20]; transformation[commonDofsPerNode - 1 + 1][11] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 12] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 4] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 20]; transformation[commonDofsPerNode - 1 + 1][12] = 0; transformation[commonDofsPerNode - 1 + 1][13] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 13] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 5] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 21]; transformation[commonDofsPerNode - 1 + 1][14] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 13] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 5] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 21]; transformation[commonDofsPerNode - 1 + 1][15] = 0; transformation[commonDofsPerNode - 1 + 1][16] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 14] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 6] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 22]; transformation[commonDofsPerNode - 1 + 1][17] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 14] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 6] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 22]; transformation[commonDofsPerNode - 1 + 1][18] = 0; transformation[commonDofsPerNode - 1 + 1][19] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 15] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 7] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 23]; transformation[commonDofsPerNode - 1 + 1][20] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 15] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 7] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 23]; transformation[commonDofsPerNode - 1 + 1][21] = 0; transformation[commonDofsPerNode - 1 + 1][22] = -jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 16] - jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 8] - jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 24]; transformation[commonDofsPerNode - 1 + 1][23] = jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 16] + jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 8] + jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 24]; transformation[commonDofsPerNode - 1 + 2][0] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 9] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 1] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 17]; transformation[commonDofsPerNode - 1 + 2][1] = 0; transformation[commonDofsPerNode - 1 + 2][2] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 9] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 1] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 17]; transformation[commonDofsPerNode - 1 + 2][3] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 10] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 2] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 18]; transformation[commonDofsPerNode - 1 + 2][4] = 0; transformation[commonDofsPerNode - 1 + 2][5] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 10] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 2] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 18]; transformation[commonDofsPerNode - 1 + 2][6] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 11] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 3] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 19]; transformation[commonDofsPerNode - 1 + 2][7] = 0; transformation[commonDofsPerNode - 1 + 2][8] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 11] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 3] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 19]; transformation[commonDofsPerNode - 1 + 2][9] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 12] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 4] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 20]; transformation[commonDofsPerNode - 1 + 2][10] = 0; transformation[commonDofsPerNode - 1 + 2][11] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 12] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 4] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 20]; transformation[commonDofsPerNode - 1 + 2][12] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 13] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 5] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 21]; transformation[commonDofsPerNode - 1 + 2][13] = 0; transformation[commonDofsPerNode - 1 + 2][14] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 13] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 5] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 21]; transformation[commonDofsPerNode - 1 + 2][15] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 14] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 6] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 22]; transformation[commonDofsPerNode - 1 + 2][16] = 0; transformation[commonDofsPerNode - 1 + 2][17] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 14] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 6] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 22]; transformation[commonDofsPerNode - 1 + 2][18] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 15] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 7] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 23]; transformation[commonDofsPerNode - 1 + 2][19] = 0; transformation[commonDofsPerNode - 1 + 2][20] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 15] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 7] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 23]; transformation[commonDofsPerNode - 1 + 2][21] = jacobianAndInverse.Item2[2, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 16] + jacobianAndInverse.Item2[2, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 8] + jacobianAndInverse.Item2[2, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 24]; transformation[commonDofsPerNode - 1 + 2][22] = 0; transformation[commonDofsPerNode - 1 + 2][23] = -jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 16] - jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 8] - jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 24]; transformation[commonDofsPerNode - 1 + 3][0] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 9] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 1] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 17]; transformation[commonDofsPerNode - 1 + 3][1] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 9] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 1] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 17]; transformation[commonDofsPerNode - 1 + 3][2] = 0; transformation[commonDofsPerNode - 1 + 3][3] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 10] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 2] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 18]; transformation[commonDofsPerNode - 1 + 3][4] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 10] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 2] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 18]; transformation[commonDofsPerNode - 1 + 3][5] = 0; transformation[commonDofsPerNode - 1 + 3][6] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 11] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 3] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 19]; transformation[commonDofsPerNode - 1 + 3][7] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 11] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 3] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 19]; transformation[commonDofsPerNode - 1 + 3][8] = 0; transformation[commonDofsPerNode - 1 + 3][9] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 12] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 4] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 20]; transformation[commonDofsPerNode - 1 + 3][10] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 12] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 4] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 20]; transformation[commonDofsPerNode - 1 + 3][11] = 0; transformation[commonDofsPerNode - 1 + 3][12] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 13] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 5] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 21]; transformation[commonDofsPerNode - 1 + 3][13] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 13] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 5] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 21]; transformation[commonDofsPerNode - 1 + 3][14] = 0; transformation[commonDofsPerNode - 1 + 3][15] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 14] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 6] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 22]; transformation[commonDofsPerNode - 1 + 3][16] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 14] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 6] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 22]; transformation[commonDofsPerNode - 1 + 3][17] = 0; transformation[commonDofsPerNode - 1 + 3][18] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 15] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 7] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 23]; transformation[commonDofsPerNode - 1 + 3][19] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 15] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 7] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 23]; transformation[commonDofsPerNode - 1 + 3][20] = 0; transformation[commonDofsPerNode - 1 + 3][21] = -jacobianAndInverse.Item2[1, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 16] - jacobianAndInverse.Item2[1, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 8] - jacobianAndInverse.Item2[1, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 24]; transformation[commonDofsPerNode - 1 + 3][22] = jacobianAndInverse.Item2[0, 1] * hostShapeFunctions[hostShapeFunctionLength - 1 + 16] + jacobianAndInverse.Item2[0, 0] * hostShapeFunctions[hostShapeFunctionLength - 1 + 8] + jacobianAndInverse.Item2[0, 2] * hostShapeFunctions[hostShapeFunctionLength - 1 + 24]; transformation[commonDofsPerNode - 1 + 3][23] = 0; for (int j = commonDofsPerNode; j < commonDofsPerNode + 3; j++) { for (int k = 0; k < 24; k++) { transformation[j][k] *= 0.5; } } return(transformation); }
public double[][] GetTransformationVector(EmbeddedNode node) { return(GetTransformationVectorForTranslationsOnly(node)); }