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

Method setDomain

SRC/element/shell/ShellMITC4Thermal.cpp:219–261  ·  view source on GitHub ↗

set domain

Source from the content-addressed store, hash-verified

217
218//set domain
219void ShellMITC4Thermal::setDomain( Domain *theDomain )
220{
221 int i, j ;
222 static Vector eig(3) ;
223 static Matrix ddMembrane(3,3) ;
224
225 //node pointers
226 for ( i = 0; i < 4; i++ ) {
227 nodePointers[i] = theDomain->getNode( connectedExternalNodes(i) ) ;
228 if (nodePointers[i] == 0) {
229 opserr << "ShellMITC4Thermal::setDomain - no node " << connectedExternalNodes(i);
230 opserr << " exists in the model\n";
231 }
232 const Vector &nodeDisp=nodePointers[i]->getTrialDisp();
233 if (nodeDisp.Size() != 6) {
234 opserr << "ShellMITC4Thermal::setDomain - node " << connectedExternalNodes(i);
235 opserr << " NEEDS 6 dof - GARBAGE RESULTS or SEGMENTATION FAULT WILL FOLLOW\n";
236 }
237 }
238
239 //compute drilling stiffness penalty parameter
240 const Matrix &dd = materialPointers[0]->getInitialTangent( ) ;
241
242 //assemble ddMembrane ;
243 for ( i = 0; i < 3; i++ ) {
244 for ( j = 0; j < 3; j++ )
245 ddMembrane(i,j) = dd(i,j) ;
246 } //end for i
247
248 //eigenvalues of ddMembrane
249 eig = LovelyEig( ddMembrane ) ;
250
251 //set ktt
252 //Ktt = dd(2,2) ; //shear modulus
253 Ktt = min( eig(2), min( eig(0), eig(1) ) ) ;
254 //Ktt = dd(2,2);
255
256 //basis vectors and local coordinates
257 computeBasis( ) ;
258
259 this->DomainComponent::setDomain(theDomain);
260
261}
262
263
264//get the number of external nodes

Callers

nothing calls this directly

Calls 4

LovelyEigFunction · 0.85
getNodeMethod · 0.45
SizeMethod · 0.45
getInitialTangentMethod · 0.45

Tested by

no test coverage detected