User login

Navigation

You are here

periodic boundary conditions in ABAQUS 6.9-1

Hi

I have a problem with applying periodic boundary condition. I have used *EQUATION in constraints for opposite nodes and surfaces. But I still have some problem with that for sure I making some simple mistake. If anyone could look at my model and find problem. Abaqus version 6.9-1 .
Thanks a lot.

Comments

Johannes T.B. Overvelde's picture

I have implented periodic boundary conditions, What is the problem you encounter?

One important thing to know is that abaqus throws away the first degree of freedom given in the equation command. This degree of freedom can't be used in the next equation commands other BC. You can use a virtual node to overcome this problem.

Or do you encounter a different problem?

Hi Mr. Overvelde,

I know its a very old post. But i am encountering the same problem that you have described about in this post , while using Periodic Boundary Condition in 3D RVE. The problem is occuirng while implementing PBC on edges and corner nodes, as they have to satisy the periodicty in more than one direction. So because of this, after having implemented the PBC in one direction, the abaqus doesnt take PBC in the other direction as it eliminates D.O.F which is once used in the equation. Can you please let me know how did you overcome this using virtual node?

 Thanks in advance,

Danish

Hi 

 Thanks for reply. I would like to have left and right periodic behaviour in mulitlayer material. I want make a compresion test on it. But I have problem with that. I put the .cae to other forum that you can download and look at it. 

http://www.eng-tips.com/viewthread.cfm?qid=283938&page=1

Thanks one more. 

Johannes T.B. Overvelde's picture

Sorry, tried to open, but have a different version of abaqus. Tried to convert it, but it does not work. Maybe you can explain te problem, do you get an error message?

 

Hi

Here is pictures describing my problem. I need have periodic boundary form left to right side of mulitlayer material. On the picures I have symetric boundary conditions but it isn't what I need.

http://picasaweb.google.pl/perzynski/OstatnioZaktualizowane?authkey=Gv1sRgCNK674L1k-fbAQ#5531864917220153986

Johannes T.B. Overvelde's picture

Ok,

 

And what is the problem you run into applying the periodic boundary conditions? Did you already try equation command? Do you use the GUI, Input file or scripting to apply boundary condition?

