CellML API /home/andrew/Documents/cellml-api-doxygen/interfaces/CIS.idl Source File Main Page Related Pages Namespaces Classes Files File List File Members All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages CIS.idl Go to the documentation of this file. 1 #include "xpcom.idl" 2 #include "CCGS.idl" 3 9 module cellml_services 10 { 11 typedef sequence<double> DoubleSeq; 12 13 enum ODEIntegrationStepType 14 { 15 RUNGE_KUTTA_2_3, 16 RUNGE_KUTTA_4, 17 RUNGE_KUTTA_FEHLBERG_4_5, 18 RUNGE_KUTTA_CASH_KARP_4_5, 19 RUNGE_KUTTA_PRINCE_DORMAND_8_9, 20 RUNGE_KUTTA_IMPLICIT_2, 21 RUNGE_KUTTA_IMPLICIT_2_SOLVE, 22 RUNGE_KUTTA_IMPLICIT_4, 23 BULIRSCH_STOER_IMPLICIT_BD, 24 GEAR_1, 25 GEAR_2, 26 ADAMS_MOULTON_1_12, 27 BDF_IMPLICIT_1_5_SOLVE 28 }; 29 30 interface IntegrationProgressObserver 31 : XPCOM::IObject 32 { 38 void computedConstants(in DoubleSeq values); 39 67 void results(in DoubleSeq state); 68 72 void done(); 73 78 void failed(in string errorMessage); 79 }; 80 #pragma terminal-interface 81 #pragma user-callback 82 83 interface CellMLIntegrationRun 84 : XPCOM::IObject 85 { 96 void setStepSizeControl(in double epsAbs, in double epsRel, 97 in double scalVar, in double scalRate, 98 in double maxStep); 99 109 void setTabulationStepControl(in double tabulationStepSize, in boolean strictTabulation); 110 123 void setResultRange(in double startBvar, in double stopBvar, 124 in double maxPointDensity); 125 132 void setProgressObserver(in IntegrationProgressObserver ipo); 133 147 void setOverride( 148 in cellml_services::VariableEvaluationType type, 149 in unsigned long variableIndex, 150 in double newValue 151 ) raises(cellml_api::CellMLException); 152 157 void start(); 158 162 void stop(); 163 }; 164 165 interface ODESolverRun 166 : CellMLIntegrationRun 167 { 171 attribute ODEIntegrationStepType stepType; 172 }; 173 #pragma terminal-interface 174 175 interface DAESolverRun 176 : CellMLIntegrationRun 177 { 178 }; 179 #pragma terminal-interface 180 181 interface CellMLCompiledModel 182 : XPCOM::IObject 183 { 187 readonly attribute cellml_api::Model model; 188 192 readonly attribute cellml_services::CodeInformation codeInformation; 193 }; 194 195 interface ODESolverCompiledModel 196 : CellMLCompiledModel 197 { 198 }; 199 #pragma terminal-interface 200 201 interface DAESolverCompiledModel 202 : CellMLCompiledModel 203 { 204 }; 205 #pragma terminal-interface 206 207 interface CellMLIntegrationService 208 : XPCOM::IObject 209 { 214 ODESolverCompiledModel compileModelODE(in cellml_api::Model aModel) 215 raises(cellml_api::CellMLException); 216 221 DAESolverCompiledModel compileModelDAE(in cellml_api::Model aModel) 222 raises(cellml_api::CellMLException); 223 229 ODESolverRun createODEIntegrationRun(in ODESolverCompiledModel aModel); 230 236 DAESolverRun createDAEIntegrationRun(in DAESolverCompiledModel aModel); 237 241 readonly attribute wstring lastError; 242 }; 243 #pragma terminal-interface 244 }; CellML API Documentation Downloads Applications Support