Skip to content

Commit 791e768

Browse files
rwalkerlewisrezgarshakeri
authored andcommitted
Moving dyn poro terms to LHS
1 parent 5db4509 commit 791e768

File tree

2 files changed

+91
-42
lines changed

2 files changed

+91
-42
lines changed

libsrc/pylith/fekernels/IsotropicLinearPoroelasticity.hh

Lines changed: 83 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1850,11 +1850,16 @@ public:
18501850

18511851
// Solution Variables
18521852
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
1853+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
18531854

18541855
// Rheology Auxiliaries
18551856
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
1857+
const PylithScalar biotModulus = rheologyContext.biotModulus;
18561858

1857-
g0[0] -= biotCoefficient * trace_strain_t;
1859+
// Rheological Auxiliaries
1860+
1861+
g0[0] += pressure_t / biotModulus;
1862+
g0[0] += biotCoefficient * trace_strain_t;
18581863
} // g0p_implicit
18591864

18601865
// ----------------------------------------------------------------------
@@ -1897,15 +1902,20 @@ public:
18971902

18981903
// Solution Variables
18991904
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
1905+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
1906+
1907+
// Rheology Auxiliaries
1908+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
1909+
const PylithScalar biotModulus = rheologyContext.biotModulus;
19001910

19011911
// Poroelastic Auxiliaries
19021912
const PylithScalar source = poroelasticContext.sourceDensity;
19031913

1904-
// Rheologic Auxiliaries
1905-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
1914+
// Rheological Auxiliaries
1915+
g0[0] -= source;
1916+
g0[0] += pressure_t / biotModulus;
1917+
g0[0] += biotCoefficient * trace_strain_t;
19061918

1907-
g0[0] += source;
1908-
g0[0] -= biotCoefficient * trace_strain_t;
19091919
} // g0p_source
19101920

19111921
// ----------------------------------------------------------------------
@@ -1948,15 +1958,19 @@ public:
19481958

19491959
// Solution Variables
19501960
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
1961+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
1962+
1963+
// Rheology Auxiliaries
1964+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
1965+
const PylithScalar biotModulus = rheologyContext.biotModulus;
19511966

19521967
// Poroelastic Auxiliaries
19531968
const PylithScalar source = poroelasticContext.sourceDensity;
19541969

1955-
// Rheologic Auxiliaries
1956-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
1970+
g0[0] -= source;
1971+
g0[0] += pressure_t / biotModulus;
1972+
g0[0] += biotCoefficient * trace_strain_t;
19571973

1958-
g0[0] += source;
1959-
g0[0] -= biotCoefficient * trace_strain_t;
19601974
} // g0p_source_body
19611975

19621976
// ----------------------------------------------------------------------
@@ -1999,15 +2013,19 @@ public:
19992013

20002014
// Solution Variables
20012015
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
2016+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
2017+
2018+
// Rheology Auxiliaries
2019+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
2020+
const PylithScalar biotModulus = rheologyContext.biotModulus;
20022021

20032022
// Poroelastic Auxiliaries
20042023
const PylithScalar source = poroelasticContext.sourceDensity;
20052024

2006-
// Rheologic Auxiliaries
2007-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
2025+
g0[0] -= source;
2026+
g0[0] += pressure_t / biotModulus;
2027+
g0[0] += biotCoefficient * trace_strain_t;
20082028

2009-
g0[0] += source;
2010-
g0[0] -= biotCoefficient * trace_strain_t;
20112029
} // g0p_source_grav
20122030

20132031
// ----------------------------------------------------------------------
@@ -2050,15 +2068,19 @@ public:
20502068

20512069
// Solution Variables
20522070
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
2071+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
2072+
2073+
// Rheology Auxiliaries
2074+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
2075+
const PylithScalar biotModulus = rheologyContext.biotModulus;
20532076

20542077
// Poroelastic Auxiliaries
20552078
const PylithScalar source = poroelasticContext.sourceDensity;
20562079

2057-
// Rheologic Auxiliaries
2058-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
2080+
g0[0] -= source;
2081+
g0[0] += pressure_t / biotModulus;
2082+
g0[0] += biotCoefficient * trace_strain_t;
20592083

2060-
g0[0] += source;
2061-
g0[0] -= biotCoefficient * trace_strain_t;
20622084
} // g0p_source_grav_body
20632085

20642086
// -----------------------------------------------------------------------------
@@ -3891,11 +3913,16 @@ public:
38913913

38923914
// Solution Variables
38933915
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
3916+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
38943917

38953918
// Rheology Auxiliaries
38963919
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
3920+
const PylithScalar biotModulus = rheologyContext.biotModulus;
3921+
3922+
// Rheological Auxiliaries
3923+
g0[0] += pressure_t / biotModulus;
3924+
g0[0] += biotCoefficient * trace_strain_t;
38973925

3898-
g0[0] -= biotCoefficient * trace_strain_t;
38993926
} // g0p_implicit
39003927

39013928
// ----------------------------------------------------------------------
@@ -3938,13 +3965,18 @@ public:
39383965

39393966
// Solution Variables
39403967
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
3968+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
3969+
3970+
// Rheology Auxiliaries
3971+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
3972+
const PylithScalar biotModulus = rheologyContext.biotModulus;
3973+
39413974
// Poroelastic Auxiliaries
39423975
const PylithScalar source = poroelasticContext.sourceDensity;
3943-
// Rheologic Auxiliaries
3944-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
39453976

