← Back to team overview

yade-users team mailing list archive

Re: [Question #295587]: Box Free Oscillation

 

Question #295587 on Yade changed:
https://answers.launchpad.net/yade/+question/295587

Jan Stránský proposed the following answer:
Hi Luis,
even if you set fixed=False, the facets have by default zero mass and
inertia, which causes NaNs in NewtonIntegrator (a=F/m) and particle's
positions and they disappear.

There are several options:
1) set manually mass and inertia (but then each facet would behave like
independent particle, which is probably not what you want)
2) use facet box as a clump (assign mass and inertia to facets before
O.bodies.appendClumped)
3) use one Box instead of several facets

personally I vote for 3
cheers
Jan


2016-06-23 3:57 GMT+02:00 Luis Barbosa <question295587@xxxxxxxxxxxxxxxxxxxxx
>:

> New question #295587 on Yade:
> https://answers.launchpad.net/yade/+question/295587
>
> Hello everyone,
>
> Consider a box (made using facetbox, facet, .stl...).
> The box is created between 2 fixed spheres (one in each side) outside the
> box.
> The box is free to move horizontally (limited by the spheres).
> A step of force is given to the box, which starts to oscillate between the
> 2 spheres.
>
> That is the system I'm trying to analyse, but when I use facet
> (fixed=False) the box simply disappears.
> Does anybody have some idea?
>
> Follows the code:
>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>
> # Spheres
>
> O.materials.append(CohFrictMat(young=15e8,poisson=0.3,density=1000,frictionAngle=radians(30),label='spheres'))
> O.bodies.append([
>
> utils.sphere(center=(0.5,0.5,0.5),radius=0.1,material='spheres',fixed=False),
>
> utils.sphere(center=(0.5,0.2,0.2),radius=0.1,material='spheres',fixed=False),
>
> utils.sphere(center=(0.5,-0.5,0.5),radius=0.3,material='spheres',fixed=True),
> utils.sphere(center=(0.5,1.5,0.5),radius=0.3,material='spheres',fixed=True)
> ])
>
>
> ########################################################################################
> O.bodies.append([
>         facet([[0,0,0],[1,0,0],[0,1,0]],fixed=False,color=[1,0,0]),
>         facet([[1,0,0],[1,1,0],[0,1,0]],fixed=False),
>         facet([[0,0,0],[0,0,1],[0,1,0]],fixed=False),
>         facet([[0,0,1],[0,1,0],[0,1,1]],fixed=False),
>         facet([[0,0,1],[1,0,1],[0,1,1]],fixed=False),
>         facet([[1,1,1],[1,0,1],[0,1,1]],fixed=False),
>         facet([[1,1,1],[1,0,1],[1,0,0]],fixed=False),
>         facet([[1,1,1],[1,1,0],[1,0,0]],fixed=False),
>         facet([[0,0,0],[1,0,0],[0,0,1]],fixed=False),
>         facet([[0,0,1],[1,0,0],[1,0,1]],fixed=False),
>         facet([[0,1,0],[1,1,0],[0,1,1]],fixed=False),
>         facet([[0,1,1],[1,1,0],[1,1,1]],fixed=False)
> ])
>
> O.engines=[
>   ForceResetter(),
>   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
>   InteractionLoop(
>     [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
>     [Ip2_FrictMat_FrictMat_FrictPhys()],
>     [Law2_ScGeom_FrictPhys_CundallStrack()]
>   ),
>
>   NewtonIntegrator(damping=0.1,gravity=[0,0,-9.81]),
>
> ]
> O.dt=1e-3*utils.PWaveTimeStep()
>
> from yade import qt
> qt.View()
> qt.Controller()
>
> Thanks,
> Luis
>
>
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.