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.


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.