3946-
g0[0] += source;
3947-
g0[0] -= biotCoefficient * trace_strain_t;
3977+
g0[0] -= source;
3978+
g0[0] += pressure_t / biotModulus;
3979+
g0[0] += biotCoefficient * trace_strain_t;
39483980
} // g0p_source
39493981

39503982
// ----------------------------------------------------------------------
@@ -3987,13 +4019,19 @@ public:
39874019

39884020
// Solution Variables
39894021
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
4022+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
4023+
4024+
// Rheology Auxiliaries
4025+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
4026+
const PylithScalar biotModulus = rheologyContext.biotModulus;
4027+
39904028
// Poroelastic Auxiliaries
39914029
const PylithScalar source = poroelasticContext.sourceDensity;
3992-
// Rheologic Auxiliaries
3993-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
39944030

3995-
g0[0] += source;
3996-
g0[0] -= biotCoefficient * trace_strain_t;
4031+
g0[0] -= source;
4032+
g0[0] += pressure_t / biotModulus;
4033+
g0[0] += biotCoefficient * trace_strain_t;
4034+
39974035
} // g0p_source_body
39984036

39994037
// ----------------------------------------------------------------------
@@ -4036,13 +4074,18 @@ public:
40364074

40374075
// Solution Variables
40384076
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
4077+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
4078+
4079+
// Rheology Auxiliaries
4080+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
4081+
const PylithScalar biotModulus = rheologyContext.biotModulus;
4082+
40394083
// Poroelastic Auxiliaries
40404084
const PylithScalar source = poroelasticContext.sourceDensity;
4041-
// Rheologic Auxiliaries
4042-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
40434085

4044-
g0[0] += source;
4045-
g0[0] -= biotCoefficient * trace_strain_t;
4086+
g0[0] -= source;
4087+
g0[0] += pressure_t / biotModulus;
4088+
g0[0] += biotCoefficient * trace_strain_t;
40464089
} // g0p_source_grav
40474090

40484091
// ----------------------------------------------------------------------
@@ -4085,13 +4128,19 @@ public:
40854128

40864129
// Solution Variables
40874130
const PylithScalar trace_strain_t = poroelasticContext.trace_strain_t;
4131+
const PylithScalar pressure_t = poroelasticContext.pressure_t;
4132+
4133+
// Rheology Auxiliaries
4134+
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
4135+
const PylithScalar biotModulus = rheologyContext.biotModulus;
4136+
40884137
// Poroelastic Auxiliaries
40894138
const PylithScalar source = poroelasticContext.sourceDensity;
4090-
// Rheologic Auxiliaries
4091-
const PylithScalar biotCoefficient = rheologyContext.biotCoefficient;
40924139

4093-
g0[0] += source;
4094-
g0[0] -= biotCoefficient * trace_strain_t;
4140+
g0[0] -= source;
4141+
g0[0] += pressure_t / biotModulus;
4142+
g0[0] += biotCoefficient * trace_strain_t;
4143+
40954144
} // g0p_source_grav_body
40964145

40974146
// -----------------------------------------------------------------------------

libsrc/pylith/materials/Poroelasticity.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -457,20 +457,20 @@ pylith::materials::Poroelasticity::_setKernelsResidual(pylith::feassemble::Integ
457457
// Displacement
458458
const PetscPointFunc f0u = pylith::fekernels::Poroelasticity::f0u_explicit;
459459
const PetscPointFunc f1u = NULL;
460-
const PetscPointFunc g0u = NULL; // pylith::fekernels::Poroelasticity::g0u;
460+
const PetscPointFunc g0u = NULL;
461461
const PetscPointFunc g1u = NULL;
462462

463463
// Pressure
464-
const PetscPointFunc f0p = _rheology->getKernelf0p_explicit(coordsys);
465-
const PetscPointFunc f1p = NULL;
466-
const PetscPointFunc g0p = _rheology->getKernelg0p(coordsys, _useBodyForce, _gravityField, _useSourceDensity);
467-
const PetscPointFunc g1p = _rheology->getKernelg1p_explicit(coordsys, _gravityField); // Darcy velocity
464+
const PetscPointFunc f0p = _rheology->getKernelg0p(coordsys, _useBodyForce, _gravityField, _useSourceDensity);
465+
const PetscPointFunc f1p = _rheology->getKernelg1p_explicit(coordsys, _gravityField); // Darcy velocity;
466+
const PetscPointFunc g0p = NULL;
467+
const PetscPointFunc g1p = NULL;
468468

469469
// Velocity
470470
const PetscPointFunc f0v = pylith::fekernels::Poroelasticity::f0v_explicit;
471-
const PetscPointFunc f1v = NULL;
472-
const PetscPointFunc g0v = r0;
473-
const PetscPointFunc g1v = _rheology->getKernelg1v_explicit(coordsys);
471+
const PetscPointFunc f1v = _rheology->getKernelg1v_explicit(coordsys);
472+
const PetscPointFunc g0v = r0; // NEED TO MOVE TO LHS
473+
const PetscPointFunc g1v = NULL;
474474

475475
kernels.resize(6);
476476
kernels[0] = ResidualKernels("displacement", pylith::feassemble::Integrator::LHS, f0u, f1u);

0 commit comments

Comments
 (0)