Transfer macro


The macro transfer defines a uni-directional transfer process from a base compartment to a target compartment. The base compartment and the target compartment must be defined first before the transfer can be defined. For the more common bi-directional transfer process it is better to use the macro peripheral instead of the macro transfer, in particular as it allows to use the analytical solution, which is not the case with the macro transfer.


Its named arguments are:

  • from: Label of the source compartment for the transfer. Its default value is 1.
  • to: Label of the target compartment for the transfer. Its default value is 1.
  • kt: Rate of the transfer. Mandatory.


; transfer from compartment 1 to compartment 2 with a rate kt
transfer(from=1, to=2, kt)

Example with Mlxplore:

In the following example, two compartments are defined in the PK: block. A transfer from compartment 1 to compartment 2 is added, with a transfer rate kt. The model is implemented in the file transfer.mlxplore.mlxtran available in the Mlxplore demos, and shown below:

input = {V1, V2, kt}

compartment(cmt=1, amount=Ac, concentration=Cc1, volume=V1)
compartment(cmt=2, amount=Ad, concentration=Cc2, volume=V2)
transfer(from=1, to=2, kt)

admin = {time=5, amount=1, target=Ac, rate=.5}

V1 = 10
V2 = 5
kt = .5

grid = 0:.05:20
list = {Cc1,Cc2}

p = {y={Cc1, Cc2}, ylabel='Concentrations', xlabel='Time'}

The concentration in the compartment and the transfer are shown in the following figure in blue and orange respectively.


Best Practices:

  • We encourage the user to use all the fields in the macro to guarantee non confusion between the fields.
  • Format restriction (non compliance will raise an exception)
    • The value after from= and to= are necessarily integers.
    • The value after kt= can be either a double or replaced by an input parameter. Calculations are not supported.