...
Arguments required by user C++/F method
Info | ||
---|---|---|
| ||
All code samples below use |
- All arguments 'packed' within a class <ActorName>Arguments
- Class will be automatically generated, and copied to a wrapper package
- Order of attributes corresponds to order of user function arguments
- Every attribute is a class <ToolName>Argument 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
...
| ||
Code Block | ||
---|---|---|
Code Block | ||
| ||
# AUTO GENERATED ! class <ActorName>Arguments : def __init__(self): self.arg1 = <ToolName>Argument( 'InVar', int, None, IN) self.arg2 = <ToolName>Argument( 'OutVar', double, None, OUT) self.diagnostic_info = <ToolName>DiagnosticInfo() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>Argument : def __init__(self, name, type, sub_type, intent): self.name = name #'argument name' READ ONLY self.type = type # (INT, DOUBLE, STRING, COMPLEX, IDS) READ ONLY self.sub_type = sub_type #'equilibrium' for IDSes only READ ONLY self.intent = intent # (IN/OUT) READ ONLY self.value = 7. # to be set by user # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>DiagnosticInfo : def __init__(self): self.status self.message |
...
Code Block |
---|
class <ToolName>XMLParamaters : def __init__(self): self.parameters = # file name or string or... (?) self.default_parameters = # file name or string or ... (?) self.schema = # file name or string or ... (?) |
Job settings
...
settings
...
- queue
- ???
...
- debugger - TotalView/gdb
- mode - attach/standalone
...
- mpi parameters - TBD
- ???
...
- openMP parameters - TBD
- ???
...
Code Block | ||
---|---|---|
| ||
class <ToolName>JobSettings : def __init__(self): self.batch_job = <ToolName>BatchJob() self.debug = <ToolName>Debug() self.mpi = <ToolName>MPI() self.open_mp = <ToolName>OpenMP() self.sandbox = <ToolName>Sandbox() self.????? #any other info needed? # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>BatchJob : def __init__(self): self.queue = self.TBD # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>Debug : def __init__(self): self.debugger #TotalView/gdb self.mode #attach/standalone self.TBD # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>MPI : def __init__(self): self.TBD self.debug_switch # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>OpenMP : def __init__(self): self.TBD # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class <ToolName>Sandbox : def __init__(self): self.path self.lifetime self.TBD |
...