Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Arguments required by user C++/F method

a class

  • All arguments 'packed' within a class <ActorName>Arguments
  • Class will be automatically generated within a wrapper package
  • Order of attributes corresponds to order of  user function arguments
  • Every attribute is a class FC2PyArgument keeping not only value but also metadata describing argument:
    • Name
    • Type of value
    • Value
    • IN or OUT
  • Attributes' setters/getters will be overridden - user will set only value of argument 
    • To reduce complexity visible by user
    • To check if arg type is correct

XML parameters of user  C++/F method

  • Not passed as wrapper argument
  • Defined (path to XML file) at the time of actor creation by FC2Py  

Job settings

  • A class passed as wrapper arguments
  • Tree (of classes) describing job settings
  • FC2PyJobSettings class:
    • batch_job - class FC2PyBatchJob:
      • queue
      • ???
    • debug - class FC2PyDebug
      • debugger - TotalView/gdb
      • mode - attach/standalone
    • mpi - class FC2PyMPI
      • mpi parameters - TBD
      • ???
    • open_mp - class FC2PyOpenMP
      • openMP parameters - TBD
      • ???
    • sandbox
      • path to sandbox

Wrapper outcome

  • To be discussed - 
    • PREFERRED:  OUT arguments - wrapper will update fields of <ActorName>Arguments class
    • Returned values - packed within a class:
      • autogenerated
      • a part of wrapper package

Open points

  1. Programming conventions (PEP 8?)
    1. https://www.python.org/dev/peps/pep-0008/
  2. Incompatibility with existing Python actors!
  3. Only IN and OUT arguments (no INOUT arguments)
  4. Arrays as an inout of user method- only "dynamic" - i.e. of variable size 
  5. Wrapper results:
    1. OUT arguments - wrapper will update fields of <ActorName>Arguments class
    2. Returned values - packed within a class
  6. Diagnostic info 
    1. Info returned from user method
      1. status flag
      2. user defined message
    2. 'Q: can it be mandatory in user sbrt?
  7.  Sandbox:
    1. Do we need this feature?
  8. Alternative library:
    1. Do we need this feature?

...