You should create a virutal node (Abaqus calls it a reference node, it's a part)

Then appy equation constraint. For instance NodeLeftX - NodeRightX = VirtNodeX

Do this also for the y direction and if your want also for the rotation

Then you can add a displacement to the virtual node. For instance if you want the displacement in the x direction to be equal to a certain strain you just change virtNodeX in your boundary conditions. 

 

Hi

 Thanks for last replay I was applying equation with this same instance what you wrote above. I have problem with NSET into equation it was possible in Abaqus version 6.5 now I'm using 6.9 and here is a problem. You can look at the picture I have 300 on the left and 300 on the right side. Applying equations for all of then need some kind of script I was trying different kind of TIE, couplings or RF point for that but without good results. Do you have some other idea? Thanks a lot.

 

Johannes T.B. Overvelde's picture

I didn't use the sets in combination with the equation command. I couple 100 points on the left to 100 points on the right and I do this 1 by 1. But using script this will be fast.

-First create 2 sets, one set of points on your left, one set of points to your right.
-second create sets containing only one node for left and right and name and sort them such that you can couple them easily.
-Third apply the equation command. I have added my script code below. I hope this makes sence.

I start from the point where I already have the sets for left right top and bottom. Then i create sets for my reference points.
Then I create the sets for each node, and loop over all nodes creating the equation command.
If you make an error creating the equation constraints there is a large change you will get a kernal error. I got this a lot of times. It will definitely come from the equation command. Good luck!

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

    mdb.models[modelName].parts['RefPoint1'].Set(name='SetRefPoint1',
        referencePoints=(
        mdb.models[modelName].parts['RefPoint1'].referencePoints[1], ))
    mdb.models[modelName].parts['RefPoint2'].Set(name='SetRefPoint2',
        referencePoints=(
        mdb.models[modelName].parts['RefPoint2'].referencePoints[1], ))
    mdb.models[modelName].rootAssembly.regenerate()

    #node sets
    #left wall
    a=[]
    for i in mdb.models[modelName].parts[partName].sets['sL'].nodes:
        a=a+[(i.coordinates[1],i.label)]
    a.sort()
    rep=1
    for i in a:
        mdb.models[modelName].parts[partName].Set(name='Node-'+str(rep), nodes=
            mdb.models[modelName].parts[partName].nodes[(i[1]-1):(i[1])])
        rep=rep+2
    #right wall
    a=[]
    for i in mdb.models[modelName].parts[partName].sets['sR'].nodes:
        a=a+[(i.coordinates[1],i.label)]
    a.sort()
    rep=2
    for i in a:
        mdb.models[modelName].parts[partName].Set(name='Node-'+str(rep), nodes=
            mdb.models[modelName].parts[partName].nodes[(i[1]-1):(i[1])])
        rep=rep+2
    LenAV=len(a)
    #bottom wall
    a=[]
    for i in mdb.models[modelName].parts[partName].sets['BOTTOM'].nodes:
        a=a+[(i.coordinates[0],i.label)]
    a.sort()
    rep=2*LenAV+1
    for i in a:
        mdb.models[modelName].parts[partName].Set(name='Node-'+str(rep), nodes=
            mdb.models[modelName].parts[partName].nodes[(i[1]-1):(i[1])])
        rep=rep+2
    #top wall
    a=[]
    for i in mdb.models[modelName].parts[partName].sets['TOP'].nodes:
        a=a+[(i.coordinates[0],i.label)]
    a.sort()
    rep=2*LenAV+2
    for i in a:
        mdb.models[modelName].parts[partName].Set(name='Node-'+str(rep), nodes=
            mdb.models[modelName].parts[partName].nodes[(i[1]-1):(i[1])])
        rep=rep+2
    LenAH=len(a)

    #constraints
    rep=1
    for i in range(0,LenAH):
        mdb.models[modelName].Equation(name='Constraint-x-'+str(i+1),
            terms=((1.0, instName+'.Node-'+str(rep), 1),(-1.0, instName+'.Node-'+str(rep+1), 1),
            (1.0, 'RefPoint1-1.SetRefPoint1', 1),(0, 'RefPoint1-1.SetRefPoint1', 1)))
        rep=rep+2
    rep=1
    for i in range(0,LenAH):
        mdb.models[modelName].Equation(name='Constraint-y-'+str(i+1),
            terms=((1.0, instName+'.Node-'+str(rep), 2),(-1.0, instName+'.Node-'+str(rep+1), 2),
            (1.0, 'RefPoint1-1.SetRefPoint1', 2),(0, 'RefPoint1-1.SetRefPoint1', 2)))
        rep=rep+2
    val=1
    test=mdb.models[modelName].parts[partName].vertices.findAt((0,0,0),)
    if test==None:
        val=0
    time.sleep(1)
    rep=2*LenAH+1+2*val
    for i in range(LenAH,LenAV+LenAH-val):
        mdb.models[modelName].Equation(name='Constraint-x-'+str(i+1),
            terms=((1.0, instName+'.Node-'+str(rep), 1),(-1.0, instName+'.Node-'+str(rep+1), 1),
            (1.0, 'RefPoint1-2.SetRefPoint2', 1),(0, 'RefPoint1-2.SetRefPoint2', 1)))
        rep=rep+2
        j=i+1
    rep=2*LenAH+1+2*val
    for i in range(LenAH,LenAV+LenAH-val):
        mdb.models[modelName].Equation(name='Constraint-y-'+str(i+1),
            terms=((1.0, instName+'.Node-'+str(rep), 2),(-1.0, instName+'.Node-'+str(rep+1), 2),
            (1.0, 'RefPoint1-2.SetRefPoint2', 2),(0, 'RefPoint1-2.SetRefPoint2', 2)))
        rep=rep+2

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

Thanks a lot this help me in 100%

Wenbin Yu's picture

To completely avoid the difficulty with periodic boundary conditions and applying load for homogenization, it is better to use a general-purpose micromechanics code such as VAMUCH , which requires no boundary conditions neither applied loads.

can any body tell me how to define Referance point as node in assembly module of abaqus 6.10

thanks for the reply

Dear Friend

hello and good time!

i want to apply PBC for a cube to achieve uniform displacement and potential for edge nodes in opposite faces. i want to restrict displacement in three directions including U1,U2,U3 and also electric potential. but i dont know how to import it in abaqus. i have an equation for each four nodes in oposite sides of faces.

Wenbin Yu's picture

To avoid the difficulty of applying PBC or creating periodic mesh, you can try SwiftComp, a general-purpose multiscale, multiphysics constitutive modeling code based on Mechanics of Structure Genome. It can be freely launched in the cloud at https://cdmhub.org/resources/scstandard. Or used as a plugin for other FEA codes such as ABAQUS or ANSYS to power conventional FEA codes with high-fidelity composite modeling capability. 

Subscribe to Comments for "periodic boundary conditions in ABAQUS 6.9-1"

Recent comments

More comments

Syndicate

Subscribe to Syndicate