* TOPORESO PROCEDUR FD218221 25/12/18 21:15:13 12429 ************************************************************************ ** Procedure called by TOPOPTIM for solving the finite element ** problem(s) ** ** Author: ** Guenhael Le Quilliec (LaMe - Polytech Tours) ** ** Version: ** 3.0 2025/11/20 Made compatible with TOPOPTIM V4.0 ** 2.0 2021/04/22 Made compatible with Cast3M-2020 ** for linear thermo-mechanical resolution ** 1.0 2021/04/15 Initial version ************************************************************************ DEBP TOPORESO tab*'TABLE' ; * Input data * ********** Wtab = tab.'WTABLE' ; Ltab = Wtab.'LOGIQUE' ; Lmcn = Ltab.'MECANISME' ; mshA = Wtab.'MAILLAGE_A' ; ldg = Wtab.'CHARGEMENT' ; SI Ltab.'MECANIQUE' ; modMA = Wtab.'MECANIQUE'.'MODELE_A' ; ZmatMA = Wtab.'MECANIQUE'.'CARACTERISTIQUES_Z_A' ; bdcM = Wtab.'MECANIQUE'.'BLOCAGES' ; modA = modA ET modMA ; ZmatA = ZmatA ET ZmatMA ; ldgM = Wtab.'MECANIQUE'.'CHARGEMENT' ; FINS ; SI Ltab.'THERMIQUE' ; modTA = Wtab.'THERMIQUE'.'MODELE_A' ; ZmatTA = Wtab.'THERMIQUE'.'CARACTERISTIQUES_Z_A' ; bdcT = Wtab.'THERMIQUE'.'BLOCAGES' ; modA = modA ET modTA ; ZmatA = ZmatA ET ZmatTA ; ldgT = Wtab.'THERMIQUE'.'CHARGEMENT' ; FINS ; SI Ltab.'CONTACT' ; modA = modA ET Wtab.'CONTACT'.'MODELE_A' ; ZmatA = ZmatA ET Wtab.'CONTACT'.'CARACTERISTIQUES_A' ; FINS ; * Solve FE problem(s) * ******************* SI Ltab.'CAS_MULTIPLES' ; casnbr = Wtab.'NB_CAS' ; REPE itr casnbr ; SI Ltab.'MECANIQUE' ; resA.&itr.'BLOCAGES_MECANIQUES' = bdcM.&itr ; FINS ; SI Ltab.'THERMIQUE' ; resA.&itr.'BLOCAGES_THERMIQUES' = bdcT.&itr ; FINS ; resA.&itr.'CHARGEMENT' = ldg.&itr ; resA.&itr.'MODELE' = modA ; resA.&itr.'CARACTERISTIQUES' = ZmatA ; SI Lmcn ; FINS ; MENA 'OBLI' ; resA.&itr.'TEMPS_SAUVES' = Wtab.'TEMPS_SAUVES' ; SI Lmcn ; resA.&itr.'MECANISME_ENTREE'.'RIGIDITE_CONSTANTE' = Wtab.'RESSORTS'.&itr ; resA.&itr.'MECANISME_SORTIE'.'CHARGEMENT' = Wtab.'MECANISME'.&itr ; MESS '| |' ; MESS '| |' ; MESS '| Resolution Mecanisme Entree |' ; MESS '| |' ; * Index of last saved data MESS '| |' ; MESS '| |' ; MESS '| Resolution Mecanisme Sortie |' ; MESS '| |' ; * Index of last saved data FINS ; SI (((NON Lmcn) ET Ltab.'MECANIQUE') OU (Lmcn ET (tab.'MECANISME_ZERO_SPRING' OU ((ABS tab.'POIDS_ENERGIE_DEFO') > tab.'PRECISION')))) ; MESS '| |' ; MESS '| |' ; SI Lmcn ; MESS '| Resolution Sans Ressorts |'; FINS ; MESS '| |' ; * Index of last saved data FINS ; SINO ; SI Ltab.'MECANIQUE' ; SI Lmcn ; tmp1 = tmp ET Wtab.'RESSORTS'.&itr ; resA.&itr.'MECANISME_ENTREE'.'DEPLACEMENTS'= tmp2 ; resA.&itr.'MECANISME_SORTIE'.'DEPLACEMENTS'= tmp2 ; FINS ; SI ((NON Lmcn) OU (Lmcn ET (tab.'MECANISME_ZERO_SPRING' OU ((ABS tab.'POIDS_ENERGIE_DEFO') > tab.'PRECISION')))) ; resA.&itr.'DEPLACEMENTS' = tmp ; FINS ; FINS ; SI Ltab.'THERMIQUE' ; ldgT.&itr ; FINS ; FINS ; FIN itr ; FINS ; SINO ; resA.'MODELE' = modA ; resA.'CARACTERISTIQUES' = ZmatA ; SI Lmcn ; FINS ; MENA 'OBLI' ; resA.'TEMPS_SAUVES' = Wtab.'TEMPS_SAUVES' ; SI Lmcn ; resA.'MECANISME_ENTREE'.'RIGIDITE_CONSTANTE' = Wtab.'RESSORTS' ; resA.'MECANISME_SORTIE'.'CHARGEMENT' = Wtab.'MECANISME' ; MESS '| |' ; MESS '| |' ; MESS '| Resolution Mecanisme Entree |' ; MESS '| |' ; * Index of last saved data MESS '| |' ; MESS '| |' ; MESS '| Resolution Mecanisme Sortie |' ; MESS '| |' ; * Index of last saved data FINS ; SI (((NON Lmcn) ET Ltab.'MECANIQUE') OU (Lmcn ET (tab.'MECANISME_ZERO_SPRING' OU ((ABS tab.'POIDS_ENERGIE_DEFO') > tab.'PRECISION')))) ; SI Lmcn ; MESS '| |' ; MESS '| |' ; MESS '| Resolution Sans Ressorts |' ; MESS '| |' ; FINS ; PASAPAS resA ; * Index of last saved data FINS ; SINO ; SI Ltab.'MECANIQUE' ; SI Lmcn ; tmp1 = tmp ET Wtab.'RESSORTS' ; resA.'MECANISME_ENTREE'.'DEPLACEMENTS' = tmp2 ; resA.'MECANISME_SORTIE'.'DEPLACEMENTS' = tmp2 ; FINS ; SI ((NON Lmcn) OU (Lmcn ET (tab.'MECANISME_ZERO_SPRING' OU ((ABS tab.'POIDS_ENERGIE_DEFO') > tab.'PRECISION')))) ; resA.'DEPLACEMENTS' = tmp ; FINS ; FINS ; SI Ltab.'THERMIQUE' ; FINS ; FINS ; FINS ; * Output data * *********** * Save the resolution table Wtab.'RESOLUTION_A' = resA ; FINP ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales