évolution du pas de temps ds Pasapas [Résolu] |
lguenhael
Administrateur
|
Bonjour,
Je pense que le plus simple consiste à utiliser une procédure PERSO de PASAPAS pour apprécier en cours de calcul l’état de la structure et éventuellement stopper la procédure. Une seconde simulation PASAPAS peut alors être placée juste après la première avec un pas de temps ajusté. Tout ceci peut se faire dans une seule et même procédure mais c’est plus compliqué. Cordialement. |
||||||||||||
|
jowayne25
|
Bonjour,
Merci de votre réponse, je vais essayer ça ! Cordialement Johan |
||||||||||||
|
jowayne25
|
Bonjour,
J'ai donc opté pour la première méthode que vous m'avez proposé : procédure perso1 puis sortie de pasapas lorsque mon critère est validé, puis autre procédure pasapas avec un pas de temps différent. Voici la procédure perso: tab.PROCEDURE_PERSO1=vrai; *** debp perso1 tab*table; depl1= PECHE tab.variables_internes; depjoi = redu depl1 volja ; zz=210; j = 0 ; repe bo3 zz; j = j + 1 ; ledepl = extr depjoi 'EPS1' 1 j 1 ; depl_abs = abs(ledepl); si (depl_abs > 0.0018); QUITTER PASAPAS; sinon; MESS 'OK'; finsi; FIN bo3; finp; *** tab2 = pasapas tab ; Ça tourne bien, cependant lorsque mon critère est validé je ne sort pas de pasapas (le calcul continue à tourner mais je n'ai plus les messages 'OK' ce qui signifie que j'ai bien dépassé mon critère ...) . J'ai vu aussi dans la documentation sur pasapas qu'il fallait: "positionner une valeur de type logique dans la table (type tab.arret=vrai;) pour arreter le calcul", mais j'ai également vu dans un autre sujet sur le forum que "QUITTER PASAPAS" fonctionnait ? J'ai essayé les deux méthodes mais aucune ne me fait sortir de Pasapas... Merci d'avance pour votre aide! Cordialement Johan |
||||||||||||
|
lguenhael
Administrateur
|
Bonjour,
Dans votre cas il faut écrire :
Enfin pour type "tab.arret=vrai;" il me semble que ça ne fonctionne pas sur toutes les versions mais quand ça fonctionne il faut ensuite sortir tab de la procédure perso en remplaçant "finp;" par "finp tab;" Nota : il n'est pas utile d'écrire "tab2 = pasapas tab ;", "pasapas tab ;" fonctionne tout aussi bien. Cordialement. |
||||||||||||||
Dernière édition par lguenhael le 17 Fév , 2010 15:58; édité 2 fois |
jowayne25
|
Bonjour,
Merci pour votre réponse et vos remarques. "QUITTER tab;" marche bien dans le sens où mon calcul s'arrête lorsque je dépasse mon critère, mais non pas parce qu'on lui demande de quitter pasapas mais parce qu'il trouve une erreur dans l'opérateur QUITTER. Il ne veut pas d'objet de type table, voici le message d'erreur :
Par conséquent je dois lui rentrer la suite de mon fichier (deuxième procédure pasapas) manuellement (ça marche mais j'aurais préféré que ça se fasse automatiquement...sans erreur jusqu'à la fin de mon fichier) Si ce n'est pas possible de faire autrement j'essayerais de faire mon changement de pas de temps dans la même procédure via "tab.a_calculer" ... Merci d'avance Cordialement Johan |
||||||||||||||
|
lguenhael
Administrateur
|
Bonjour,
Désolé mais ce n'était pas bon, vous pouvez utiliser :
Sinon, essayez de mettre dans votre procédure perso :
En remplaçant aussi "finp;" par "finp tab;". Ces deux solutions devraient fonctionner (je n'ai pas le temps de les tester). Parcontre la seconde est à privilégier. Cordialement. |
||||||||||||||||
|
jowayne25
|
Bonjour,
J'ai testé les deux sur plusieurs versions de Castem (au cas où....) mais ça ne fonctionne pas ... 'QUITTER' BEXTERN; donne une erreur alors que tab.arret=vrai; ne donne pas d'erreur mais n'arrête pas le calcul non plus ... Par avance merci Cordialement Johan |
||||||||||||
|
lguenhael
Administrateur
|
Bonsoir,
J'espère que cette fois ci sera la bonne. Essayez avec :
Même si je ne l'ai pas re-testé, ça sort d'un de mes programmes donc il y a plus de chance que ça fonctionne cette fois, hormis un éventuel problème de version... Cordialement. |
||||||||||||||
|
jowayne25
|
Parfait !! Ça fonctionne !!
Merci beaucoup ça va vraiment bien m'aider !! Bien cordialement Johan |
||||||||||||
|
évolution du pas de temps ds Pasapas [Résolu] |
|
||
Powered by phpBB Forum © phpBB Group
Design by phpBBStyles.com | Styles Database.
Content © RDforum.free.fr/Cast3M
Design by phpBBStyles.com | Styles Database.
Content © RDforum.free.fr/Cast3M