Recording stress fro Brick8N

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

Moderators: silvia, selimgunay, Moderators

Post Reply
enginbal
Posts: 24
Joined: Mon Sep 18, 2006 12:38 pm
Location: Istanbul Technical University
Contact:

Recording stress fro Brick8N

Post by enginbal »

Hi,

I have a brick element created by using Brick8N and I try to get stress output. OpenSees crates the output file but it is always empty. I created an example below so that you could check it out.

Thanks in advance,

Ihsan...

-----------------------------------------------------------------

model BasicBuilder -ndm 3 -ndf 3

#################### Nodes ###############################
node 1 0 0 0
node 2 0.5 0 0
node 3 0 0 0.5
node 4 0.5 0 0.5
node 5 0 -0.5 0
node 6 0.5 -0.5 0
node 7 0 -0.5 0.5
node 8 0.5 -0.5 0.5

################### Fix supports ###############################
# tag DX DY DZ
fix 1 1 1 1
fix 2 1 1 1
fix 5 1 1 1
fix 6 1 1 1

nDMaterial ElasticCrossAnisotropic 1 3500000 2000000 0.2 0.2 800000

#################### Elements ###################
#element Brick8N $eletag $nd1 $nd2 $nd3 $nd4 $nd5 $nd6 $nd7 $nd8 $matTag $bf1 $bf2 $bf3 $massDens
element Brick8N 1 4 8 7 3 2 6 5 1 1 0 0 0 0

pattern Plain 1 "Linear" {
# Create nodal loads at nodes 3 & 4
# nd FX FY FZ
load 3 -1 0 0
load 7 -1 0 0
}

#################### Recorders ##################
recorder Element -file brick.out -ele 1 -mat 1 stress

#################### Analysis ##################
numberer RCM
system BandGeneral
constraints Transformation
numberer RCM
test NormDispIncr 1.0e-3 30 1
algorithm Newton
integrator LoadControl 0.1
analysis Static
Dr. Ihsan Engin BAL
Researcher, EUCENTRE, Pavia, Italy
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

the material as written will not return the stress .. it works with tensors and not vectors (as does all code from B.Jeremic) .. you will need to ask the element for the stresses or ask boris to update his code.

this will output the stresses for the element:
recorder Element -file brick.out -ele 1 stress
Last edited by fmk on Wed Feb 20, 2008 10:28 am, edited 1 time in total.
Boris
Posts: 95
Joined: Mon Jun 14, 2004 3:57 pm
Location: UC Davis

Post by Boris »

Hello Ihsan,

I think that we have that output (and others) working, but since our project with OpenSees expired, we now maintain our own source base, used for other projects we work on...

Depending on what you do want to model, and since we use part of OpenSees framework, maybe we could help you with our models, elements...

Boris
enginbal
Posts: 24
Joined: Mon Sep 18, 2006 12:38 pm
Location: Istanbul Technical University
Contact:

Post by enginbal »

Hello Boris,

Thanks for asking for help.

I have a very simple portal RC frame filled with masonry infill. All elements are modelled with simple elastic materials, infill material is modelled with elastic anisotropic one. So, everything works elastic. Infills are modelled with Brick8N elements. There are no-tension gap elements between the infill and the RC frame.

Briefly, I need to get stresses (or better strains) of those Brick8N elements. That's all...

I can send my set of input files to your e-mail as well, if needed.

Thanks again.

Ihsan...
Dr. Ihsan Engin BAL
Researcher, EUCENTRE, Pavia, Italy
rjaeger
Posts: 102
Joined: Thu Aug 31, 2006 9:57 pm
Location: UC Davis

Post by rjaeger »

Hello,

I think that strains could be recorded quite easily by adding the following code to the getresponse function of the brick8N element:

Code: Select all

case 4:
{
    int count = r_integration_order* s_integration_order * t_integration_order;
    int i;
    straintensor sts;
    InfoS(0) = count;
    
    for( short GP_c_r = 1 ; GP_c_r <= r_integration_order ; GP_c_r++ )
    {
        for( short GP_c_s = 1 ; GP_c_s <= s_integration_order ; GP_c_s++ )
        {            
            for( short GP_c_t = 1 ; GP_c_t <= t_integration_order ; GP_c_t++ )
            {    
                i = ((GP_c_r-1)*s_integration_order+GP_c_s-1)*t_integration_order+GP_c_t-1;

                sts = matpoint[i]->getStrainTensor();
                InfoS(i*6+1) = sts.cval(1,1); //epsilon_xx
                InfoS(i*6+2) = sts.cval(2,2); //epsilon_yy
                InfoS(i*6+3) = sts.cval(3,3); //epsilon_zz
                InfoS(i*6+4) = sts.cval(1,2); //epsilon_xy
                InfoS(i*6+5) = sts.cval(1,3); //epsilon_xz
                InfoS(i*6+6) = sts.cval(2,3); //epsilon_yz
            }
        }
    }
}

**This code is modified from the stress recorder

You will also need to change the case number to match a new if statement in the setresponse function. It should be relatively straightforward if you look at the code for this element.

-Robbie Jaeger
Post Reply