Changes between Initial Version and Version 1 of Configuration

Show
Ignore:
Timestamp:
09/10/12 19:06:52 (12 years ago)
Author:
jorisborgdorff
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Configuration

    v1 v1  
     1The MUSCLE configuration file, or, historically, [[Complex Automata|http://www.complex-automata.org/]] (CxA) file specifies what code will be used in a simulation, and how its coupled together. It is actually a Ruby file, so any Ruby syntax will work inside it. 
     2 
     3To use it, make a file and get the cxa object 
     4{{{ 
     5cxa = Cxa.LAST 
     6}}} 
     7and then add kernels to it by giving a name and a Java class that has the submodel implementation 
     8{{{ 
     9cxa.add_kernel('w', 'examples.simplejava.Sender') 
     10cxa.add_kernel('r', 'examples.simplejava.ConsoleWriter') 
     11}}} 
     12To add properties, add them to the {{{env}}} hash of {{{cxa}}}: 
     13{{{ 
     14cxa.env["max_timesteps"] = 4 
     15cxa.env["w:dt"] = 1; 
     16cxa.env["w:someDoubleProperty"] = 6.1; 
     17cxa.env["w:someOtherProperty"] = "this is w text"; 
     18cxa.env["r:someOtherProperty"] = "this is r text"; 
     19cxa.env["cxa_path"] = File.dirname(__FILE__) 
     20}}} 
     21Properties that are only meant for a single submodel are prepended with the name and a colon (e.g., "submodelName:propertyName"). Other properties are global and will be used by all submodels. 
     22 
     23The {{{cs}}} property of {{{cxa}}} is the connection scheme; it defines how submodels are coupled. In the example, submodel w is attached to submodel r by tying the conduit entrance dataOut of w to the conduit exit dataIn of r. It also ties conduit entrance otherOut of w to other of r. 
     24 
     25{{{ 
     26cs = cxa.cs 
     27 
     28cs.attach('w' => 'r') { 
     29        tie('dataOut', 'dataIn') 
     30        tie('otherOut', 'other') 
     31} 
     32}}}