const Vector & LagrangeSP_FE::getResidual(Integrator *theNewIntegrator) { double constraint = theSP->getValue(); int constrainedDOF = theSP->getDOF_Number(); const Vector &nodeDisp = theNode->getTrialDisp(); if (constrainedDOF < 0 || constrainedDOF >= nodeDisp.Size()) { opserr << "LagrangeSP_FE::formResidual() -"; opserr << " constrained DOF " << constrainedDOF << " ouside range\n"; (*resid)(1) = 0; } (*resid)(1) = alpha *(constraint - nodeDisp(constrainedDOF)); // opserr << "LagrangeSP_FE::getResidual() " << constraint << " " << nodeDisp(constrainedDOF) << " " << constrainedDOF << nodeDisp; // opserr << "LagrangeSP_FE::getResidual() " << *resid << this->getID(); return *resid; }
//print out element data void XC::Twenty_Node_Brick::Print( std::ostream &s, int flag ) { if(flag == 2) { s << "#20NodeBrick\n"; int i; const int numNodes = 20; const int nstress = 6 ; for(i=0; i<numNodes; i++) { const XC::Vector &nodeCrd = theNodes[i]->getCrds(); const XC::Vector &nodeDisp = theNodes[i]->getDisp(); s << "#NODE " << nodeCrd(0) << " " << nodeCrd(1) << " " << nodeCrd(2) << " " << nodeDisp(0) << " " << nodeDisp(1) << " " << nodeDisp(2) << std::endl; } // spit out the section location & invoke print on the scetion static Vector avgStress(7); static Vector avgStrain(nstress); avgStress= physicalProperties.getCommittedAvgStress(); avgStrain= physicalProperties.getCommittedAvgStrain(); s << "#AVERAGE_STRESS "; for(i=0; i<7; i++) s << avgStress(i) << " " ; s << std::endl; s << "#AVERAGE_STRAIN "; for(i=0; i<nstress; i++) s << avgStrain(i) << " " ; s << std::endl; /* phisicalProperties.Print(s,flag); */ } else { s << std::endl ; s << "20NodeBrick XC::Twenty_Node_Brick \n" ; s << "Element Number: " << this->getTag() << std::endl ; s << "Node 1 : " << theNodes.getTagNode(0) << std::endl ; s << "Node 2 : " << theNodes.getTagNode(1) << std::endl ; s << "Node 3 : " << theNodes.getTagNode(2) << std::endl ; s << "Node 4 : " << theNodes.getTagNode(3) << std::endl ; s << "Node 5 : " << theNodes.getTagNode(4) << std::endl ; s << "Node 6 : " << theNodes.getTagNode(5) << std::endl ; s << "Node 7 : " << theNodes.getTagNode(6) << std::endl ; s << "Node 8 : " << theNodes.getTagNode(7) << std::endl ; s << "Node 9 : " << theNodes.getTagNode(8) << std::endl ; s << "Node 10 : " << theNodes.getTagNode(9) << std::endl ; s << "Node 11 : " << theNodes.getTagNode(10) << std::endl ; s << "Node 12 : " << theNodes.getTagNode(11) << std::endl ; s << "Node 13 : " << theNodes.getTagNode(12) << std::endl ; s << "Node 14 : " << theNodes.getTagNode(13) << std::endl ; s << "Node 15 : " << theNodes.getTagNode(14) << std::endl ; s << "Node 16 : " << theNodes.getTagNode(15) << std::endl ; s << "Node 17 : " << theNodes.getTagNode(16) << std::endl ; s << "Node 18 : " << theNodes.getTagNode(17) << std::endl ; s << "Node 19 : " << theNodes.getTagNode(18) << std::endl ; s << "Node 20 : " << theNodes.getTagNode(19) << std::endl ; s << "Material XC::Information : \n " ; physicalProperties.Print( s, flag ) ; s << std::endl ; } }
void TwentyEightNodeBrickUP::Print( OPS_Stream &s, int flag ) { if (flag == 2) { s << "#20_8_BrickUP\n"; int i; const int numNodes = 20; const int nstress = 6 ; for (i=0; i<numNodes; i++) { const Vector &nodeCrd = nodePointers[i]->getCrds(); const Vector &nodeDisp = nodePointers[i]->getDisp(); s << "#NODE " << nodeCrd(0) << " " << nodeCrd(1) << " " << nodeCrd(2) << " " << nodeDisp(0) << " " << nodeDisp(1) << " " << nodeDisp(2) << endln; } // spit out the section location & invoke print on the scetion const int numMaterials = nintu; static Vector avgStress(7); static Vector avgStrain(nstress); avgStress.Zero(); avgStrain.Zero(); for (i=0; i<numMaterials; i++) { avgStress += materialPointers[i]->getStress(); avgStrain += materialPointers[i]->getStrain(); } avgStress /= numMaterials; avgStrain /= numMaterials; s << "#AVERAGE_STRESS "; for (i=0; i<7; i++) s << avgStress(i) << " " ; s << endln; s << "#AVERAGE_STRAIN "; for (i=0; i<nstress; i++) s << avgStrain(i) << " " ; s << endln; /* for (i=0; i<numMaterials; i++) { s << "#MATERIAL\n"; // materialPointers[i]->Print(s, flag); s << materialPointers[i]->getStress(); } */ } else { s << endln ; s << "20-8 Noded TwentyEightNodeBrickUP \n" ; s << "Element Number: " << this->getTag() << endln ; s << "Node 1 : " << connectedExternalNodes(0) << endln ; s << "Node 2 : " << connectedExternalNodes(1) << endln ; s << "Node 3 : " << connectedExternalNodes(2) << endln ; s << "Node 4 : " << connectedExternalNodes(3) << endln ; s << "Node 5 : " << connectedExternalNodes(4) << endln ; s << "Node 6 : " << connectedExternalNodes(5) << endln ; s << "Node 7 : " << connectedExternalNodes(6) << endln ; s << "Node 8 : " << connectedExternalNodes(7) << endln ; s << "Node 9 : " << connectedExternalNodes(8) << endln ; s << "Node 10 : " << connectedExternalNodes(9) << endln ; s << "Node 11 : " << connectedExternalNodes(10) << endln ; s << "Node 12 : " << connectedExternalNodes(11) << endln ; s << "Node 13 : " << connectedExternalNodes(12) << endln ; s << "Node 14 : " << connectedExternalNodes(13) << endln ; s << "Node 15 : " << connectedExternalNodes(14) << endln ; s << "Node 16 : " << connectedExternalNodes(15) << endln ; s << "Node 17 : " << connectedExternalNodes(16) << endln ; s << "Node 18 : " << connectedExternalNodes(17) << endln ; s << "Node 19 : " << connectedExternalNodes(18) << endln ; s << "Node 20 : " << connectedExternalNodes(19) << endln ; s << "Material Information : \n " ; materialPointers[0]->Print( s, flag ) ; s << endln ; } }