MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / incrTrialDisp

Method incrTrialDisp

SRC/domain/node/Node.cpp:831–868  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

829}
830
831int
832Node::incrTrialDisp(const Vector &incrDispl)
833{
834 // check vector arg is of correct size
835 if (incrDispl.Size() != numberDOF) {
836 opserr << "WARNING Node::incrTrialDisp() - incompatible sizes\n";
837 return -2;
838 }
839
840 if (rotation != nullptr && this->getNumberDOF() >= 6)
841 rotation[1] = rotation[1]*Versor::from_vector(&disp[3*numberDOF+3]);
842
843
844 // create a copy if no trial exists and add committed
845 if (trialDisp == 0) {
846 if (this->createDisp() < 0) {
847 opserr << "FATAL Node::incrTrialDisp() - ran out of memory\n";
848 exit(-1);
849 }
850 for (int i = 0; i<numberDOF; i++) {
851 double incrDispI = incrDispl(i);
852 disp[i] = incrDispI;
853 disp[i+2*numberDOF] = incrDispI;
854 disp[i+3*numberDOF] = incrDispI;
855 }
856 return 0;
857 }
858
859 // otherwise set trial = incr + trial
860 for (int i = 0; i<numberDOF; i++) {
861 double incrDispI = incrDispl(i);
862 disp[i] += incrDispI;
863 disp[i+2*numberDOF] += incrDispI;
864 disp[i+3*numberDOF] = incrDispI;
865 }
866
867 return 0;
868}
869
870
871int

Callers 3

incrNodeDispMethod · 0.45
setNodeDispMethod · 0.45
incrNodeDispMethod · 0.45

Calls 4

getNumberDOFMethod · 0.95
createDispMethod · 0.95
exitFunction · 0.85
SizeMethod · 0.45

Tested by

no test coverage detected