<< MASCARET_compute Toolbox Mascaret MASCARET_create >>

Toolbox Mascaret >> Toolbox Mascaret > MASCARET_compute_BC

MASCARET_compute_BC

Fonction de simulation d'un ou plusieurs pas de temps avec conditions limites.

Séquence d'appel

[erreur]=MASCARET_compute_BC(id,TpsInitial, TpsFinal, PasTps, TpsCl, Cl1, Cl2, impression)

Arguments

erreur

Argument de sortie indiquant la présence d'erreur si différent de zero

id

Identifiant de l'instance Mascaret retourné par MASCARET_create

TpsInitial

Temps initial du calcul

TpsFinal

Temps final du calcul

PasTps

Pas de temps interne du calcul

TpsCl

Le vecteur temps commun à toutes les nouvelles conditions limites, dimensionné comme le nombre de lignes de Cl1 et Cl2.

Cl1

Composante 1 de la condition limite, c'est une matrice décrivant l'évolution des nouvelles conditions limites

Cette matrice est dimensionnée en ligne comme le vecteur TpsCl et en colonne par le nombre condition limite

Suivant le type de la condition limite, on a : Type 1 ou 3 --> débit ; Type 2 --> cote ; Type 7 --> cote inf

Cl2

Composante 2 de la condition limite, c'est une matrice décrivant l'évolution des nouvelles conditions limites

Cette matrice est dimensionnée en ligne comme le vecteur TpsCl et en colonne par le nombre condition limite (comme Cl1)

Suivant le type de la condition limite, on a : Type 1 ou 2 --> pas utilisé ; Type 3 --> cote ; Type 7 --> cote sup

impression

Impression (écriture) sur les fichiers listing (1-> Vrai 0-> Faux)

Description

Fonction qui permet d'effectuer une simulation d'un ou plusieurs pas de temps en spécifiant de nouvelles conditions limites. 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

Avant d'utiliser cette fonction, il est nécessaire d'avoir initialiser l'état Mascaret, c'est à dire d'avoir fait appel à une des fonctions MASCARET_initStateName, MASCARET_initState ou MASCARET_importXml avec le dernier paramètre à 0.

Exemple

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);        
        
// get Boundary Conditions info        
[err,pasTpsCalcul]=MASCARET_getDouble(id,"Model.DT",0,0,0);
assert_checkequal(err,0);  
[err,nbCl]=MASCARET_getNbBoundCond(id);
assert_checkequal(err,0);  
for i = 1:nbCl
    [err,nomCL,numLoi]=MASCARET_getNameBndCond(id,i);
    assert_checkequal(err,0);
    printf("Name of the Boundary Condition # %d is : %s corresponding to the graph # %d\n", i, nomCL, numLoi);
end

// initialisation
err = MASCARET_initStateName(id,toolbox_dir+c+"demos"+c+"Help"+c+"demo1"+c+"demo1.lig",impression);
assert_checkequal(err,0);

// computation
tailleTpsCL = 3;
cl2 = zeros(tailleTpsCL,nbCl); // not used
cl1 = zeros(tailleTpsCL,nbCl);
cl1(:,2) = 2.;
tpsCalcul0   =      0.0;
deltaT       =    600.0;
tpsCalcul1   =   deltaT; 
tpsCl = (tpsCalcul0:deltaT/2:tpsCalcul1).';
cl1(:,1) = 150./3600.* tpsCl;
err = MASCARET_compute_BC(id,tpsCalcul0, tpsCalcul1, pasTpsCalcul, tpsCl, cl1, cl2, impression);
assert_checkequal(err,0);

// model deletion
err = MASCARET_delete(id);
assert_checkequal(err,0);

Voir aussi


Report an issue
<< MASCARET_compute Toolbox Mascaret MASCARET_create >>