Fonction de simulation d'un ou plusieurs pas de temps.
[erreur]=MASCARET_compute(id,TpsInitial, TpsFinal, PasTps,impression)
Argument de sortie indiquant la presence d'erreur si différent de zero
Identifiant de l'instance MASCARET retourné par MASCARET_create
Temps initial du calcul
Temps final du calcul
Pas de temps interne du calcul
Impression (écriture) sur les fichiers listing (1-> Vrai 0-> Faux)
Fonction qui permet d'effectuer une simulation d'un ou plusieurs pas de temps. C'est notamment cette fonction qui va calculer un nouvel état courant à partir du modèle courant et de l'état précédent
Une autre fonction de l'API permet également de faire la même chose avec des paramètres différents, il s'agit de MASCARET_compute_BC
Avant d'utiliser cette fonction, il est nécessaire d'avoir initialisé l'état MASCARET, c'est à dire d'avoir fait appel à une des fonctions MASCARET_initStateName, MASCARET_initState ou MASCARET_importXml avec le dernier parametre à 0.
toolbox_dir=getenv("toolbox_dir"); c = filesep(); // creation of the MASCARET model [err, id] = MASCARET_create(); assert_checktrue(id>0); // read data from files path_xml = "file://"+toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1.xcas"; TabNomFichier = [strsubst(path_xml,'\','/'), .. toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1.geo", .. toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1_0.loi", .. toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1_1.loi", .. toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1.lis", .. toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1.opt"]; TypeNomFichier = ["xcas","geo","loi","loi","listing","res"]; impression = 0; err = MASCARET_importModel(id,TabNomFichier,TypeNomFichier,impression); assert_checkequal(err,0); // initialisation err = MASCARET_initStateName(id,toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1.lig",impression); assert_checkequal(err,0); // get the initial state on the cross-section #5 (water level) [err,Zsection5] = MASCARET_getDouble(id,"State.Z",5,0,0); assert_checkequal(err,0); printf("\tWater level on the cross-section #5 before the simulation :%f\n", Zsection5); // computation err = MASCARET_compute(id,0., 36000., 1., impression); assert_checkequal(err,0); // get the result on the cross-section #5 (water level) [err,Zsection5] = MASCARET_getDouble(id,"State.Z",5,0,0); assert_checkequal(err,0); printf("\tWater level on the cross-section #5 after the simulation :%f\n", Zsection5); // model deletion err = MASCARET_delete(id); assert_checkequal(err,0); | ![]() | ![]() |