public override void Assemble(ref MatrixSparseLinkedList K, Matrix_Jagged Ke) { int Ip, Iq; int NNPE = ElementNodes.Length; for (int p = 0; p < NNPE; p++) { Node_ND_Unknowns_VectorField Unknown_p = (Node_ND_Unknowns_VectorField)ElementNodes[p].Unknowns; int NDFp = Unknown_p.UnknownDoFs.Length; for (int i = 0; i < NDFp; i++) { Ip = Unknown_p.UnknownDoFs[i]; for (int q = 0; q < NNPE; q++) { Node_ND_Unknowns_VectorField Unknown_q = (Node_ND_Unknowns_VectorField)ElementNodes[q].Unknowns; int NDFq = Unknown_q.UnknownDoFs.Length; for (int j = 0; j < NDFq; j++) { Iq = Unknown_q.UnknownDoFs[j]; K.AddToMatrixElement(Ip, Iq, Ke.Values[NNPE * p + i][NNPE * q + j]); } } } } }
public override void Assemble(ref Matrix_Jagged K, Matrix_Jagged Ke) { int Ip, Iq; int NNPE = ElementNodes.Length; for (int p = 0; p < NNPE; p++) { Node_ND_Unknowns_VectorField Unknown_p = (Node_ND_Unknowns_VectorField)ElementNodes[p].Unknowns; int NDFp = Unknown_p.UnknownDoFs.Length; for (int i = 0; i < NDFp; i++) { Ip = Unknown_p.UnknownDoFs[i]; for (int q = 0; q < NNPE; q++) { Node_ND_Unknowns_VectorField Unknown_q = (Node_ND_Unknowns_VectorField)ElementNodes[q].Unknowns; int NDFq = Unknown_q.UnknownDoFs.Length; for (int j = 0; j < NDFq; j++) { Iq = Unknown_q.UnknownDoFs[j]; K.Values[Ip][Iq] += Ke.Values[NDFp * p + i][NDFq * q + j]; } } } } }
public Vector[] Get_ElementNodal_U() { int NNPE = ElementNodes.Length; Vector[] Ue = new Vector[NNPE]; for (int p = 0; p < NNPE; p++) { Node_ND_Unknowns_VectorField Unknown_p = (Node_ND_Unknowns_VectorField)ElementNodes[p].Unknowns; Ue[p] = Unknown_p.Unknowns; } return(Ue); }
public override void Assemble(ref Vector F, Vector Fe) { int Ip; int NNPE = ElementNodes.Length; for (int p = 0; p < NNPE; p++) { Node_ND_Unknowns_VectorField Unknown_p = (Node_ND_Unknowns_VectorField)ElementNodes[p].Unknowns; int NDFp = Unknown_p.UnknownDoFs.Length; for (int i = 0; i < NDFp; i++) { Ip = Unknown_p.UnknownDoFs[i]; F.Values[Ip] += Fe.Values[NDFp * p + i]; } } }
public Vector[] Get_ElementNodal_U(Vector GlobalU) { int NNPE = ElementNodes.Length; Vector[] Ue = new Vector[NNPE]; for (int p = 0; p < NNPE; p++) { Node_ND_Unknowns_VectorField Unknown_p = (Node_ND_Unknowns_VectorField)ElementNodes[p].Unknowns; int NDFp = Unknown_p.UnknownDoFs.Length; for (int i = 0; i < NDFp; i++) { Ue[p].Values[i] = GlobalU.Values[Unknown_p.UnknownDoFs[i]]; } } return(Ue); }