RDforum.free.fr/Cast3M   Index du Forum
Site Web Cast3M
RDforum.free.fr/Cast3M
Forum d'entraide des utilisateurs de Cast3M
Répondre au sujet
évolution du pas de temps ds Pasapas [Résolu]
jowayne25


Inscrit le: 30 Avr 2009
Messages: 9
Répondre en citant
Bonjour,

Je souhaite faire plusieurs simulations mécaniques Pasapas avec un pas de temps élevé tant que je suis dans le domaine élastique puis diminuer le pas de temps quand je commence à plastifier. J'y arrive manuellement en relançant la simulation avec un pas de temps plus faible à partir de ce temps pour lequel je commence à plastifier mais j'aimerais pouvoir le faire de manière automatique car j'ai beaucoup de simulations à faire...

Je pensais faire une boucle sur pasapas avec un test sur le déplacement ou sur les déformations plastiques qui quand je l'aurais atteint débouchera sur une autre procédure pasapas avec un pas de temps plus faible ... Mais je me demande si le fait de sortir de pasapas à chaque pas de temps ne va pas me ralentir considérablement le calcul ?

Est ce qu'il existe une autre méthode pour faire varier le pas de temps en fonction des sorties de pasapas (tab.deplacement par exemple...) ?

Merci d'avance
Cordialement
Johan
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
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.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
jowayne25


Inscrit le: 30 Avr 2009
Messages: 9
Répondre en citant
Bonjour,

Merci de votre réponse, je vais essayer ça !

Cordialement
Johan
Voir le profil de l'utilisateurEnvoyer un message privé
jowayne25


Inscrit le: 30 Avr 2009
Messages: 9
Répondre en citant
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
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

Dans votre cas il faut écrire :

Citation:
QUITTER tab ;


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
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
jowayne25


Inscrit le: 30 Avr 2009
Messages: 9
Répondre en citant
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 :

Citation:
CRITERE DEPASSE
***** ERREUR 39 ***** dans l'op�rateur QUIT
On ne veut pas d'objet de type TABLE
La lecture des donn�es continue sur le terminal
Instruction num�ro 8 ex�cut�e au moment de l'erreur :
QUITTER TAB
incoherence 1 lodesl
Elle est dans la proc�dure dont l'appel en ligne 290 est :
PERSO1 PRECED
Elle est dans la proc�dure dont l'appel est :
PASAPAS TAB
incoherence 2 lodesl


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
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonjour,

Désolé mais ce n'était pas bon, vous pouvez utiliser :

Citation:
'QUITTER' BEXTERN;


Sinon, essayez de mettre dans votre procédure perso :

Citation:
tab.arret=vrai;


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.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
jowayne25


Inscrit le: 30 Avr 2009
Messages: 9
Répondre en citant
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
Voir le profil de l'utilisateurEnvoyer un message privé
lguenhael
Administrateur

Inscrit le: 25 Nov 2006
Messages: 146
Localisation: Laboratoire Roberval - UTC
Répondre en citant
Bonsoir,

J'espère que cette fois ci sera la bonne. Essayez avec :

Citation:
tab . 'WTABLE' . 'ARRET' = VRAI ;


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.
Voir le profil de l'utilisateurEnvoyer un message privéEnvoyer un e-mail
jowayne25


Inscrit le: 30 Avr 2009
Messages: 9
Répondre en citant
Parfait !! Ça fonctionne !! Very Happy

Merci beaucoup ça va vraiment bien m'aider !!

Bien cordialement
Johan
Voir le profil de l'utilisateurEnvoyer un message privé
évolution du pas de temps ds Pasapas [Résolu]
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous pouvez joindre des fichiers
Vous pouvez télécharger des fichiers
Toutes les heures sont au format GMT + 2 Heures  
Page 1 sur 1  

  
  
 Répondre au sujet