@@ -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
0 commit comments