fracture modeling

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
ca493
Posts: 43
Joined: Wed Sep 05, 2007 10:26 pm
Location: University of Illinois

fracture modeling

Post by ca493 »

Hello,

I have heard on this message board that it is possible to pause the analysis and make changes to the model. I cannot find the post anymore but is this true?

I would like to keep track of an element's force and displacement. If either of those reaches a certain limit, I would like to pause OpenSEES and replace it with a new element.

Do you know the syntax or have any references?

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

Post by fmk »

yes and you can use the following commands to monitor progress:

Code: Select all

nodeDisp nodeTag? dof?
eleForce eleTag? dof?
to remove an element the command is:

Code: Select all

remove element eleTag?
just make sure if you remove an element you stop any recorders that ontain the element as you will currently get a seg fault if you don't.
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

It is really an interesting topic. Is it really possible to model connection fracture this way? Is it possible to:
1) monitor the node rotation first and then
2) at specified rotation (say 0.02 rad), break the analysis, and then romove the node or element and
3) continue the analysis with the rest of the model?

Is it really possible to do such a task in Opensees?
Pejman
ca493
Posts: 43
Joined: Wed Sep 05, 2007 10:26 pm
Location: University of Illinois

Post by ca493 »

Thank you Frank, I appreciate your help.

And I hope that it is possible. Ina couple of days I will probably do a simple check with a single element or frame to get a feel for its performance.

There might be some funny issues with introducing a brand new element with a new stiffness but I guess I will find out soon!
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

please let us know when you are done with that. I personally would be grateful. :wink:
Pejman
ca493
Posts: 43
Joined: Wed Sep 05, 2007 10:26 pm
Location: University of Illinois

Post by ca493 »

Hello,

So I think, as of now, this method works nicely. Of course, I running into some logistical issues so hopefully it will work out. Also, I am testing with only 1 element which simplifies things a lot.

When I replace the element after it reaches a certain displacement, the new element is inserted, however, it resets to 0 stress and 0 strain. I was expecting this, but I cant seem to find a solution yet. Maybe there is a way to give an element an initial stress and strain?? Does anyone know?

Modeling fracture may be easier because you can just remove the element and not replace it. That way there is no worries about the current state of the new element.

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

Post by pejman_opensees »

I have not tested this method yet but just as a question: " What would happen if we had a structrue in which several nodes and elements may be subject to fracture?"
To resolve this problem reasonably, one suggestion would be to assign some node monitoring within the tcl code of the model and then get the report of stress or strain ( or alternatively moments and forces) and save them all into variables. Then check if these variables reach or exceed a threshold and if so, use remove command to remove the element from the model. and then analysis may continue with the rest of the model.
All of these abovementioned steps would be better done automatically to save time and energy!
I wonder whether or not this is possible .
thanks alot
Pejman
ca493
Posts: 43
Joined: Wed Sep 05, 2007 10:26 pm
Location: University of Illinois

Post by ca493 »

Hello,

Yes that is similar to what I did (although I was just using 1 element, I'm sure it wont be too different for multiple elements). Inside the model, I have a check that monitors the disp/forces. The one downside is that I have to perform the analysis 1 step at a time. With a very fast computer, however, this wont really matter too much. I have the following code:

Code: Select all

      analysis Transient;					
      puts "Analyzing..."
      set dispCheck [nodeDisp 2 1];
      set forceCheck [eleForce 1 1];
      
      set count 0;
      while {abs($dispCheck) < $disp_Limit && $count <= $num_steps} {
      	analyze 1 1;	
      	set count [expr $count + 1];
      	set dispCheck [nodeDisp 2 1];
      	puts $dispCheck
      	}
      set controlTime [getTime]
      if {$controlTime/$dt < $num_steps} {
      remove element 1;
      element nonlinearBeamColumn 1 1 2 5 $post_secID $transfTag;
      remove recorder $recorderTag1;
      remove recorder $recorderTag2;
      recorder Element -file Data/Force2.txt -time -ele 1 localForce;			
      recorder Element -file Data/def2.txt -time -ele 1 section 2 deformation;
      puts "woot"
      integrator Newmark 0.5 0.25
      constraints Transformation 
      numberer RCM
      system BandGeneral 
      integrator LoadControl 1;
      test NormDispIncr 1.0e-8 100;
      set NewtonLineSearch_Ratio 0.65
      set algorithmType NewtonLineSearch 
      algorithm $algorithmType $NewtonLineSearch_Ratio;  
      analyze [expr int($num_steps-$controlTime/$dt)] $dt
      }
There may be a more efficient way to do this but this is what first came to my head so I did it just to check the method.

OR, it may be easier to use the MinMax command which allows an element to be functional only if its strains remain within a certain range that you set

Hope this helps!
seocy
Posts: 39
Joined: Wed Feb 22, 2006 6:26 pm
Location: Lehigh

recorder tag??

Post by seocy »

hello users
I am trying similar things you guys did here. I simulate the fracture of pt bar in my model so I use "remove" command to eliminate the pt element during analysis. But I have a question regarding recorderTag shown in the code ca493 posted above.

I can successfully remove the element however, I don't know how to remove the recorder that records the removed element response. In the code, "recorderTag" seems to be used to identify the recorder to remove. But there is no recordertag anywhere in recorder tcl command. my os crashed because of this.. would you help me how to remove recorder?
Post Reply