public void EvalProps() { double vv; vSum.VZero(); vvSum = 0; foreach (Node node in nodes) { vSum.VVAdd(node.Getv); vv = node.Getv.x * node.Getv.x + node.Getv.y * node.Getv.y + node.Getv.z * node.Getv.z; vvSum += vv; } kinEnergy.SetVal(0.5 * vvSum / nMol); totEnergy.SetVal(kinEnergy.GetVal + uSum / nMol); pressure.SetVal(density * (vvSum + virSum) / (nMol * NDIM)); }
public void EvalProps() { double vv; vSum.VZero(); vvSum = 0; avgChainLen = 0; double chainLen = 0; int chainNum = 0; VecR dr; foreach (Node node in nodes) { vSum.VVAdd(node.Getv); vv = node.Getv.x * node.Getv.x + node.Getv.y * node.Getv.y + node.Getv.z * node.Getv.z; vvSum += vv; } kinEnergy.SetVal(0.5 * vvSum / nMol); totEnergy.SetVal(kinEnergy.GetVal + uSum / nMol); pressure.SetVal(density * (vvSum + virSum) / (nMol * NDIM)); for (int j1 = 0; j1 < nodes.Count; j1++) { foreach (int j2 in nodes[j1].GetCon) { if (j1 < j2) { dr.x = nodes[j1].Getr.x - nodes[j2].Getr.x; dr.y = nodes[j1].Getr.y - nodes[j2].Getr.y; dr.z = nodes[j1].Getr.z - nodes[j2].Getr.z; dr.VWrap(region); chainLen += dr.x * dr.x + dr.y * dr.y + dr.z * dr.z; chainNum++; } } } avgChainLen = chainLen / chainNum; }