Deformation of previous step, Can I record it?

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Deformation of previous step, Can I record it?

Post by pejman_opensees » Mon Apr 26, 2010 11:51 am

Frank,
I am about to develop a 2D bi-linear elastic perfectly plastic spring type element which works with force-deformation or moment-rotation relationships. In order to track the entire hysteretic behavior in a full cycle, I need to record the displacements and/or deformations of the current step as well as the previous step. How can I record the deformations of the previous steps or precisely last step before the current one?
Thanks in advance,
Pejman

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Mon Apr 26, 2010 12:43 pm

somewhat confused by your request .. the record command creates recorders that record at every commited step, i.e. succeful analysis step, if one was provided you get the response at last comiitted step by default.

do you mean at every trial step between committed steps?

pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees » Tue Apr 27, 2010 12:27 am

Actually I was not asking about tcl-opensees commands. I did not mean to use recorder command to record the displacements of my previously-made model. I am developing a new elastic-perfectly plastic element. My element functions well in monotonic loading but I somehow encountered a problem in unloading and/or reloading state. In order to tackle this problem I need to save the displacement and/or deformations at every committed state in an array or something. Doing so, I would be able to compare the displacements in consecutive steps (esp. current state and the last state before current) and then I could recognize what phase of laoding I am in. For instance, if the current displacement minus the last one is a negative vetor, I am in unloading phase and then I may change the stiffness matrix to unloading stiffness. I dont need trial displacements between steps.
The question simply is how I can record the displacements of my element during loading history?
I hope I have clearly outlined the question.
Thanks in advance
Pejman

pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees » Thu Apr 29, 2010 10:10 am

Is there any object pointer referring to displacements at every committed step?
I think I can do the same thing as recorder command does. The only problem is I dont know how recorder command functions?
How can I save the displacements of my element in C++?
Pejman

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Thu Apr 29, 2010 11:58 am

you have access to the nodes from your element they contain the displacements! .. for debugging purposes you could open a file for each element using it's tag and place in the file whatever you want and you could put the information in at an update or commit.

mja165
Posts: 18
Joined: Wed Sep 28, 2011 3:53 pm

Re: Deformation of previous step, Can I record it?

Post by mja165 » Fri Oct 26, 2012 8:41 pm

I have a problem similar to Pejman.
I have created a simple material model comprising of loading/unloading curves. During analysis, I want my curve to follow the previous loading/unloading curve if the current one intersects with the previous one. For this to happen, I need to save the parameters of the last two unloading/reloading branches. How can I save the parameters of the last two cycles?

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Deformation of previous step, Can I record it?

Post by fmk » Tue Nov 13, 2012 2:43 pm

you will have to save them as additional state variables in your material.

Post Reply