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

Method setDomain

SRC/element/UWelements/SSPquadUP.cpp:281–332  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279}
280
281void
282SSPquadUP::setDomain(Domain *theDomain)
283{
284 theNodes[0] = theDomain->getNode(mExternalNodes(0));
285 theNodes[1] = theDomain->getNode(mExternalNodes(1));
286 theNodes[2] = theDomain->getNode(mExternalNodes(2));
287 theNodes[3] = theDomain->getNode(mExternalNodes(3));
288
289 for (int i = 0; i < 4; i++) {
290 if (theNodes[i] == 0) {
291 return; // don't go any further - otherwise segmentation fault
292 }
293 }
294
295 // initialize coordinate vectors
296 const Vector &mIcrd_1 = theNodes[0]->getCrds();
297 const Vector &mIcrd_2 = theNodes[1]->getCrds();
298 const Vector &mIcrd_3 = theNodes[2]->getCrds();
299 const Vector &mIcrd_4 = theNodes[3]->getCrds();
300
301 // coordinate matrix
302 mNodeCrd(0,0) = mIcrd_1(0);
303 mNodeCrd(1,0) = mIcrd_1(1);
304 mNodeCrd(0,1) = mIcrd_2(0);
305 mNodeCrd(1,1) = mIcrd_2(1);
306 mNodeCrd(0,2) = mIcrd_3(0);
307 mNodeCrd(1,2) = mIcrd_3(1);
308 mNodeCrd(0,3) = mIcrd_4(0);
309 mNodeCrd(1,3) = mIcrd_4(1);
310
311 // establish jacobian terms
312 J0 = ((mNodeCrd(0,1)-mNodeCrd(0,3))*(mNodeCrd(1,2)-mNodeCrd(1,0))+(mNodeCrd(0,2)-mNodeCrd(0,0))*(mNodeCrd(1,3)-mNodeCrd(1,1)))/8;
313 J1 = ((mNodeCrd(0,1)-mNodeCrd(0,0))*(mNodeCrd(1,2)-mNodeCrd(1,3))+(mNodeCrd(0,2)-mNodeCrd(0,3))*(mNodeCrd(1,0)-mNodeCrd(1,1)))/24;
314 J2 = ((mNodeCrd(0,0)-mNodeCrd(0,3))*(mNodeCrd(1,2)-mNodeCrd(1,1))+(mNodeCrd(0,2)-mNodeCrd(0,1))*(mNodeCrd(1,3)-mNodeCrd(1,0)))/24;
315
316 // establish stabilization terms (based on initial material tangent, only need to compute once)
317 GetStab();
318
319 // establish mass matrix for solid phase (constant, only need to compute once)
320 GetSolidMass();
321
322 // establish permeability matrix (constant, only need to compute once)
323 GetPermeabilityMatrix();
324
325 //LM change
326 // Compute consistent nodal loads due to surface pressure (at any side)
327 this->setPressureLoadAtNodes();
328 //LM change
329
330 // call the base-class method
331 this->DomainComponent::setDomain(theDomain);
332}
333
334int
335SSPquadUP::commitState(void)

Callers

nothing calls this directly

Calls 3

getCrdsMethod · 0.80
getNodeMethod · 0.45

Tested by

no test coverage detected