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

Method formResidAndTangent

SRC/element/shell/ShellNLDKGT.cpp:1380–1811  ·  view source on GitHub ↗

form residual and tangent

Source from the content-addressed store, hash-verified

1378
1379//form residual and tangent
1380void
1381ShellNLDKGT::formResidAndTangent( int tang_flag )
1382{
1383 //
1384 //six(6) nodal dof's ordered:
1385 //-----------
1386 //| u1 | <---- plate membrane
1387 //| u2 |
1388 //|----------|
1389 //| w = u3 | <----plate bending
1390 //| theta1 |
1391 //| theta2 |
1392 //|----------|
1393 //| theta3 | <- drill (tran from membrane)
1394 //|----------|
1395 // membrane strains ordered :
1396
1397
1398 static const int ndf = 6; //two membrane + 3 moment +drill
1399
1400 static const int nstress = 8; //3 membrane , 3 moment, 2 shear
1401
1402 static const int ngauss = 4;
1403
1404 static const int numnodes = 3;
1405
1406 int i,j,k,p,q;
1407 int jj,kk;
1408 int jlast,jnew; //add for geometric nonlinearity
1409
1410 int p1,q1;
1411
1412 int p2,q2;
1413
1414 int p3,q3;
1415
1416 int pp,qq;
1417
1418 int success;
1419
1420 double volume = 0.0;
1421
1422 static double xsj; //determinant jacobian matrix
1423
1424 static double dvol[ngauss]; //volume element
1425
1426 //add for geometric nonlinearity
1427 static Vector incrDisp(ndf); //total displacement
1428
1429 static Vector Cstrain(nstress);//commit strain last step/ add for geometric nonlinearity
1430
1431 static Vector strain(nstress); //strain
1432
1433 //add for geometric nonlinearity
1434 static Vector dstrain(nstress); //total strain increment
1435 static Vector dstrain_li(nstress); //linear incr strain
1436 static Vector dstrain_nl(3);//geometric nonlinear strain
1437

Callers

nothing calls this directly

Calls 7

ZeroMethod · 0.45
addMatrixProductMethod · 0.45
addMatrixVectorMethod · 0.45
updateMethod · 0.45
getSectionTangentMethod · 0.45

Tested by

no test coverage detected