Why a Bolus Is a State Jump
A PBPK model describes how drug amounts change over time, usually through ordinary differential equations (ODEs). An intravenous bolus has a different temporal character from those continuous changes: over the model’s time scale, the dose enters the circulation instantaneously. The numerical representation must therefore preserve the smooth ODE dynamics between doses while applying an exact amount change at the dose time.
This distinction matters even when the dose is small relative to the total amount in the body. A solver that steps across a dose without applying its jump at the correct time can predict the wrong concentration immediately after dosing and then carry that error forward. A solver that applies the jump twice creates a different, equally consequential error.
For example, if the first component is the amount in a central blood compartment and all other states are unchanged directly by the bolus, then \(b=(1,0,\ldots,0)^\mathsf{T}\). The dose \(D\) and amount states must use compatible units, such as milligrams. A bolus is not represented by changing the ODE’s derivative for a short, arbitrary time interval; it is represented by updating the state at the specified event time.
Jump Condition and Concentration Changes
Between dose events, the state follows the usual PBPK differential equation, \(dx/dt=f(t,x)\). If the model has no other instantaneous event at \(t_d\), the physiological states and drug amounts evolve continuously according to this equation on either side of the dose. The bolus adds a discrete amount at \(t_d\).
Use the ODE to obtain the left-hand state \(x(t_d^-)\). The integration interval ends at the dose time; it does not continue through the jump as though the state were smooth.
Update the state by \(x(t_d^+)=x(t_d^-)+bD\). Only the designated amount state or states receive the direct dose increment.
Use \(x(t_d^+)\) as the initial state for integration after the event. The post-dose trajectory then evolves under the model’s ODE.
The jump equation follows directly from integrating the model over a vanishingly short interval around the dose. Represent the idealized bolus input as \(bD\delta(t-t_d)\), where \(\delta\) is the Dirac delta distribution. Then integrate \(dx/dt=f(t,x)+bD\delta(t-t_d)\) from \(t_d-\epsilon\) to \(t_d+\epsilon\). The left side is the state difference. If \(f(t,x)\) stays finite over this shrinking interval, its integral tends to zero; the delta term integrates to \(bD\). Therefore,
For a compartment with amount \(A_i\) and fixed volume \(V_i\), concentration is \(C_i=A_i/V_i\). If the bolus enters compartment \(i\), its amount changes by \(D\), so its concentration jump is \(D/V_i\). Other compartment amounts do not jump directly under this dose map, and their concentrations remain continuous when their volumes are unchanged at the event. Subsequent ODE dynamics can change amounts and concentrations in all compartments.
Worked Example: A Bolus into a Central Compartment
Suppose a one-compartment model has an amount of \(12.0\) mg immediately before an intravenous bolus. The compartment volume is \(4.00\) L, and the bolus dose is \(80.0\) mg. Find the pre-dose and post-dose amounts and concentrations.
Before dosing, \(A(t_d^-)=12.0\) mg. Thus the pre-dose concentration is \(C(t_d^-)=12.0/4.00=3.00\) mg/L.
The dose enters this compartment, so the jump rule gives \(A(t_d^+)=12.0+80.0=92.0\) mg. The post-dose concentration is \(C(t_d^+)=92.0/4.00=23.0\) mg/L. Equivalently, the concentration jump is \(80.0/4.00=20.0\) mg/L, and \(3.00+20.0=23.0\) mg/L. The pre-dose amount is retained; the dose is added rather than substituted for it.
Implementing the Event Without Smoothing It Away
A standard ODE solver advances a state through time under the assumption that its derivative function describes the trajectory over each integration step. A bolus violates smoothness at its event time, so the reliable implementation is to split integration at that time. In practice, integrate exactly to \(t_d\), record or retain the left-hand state if needed, apply the jump, and restart from the right-hand state. A solver’s event-handling feature can perform these actions, but the event handler must apply the jump once and at the specified time.
Do not let an accepted solver step or a dense-output interpolation span the dose while treating the solution as continuous. If the solver evaluates the derivative just before and just after the event, those evaluations must use the appropriate left- and right-hand states. The ODE itself should not contain a very large derivative over a tiny chosen interval as a substitute for the jump: that would make the result depend on the arbitrary interval and can create unnecessary numerical difficulty.
Worked Example: Concentration Before and After a Later Dose
Consider a one-compartment model with elimination rate constant \(k=0.200\) h\(^{-1}\), volume \(V=5.00\) L, and an initial \(100\) mg bolus at time zero. A second \(50.0\) mg bolus is given at \(t_d=2.00\) h. Calculate the amount and concentration immediately before and after the second dose, and the concentration at \(t=3.00\) h. The amount between doses follows \(dA/dt=-kA\), so \(A(t)=A(t_0)e^{-k(t-t_0)}\) on any interval without a dose.
At \(2.00\) h just before the second dose, the initial dose has been eliminated according to the model for two hours:
Therefore \(C(2.00^-)=67.03/5.00=13.41\) mg/L. The second bolus adds \(50.0\) mg to the amount, giving \(A(2.00^+)=100e^{-0.4}+50.0=117.0\) mg (more precisely, \(117.032\) mg). Its post-dose concentration is \(C(2.00^+)=117.032/5.00=23.41\) mg/L.
From \(2.00\) to \(3.00\) h, the post-dose amount decays for one hour. Retaining the unrounded post-dose amount gives
If instead the rounded intermediate amount \(117.0\) mg is used, the calculation is \(117.0e^{-0.2}=95.79\) mg, which also rounds to \(19.16\) mg/L after division by \(5.00\) L. The small difference in the amount is due only to rounding the intermediate value; the displayed precision should not imply that rounded and unrounded calculations are exactly identical.
Checking Compartment Allocation and Conservation
The jump map should match the model’s state definition. If the state contains amounts, add the dose in amount units to the intended compartment. If concentrations are derived quantities, calculate them from the updated amounts and volumes; do not add an amount directly to a concentration. For a model that tracks an IV bolus as entering central blood, a direct jump to a liver amount, for example, would misrepresent the route unless the state definition explicitly assigns the dose there.
A useful immediate check is the total amount change across the event. If all modeled drug amounts are in the state vector and the dose is fully represented, then the total amount immediately after the dose should exceed the total immediately before by \(D\). This check concerns the jump itself, not the amount at later times, when elimination or other model processes may change the total.
Worked Example: Verifying a Multi-Compartment Update
Immediately before a bolus, a hypothetical PBPK model has central, liver, and kidney amounts of \(40.0\), \(12.0\), and \(8.00\) mg. Their fixed volumes are \(4.00\), \(3.00\), and \(2.00\) L. A \(24.0\) mg IV bolus enters the central compartment. Compute the state and concentrations immediately before and after dosing, and verify the total amount change.
The pre-dose state is \(x(t_d^-)=(40.0,12.0,8.00)\) mg, with total \(40.0+12.0+8.00=60.0\) mg. The pre-dose concentrations are \(40.0/4.00=10.0\) mg/L in central blood, \(12.0/3.00=4.00\) mg/L in liver, and \(8.00/2.00=4.00\) mg/L in kidney.
Only the central amount receives the bolus, so \(x(t_d^+)=(40.0+24.0,12.0,8.00)=(64.0,12.0,8.00)\) mg. The post-dose central concentration is \(64.0/4.00=16.0\) mg/L. Liver and kidney concentrations remain \(4.00\) mg/L each at the instant of the jump because their amounts and volumes did not change. The post-dose total is \(64.0+12.0+8.00=84.0\) mg, and \(84.0-60.0=24.0\) mg, exactly the administered dose.
Diagnostics, Alternatives, and Limitations
Several simple checks can expose event-handling errors before interpreting a simulated profile:
- Check the event time. The left-hand state should reflect ODE evolution only up to \(t_d\), and the right-hand state should include the dose at \(t_d\). A jump shifted earlier or later changes the trajectory.
- Check the jump size and destination. Compare \(x(t_d^+)-x(t_d^-)\) with \(bD\), component by component. An increment in the wrong state indicates an allocation error.
- Check the total amount increment. For a fully represented dose, the sum of modeled drug amounts should increase by \(D\) across the event, subject to the state definitions.
- Check the concentration discontinuity. In the receiving compartment with fixed volume \(V_i\), the immediate increase should be \(D/V_i\). Unchanged compartments should not jump directly under a central-only dose map.
- Check solver segmentation. Confirm that integration stops at the dose time and restarts from the updated state, rather than interpolating smoothly through the discontinuity.
The discrete jump is the natural representation of an idealized instantaneous dose. A finite-duration administration instead requires an input spread over time; its start and stop events are a different model representation. Treating a bolus as a short infusion can be an approximation only when the duration is negligible for the question being studied, and it must not be confused with an exact instantaneous jump. Conversely, a bolus jump is not appropriate when the clinical administration duration materially affects concentration or distribution during dosing.
The idealization also assumes that the dose time is known, the dose is expressed in the same active-drug amount units as the state, the modeled IV dose is fully delivered, and no other instantaneous change is being applied at the same event unless its ordering is specified. Concentration jumps use the stated compartment volume; if volume itself changes at that instant, the simple \(D/V_i\) increment does not by itself describe the concentration change. For coupled or nonlinear PBPK systems, the jump formula for amounts remains direct, but the subsequent trajectory must still be obtained from the full ODE.
Compared with approximating the bolus by a large input rate over a short interval, an explicit state jump fixes the dose amount and event time without introducing an arbitrary duration. Compared with integrating the entire time span in one smooth segment, splitting at the event respects the actual discontinuity. The jump approach is therefore both easier to verify and more faithful to the bolus assumption. Its limitation is equally important: it represents no within-dose dynamics, so it cannot answer questions for which administration duration matters.
Check Your Understanding
Work each problem by distinguishing the left-hand state from the right-hand state. Solutions are included below for checking.
- A compartment contains \(18.0\) mg in \(3.00\) L immediately before a \(30.0\) mg bolus enters it. Find the pre-dose and post-dose concentrations.
- For the one-compartment model \(dA/dt=-0.100A\), a \(40.0\) mg bolus is given at time zero and a \(20.0\) mg bolus at \(t=5.00\) h. Find the amount immediately before and after the second dose. Give the corresponding concentrations if \(V=2.00\) L.
- A solver takes one accepted step from \(t=1.8\) h to \(t=2.2\) h, while a bolus is scheduled at \(t=2.0\) h. What is the implementation problem, and how should the interval be handled?
- A three-compartment model has amounts \((25,10,5)\) mg before a \(15\) mg bolus assigned to the first compartment. What is the post-dose state, and what total-amount check should hold?
Solutions. (1) The pre-dose concentration is \(18.0/3.00=6.00\) mg/L. The post-dose amount is \(18.0+30.0=48.0\) mg, so the post-dose concentration is \(48.0/3.00=16.0\) mg/L. (2) Immediately before the second dose, \(A(5.00^-)=40.0e^{-(0.100)(5.00)}=40.0e^{-0.5}=24.26\) mg. Immediately after, \(A(5.00^+)=24.26+20.0=44.26\) mg. The concentrations are \(24.26/2.00=12.13\) mg/L before and \(44.26/2.00=22.13\) mg/L after. (3) The step crosses a discontinuity, so a smooth solver step can skip or smear the jump. End integration at \(2.0\) h, apply the bolus to the state, and restart from the post-dose state for the interval after \(2.0\) h. (4) The post-dose state is \((25+15,10,5)=(40,10,5)\) mg. The total changes from \(25+10+5=40\) mg to \(40+10+5=55\) mg, an increase of \(15\) mg, equal to the dose.