Skip to content

Commit 5db4509

Browse files
rwalkerlewisrezgarshakeri
authored andcommitted
Moving displacement dynamic poro to LHS
1 parent 7ca9489 commit 5db4509

File tree

2 files changed

+26
-30
lines changed

2 files changed

+26
-30
lines changed

libsrc/pylith/fekernels/Poroelasticity.hh

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -582,42 +582,38 @@ public:
582582

583583
} // addPoroelasticContextBodyForceSourceDensity
584584

585-
/** f0 function for displacement equation: f0u = \dot{u}.
585+
/** f0 function for displacement equation: f0u = \dot{u}.
586586
*
587587
* Solution fields: [disp(dim), vel(dim)]
588588
*/
589589
static inline
590590
void f0u_explicit(const PylithInt dim,
591-
const PylithInt numS,
592-
const PylithInt numA,
593-
const PylithInt sOff[],
594-
const PylithInt sOff_x[],
595-
const PylithScalar s[],
596-
const PylithScalar s_t[],
597-
const PylithScalar s_x[],
598-
const PylithInt aOff[],
599-
const PylithInt aOff_x[],
600-
const PylithScalar a[],
601-
const PylithScalar a_t[],
602-
const PylithScalar a_x[],
603-
const PylithReal t,
604-
const PylithScalar x[],
605-
const PylithInt numConstants,
606-
const PylithScalar constants[],
607-
PylithScalar f0[]) {
608-
assert(sOff);
609-
assert(s);
610-
assert(s_t);
611-
assert(f0);
612-
printf("f0u_explicit \n");
613-
const PylithInt _numS = 3;
614-
assert(_numS == numS);
591+
const PylithInt numS,
592+
const PylithInt numA,
593+
const PylithInt sOff[],
594+
const PylithInt sOff_x[],
595+
const PylithScalar s[],
596+
const PylithScalar s_t[],
597+
const PylithScalar s_x[],
598+
const PylithInt aOff[],
599+
const PylithInt aOff_x[],
600+
const PylithScalar a[],
601+
const PylithScalar a_t[],
602+
const PylithScalar a_x[],
603+
const PylithReal t,
604+
const PylithScalar x[],
605+
const PylithInt numConstants,
606+
const PylithScalar constants[],
607+
PylithScalar f0[]) {
608+
pylith::fekernels::Poroelasticity::PoroelasticContext poroelasticContext;
609+
pylith::fekernels::Poroelasticity::setPoroelasticContextDynamic(
610+
&poroelasticContext, dim, numS, sOff, sOff_x, s, s_t, s_x, aOff, aOff_x, a, a_t, a_x, t, x);
615611

616-
const PylithInt i_disp = 0;
617-
const PylithScalar* disp_t = &s_t[sOff[i_disp]];
612+
const PylithScalar *displacement_t = poroelasticContext.displacement_t;
613+
const PylithScalar *velocity = poroelasticContext.velocity;
618614

619615
for (PylithInt i = 0; i < dim; ++i) {
620-
f0[i] += disp_t[i];
616+
f0[i] += displacement_t[i] - velocity[i];
621617
} // for
622618
} // f0u_explicit
623619

libsrc/pylith/materials/Poroelasticity.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ 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 = pylith::fekernels::Poroelasticity::g0u;
460+
const PetscPointFunc g0u = NULL; // pylith::fekernels::Poroelasticity::g0u;
461461
const PetscPointFunc g1u = NULL;
462462

463463
// Pressure
@@ -913,7 +913,7 @@ pylith::materials::Poroelasticity::_setKernelsDerivedField(pylith::feassemble::I
913913
kernels[1] = ProjectKernels("cauchy_strain", strainKernel);
914914

915915
const PetscPointFunc bulkDensity = pylith::fekernels::Poroelasticity::bulkDensity_asScalar;
916-
916+
917917
kernels[2] = ProjectKernels("bulk_density", bulkDensity);
918918

919919
assert(integrator);

0 commit comments

Comments
 (0)