コード例 #1
0
ファイル: LagrangeSP_FE.cpp プロジェクト: aceskpark/osfeo
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;
}
コード例 #2
0
ファイル: Twenty_Node_Brick.cpp プロジェクト: lcpt/xc
//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 ;
        }
}
コード例 #3
0
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 ;

	}

}