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

Method GetPermeabilityMatrix

SRC/element/UWelements/SSPbrickUP.cpp:2309–2386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2307}
2308
2309void
2310SSPbrickUP::GetPermeabilityMatrix(void)
2311// this function computes the permeability matrix for the element
2312{
2313 Matrix k(3,3);
2314 double root3 = 8.0/(sqrt(3.0));
2315 Vector s = root3*xi;
2316 Vector t = root3*et;
2317 Vector u = root3*ze;
2318 Matrix dNloc(8,3);
2319 Matrix Jmat(3,3);
2320 Matrix Jinv(3,3);
2321 Matrix dN(8,3);
2322 Matrix dNT(3,8);
2323 mPerm.Zero();
2324 mPressStab.Zero();
2325
2326 // permeability tensor
2327 k(0,0) = perm[0];
2328 k(1,1) = perm[1];
2329 k(2,2) = perm[2];
2330
2331 for (int i = 0; i < 8; i++) {
2332
2333 double dsN1 = -0.125*(1 - t(i))*(1 - u(i));
2334 double dsN2 = 0.125*(1 - t(i))*(1 - u(i));
2335 double dsN3 = 0.125*(1 + t(i))*(1 - u(i));
2336 double dsN4 = -0.125*(1 + t(i))*(1 - u(i));
2337 double dsN5 = -0.125*(1 - t(i))*(1 + u(i));
2338 double dsN6 = 0.125*(1 - t(i))*(1 + u(i));
2339 double dsN7 = 0.125*(1 + t(i))*(1 + u(i));
2340 double dsN8 = -0.125*(1 + t(i))*(1 + u(i));
2341
2342 double dtN1 = -0.125*(1 - s(i))*(1 - u(i));
2343 double dtN2 = -0.125*(1 + s(i))*(1 - u(i));
2344 double dtN3 = 0.125*(1 + s(i))*(1 - u(i));
2345 double dtN4 = 0.125*(1 - s(i))*(1 - u(i));
2346 double dtN5 = -0.125*(1 - s(i))*(1 + u(i));
2347 double dtN6 = -0.125*(1 + s(i))*(1 + u(i));
2348 double dtN7 = 0.125*(1 + s(i))*(1 + u(i));
2349 double dtN8 = 0.125*(1 - s(i))*(1 + u(i));
2350
2351 double duN1 = -0.125*(1 - s(i))*(1 - t(i));
2352 double duN2 = -0.125*(1 + s(i))*(1 - t(i));
2353 double duN3 = -0.125*(1 + s(i))*(1 + t(i));
2354 double duN4 = -0.125*(1 - s(i))*(1 + t(i));
2355 double duN5 = 0.125*(1 - s(i))*(1 - t(i));
2356 double duN6 = 0.125*(1 + s(i))*(1 - t(i));
2357 double duN7 = 0.125*(1 + s(i))*(1 + t(i));
2358 double duN8 = 0.125*(1 - s(i))*(1 + t(i));
2359
2360 dNloc(0,0) = dsN1; dNloc(0,1) = dtN1; dNloc(0,2) = duN1;
2361 dNloc(1,0) = dsN2; dNloc(1,1) = dtN2; dNloc(1,2) = duN2;
2362 dNloc(2,0) = dsN3; dNloc(2,1) = dtN3; dNloc(2,2) = duN3;
2363 dNloc(3,0) = dsN4; dNloc(3,1) = dtN4; dNloc(3,2) = duN4;
2364 dNloc(4,0) = dsN5; dNloc(4,1) = dtN5; dNloc(4,2) = duN5;
2365 dNloc(5,0) = dsN6; dNloc(5,1) = dtN6; dNloc(5,2) = duN6;
2366 dNloc(6,0) = dsN7; dNloc(6,1) = dtN7; dNloc(6,2) = duN7;

Callers

nothing calls this directly

Calls 4

ZeroMethod · 0.45
InvertMethod · 0.45

Tested by

no test coverage detected