// Compute thermal vector public override void thermalVector() { for (int i = 0; i < 60; i++) { evec[i] = 0.0; } mat = (Material)fem.materials[matName]; double alpha = mat.getAlpha(); double lambda = mat.getLambda(); double mu = mat.getMu(); double g = 3.0 * lambda + 2.0 * mu; for (int ip = 0; ip < gh.nIntPoints; ip++) { ShapeQuad3D.shape(gh.xii[ip], gh.eti[ip], gh.zei[ip], ind, an); // Temperature at integration point double t = 0; for (int i = 0; i < 20; i++) { t += an[i] * dtn[i]; } double det = ShapeQuad3D.deriv(gh.xii[ip], gh.eti[ip], gh.zei[ip], ind, xy, dnxy); double dv = g * alpha * t * det * gh.wi[ip]; for (int i = 0; i < 20; i++) { for (int j = 0; j < 3; j++) { evec[i * 3 + j] += dnxy[i][j] * dv; } } } }
// Returns temperature at integration point (stress) public override double getTemperatureAtIntPoint(int ip) { ShapeQuad3D.shape(gs.xii[ip], gs.eti[ip], gs.zei[ip], ind, an); double t = 0; for (int i = 0; i < 20; i++) { t += an[i] * dtn[i]; } return(t); }