i'm trying to perform a nonlinear analysis in code aster. the problem concerns elastoplastic state in metalpart. i've defined stress-strain curve for material ( part) to be analyzed and divided the time of solution in 10 increments . the problem i'm describing is quite time consuming, beacouse the model consists of 140 tsd quadratic elements ( with 220 tsd nodes).
as ist turned out the analysis took over 5 days! and i did't get any results because of the programs premature termination.
i 've defined 50 hours of cpu time in ASTK but it was still to less.
acctualy i'd like to ask You about one thing: Is it possible in code aster that it writes (readable) results after every succesfully performed iteration? suppose the model is so defined that solution , because of the conditions taking place in model, cannot be brought to end. it seems to be strange that it couldn't be possible to get any solution in such a case.
i've noticed that aster performs its work step-by-step according to the sequence of commands given in .comm file and when stat_non_lin is not done it won,t go any further.
i'd like to ask You if there is any command or some trick how to get partial results while the analysis is running ( acctualy when its not completed).
honestly it's not my last question but i think it's enough for the first time;)
thanks a lot for your answers ( in advance)
You may try to use python's error handling (don't forget DEBUT(PAR_LOT='NON',); )
except aster.NonConvergenceError, message:
print 'Convergence not reached. Exiting...'
except aster.MatriceSinguliereError, message:
print 'Singular matrix. Exiting...'
except aster.error, message:
print 'Error raised. Exiting...'
this way if STAT_NON_LINE fails Aster is still able to proceed and to save the base (don't forget to save the base in ASTK). Then use a separate post-processing .comm with POURSUITE() to load the base and extract your results.
Hope this helps.
thanks a lot for your reply
although it seems a bit complicated to me right now, i'll try to handle it somehow
This is what the database is for in Code_Aster. One defines a "base" type field in ASTK with R and C cases ticked in order to retrieve a database that can be used later to analyze the results or continue a computation.
In the latest version 9.4 of Code_Aster, you do not need anymore to be concerned with "exceptions" since every error will lead to Code_Aster saving the database (provided you define the correct field in ASTK).
Regarding your particular calculation, what happened at the end of the allocated time, did Code_Aster simply stopped or did it say there was no CPU time available and that it was saving a database ?
use pousuite isn't so difficult, I attached a simple .comm where I use poursuitè command, try to study this simple .comm.
Whsn you creta .astk is importatnt that you use the .base (not compressed) used in the calculation.
Salome-Meca 2016 (Intel Xeon 8 Core x 2 RAM 32GiB) Ubuntu 16.04 LTS
Hi Thomas and Jacopo
thanks very much for your reply
i'll try to give some more details about my particular problem, especially in context of Thomas' question. i think i'll place the attachment ( my model and associated files files) on the forum.
one thing that makes me troubled ist how to interpret the time taken by aster to solve the task. i defined 50 hours for solution, and it actually took 6 days! but according to mess file infos the time of all operations performed during the run adds up to ca. 180000sek ( 50 hours). does it mean that all remaining time was consumed for data traffic form memory to disc and reverse? can somebody enlighten me how to understand whats going on?
as it can be seen form my mess file , after the 50 hours have passed aster run was terminated. the base was created . there are 2 files in there :glob.1.gz ( is about 750 mb big) and pick.1.gz . so You mean a can retrieve results form those files? next question arises, about poursuite procedure: according to what i see in Jacopo's file , after poursuite command comes next one ordering continuation of solution ( from the place it was interrupted?) ? but can i really directly extract existing results form that database , regardless of how many solved increments it contains. or it is necessary to force program to complete ordered , say, 10 increments in order to be able to obtain results?
before i'll try to tamper with the base, i'd like to get some advice from more experinced users;)
sorry, forgot to add attachment
does it mean that all remaining time was consumed for data traffic form memory to disc and reverse? can somebody enlighten me how to understand whats going on?
Yes indeed. Here you consumed as much as 12514sec of system time (meaning system call such as disk access were needed), since system resources are shared it might take longer to access them especially when you are using your local machine (instead of a dedicated cluster).
You mean a can retrieve results form those files
Of course ! As I said this is the whole point of saving a database. You can continue a non-linear computation just by supplying the resulting concept from the previous aborted calculation (it will use by default the last converged time step to start, meaning it will take the displacement, the stress and internal variables).
is there any limit for file size to be attached?
2 MB max.