[Yade-users] [Question #688333]: site yade-dem.org does not working

2020-01-29 Thread Daria
New question #688333 on Yade:
https://answers.launchpad.net/yade/+question/688333

https://yade-dem.org/  redirecting to https://yade-dem.org/doc/ and this page 
contain following information:

Index of /doc
[ICO]   NameLast modified   SizeDescription
[PARENTDIR] Parent Directory-
Apache/2.4.25 (Debian) Server at yade-dem.org Port 443

But there is no access to site. And it is not the first time this error occurs. 
Can it be fixed? Fixed once and forever?

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #688333]: site yade-dem.org does not working

2020-01-29 Thread Daria
Question #688333 on Yade changed:
https://answers.launchpad.net/yade/+question/688333

Status: Answered => Solved

Daria confirmed that the question is solved:
Thanks Robert Caulk, that solved my question.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #689000]: Yade simulation freezes

2020-02-26 Thread Daria
New question #689000 on Yade:
https://answers.launchpad.net/yade/+question/689000

I'm running YADE-OpenFOAM coupling examples. And the simulation freezes at some 
time (in the middle of calculations) during the yade iteration. How can I view 
log of yade (better log to screen) of current iteration to understand why the 
calculation breaks down. There is also more general question: how to make 
simulation run stable?
Also the calculation never finishes by itself: it always freezes at "Finalising 
parallel run". So I need to kill it.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-02-26 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Daria posted a new comment:
- Yade version: 2020-02-02.git-472f4cb
- I'm running icoFoamYade
- Is there way to attach files or archive with my case to this question or it 
is better to copy files content here?

I have got problem to set the same simulation end time in Yade and OpenFOAM:
in OpenFOAM I set stopAt endTime (it is virtual time in YADE termins) and set a 
writeInterval (writeControl adjustableRunTime);
in YADE I set in VTKRecorder virtPeriod at the same as writeInterval and set 
run(10) with dynamical time step (I think it is dynamical because otherwise 
I tried to set O.dt and O.dynDt=False and my calculation stopped unexpectedly)

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-02-26 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Status: Answered => Open

Daria is still having a problem:
I want to note that one calculation falls down at different times every
run, but these times are similar.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-02-26 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Daria gave more information on the question:
controlDict:

FoamFile
{
version 2.0;
format  ascii;
class   dictionary;
location"system";
object  controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application icoFoamYade;

startFrom   startTime;

startTime   0;

stopAt  endTime;

endTime 1;

deltaT  1e-3;

writeControladjustableRunTime;//timeStep;

writeInterval   0.02;

purgeWrite  0;

writeFormat ascii;

writePrecision  6;

writeCompression on;

timeFormat  general;

timePrecision   6;

runTimeModifiable true;

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-02-26 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Status: Answered => Open

Daria is still having a problem:
scriptYade.py:

from __future__ import print_function
import sys
from yadeimport import *
from yade.utils import *

initMPI()   #Initialize the mpi environment, always 
required.
fluidCoupling = yade.FoamCoupling(); #Initialize the engine
fluidCoupling.getRank();#part of Initialization.


#example of spheres in shear flow : two-way point force coupling
class simulation():

def __init__(self):
epsilon = 1e-08
minval = epsilon
maxval = 1-epsilon
length = maxval - minval
halflength = length / 2
radius = 0.01
radiusEpsilon = 0.001

#   O.periodic = True
#   O.cell.setBox(maxval, maxval, maxval)

numspheres=1000
young = 1e6#ice#5e6#1
poisson = 0.2#0.4
density = 1000


O.materials.append(FrictMat(young=young,poisson=poisson,frictionAngle=radians(15),density=density,label='spheremat'))

O.materials.append(FrictMat(young=200e9,poisson=0.001,frictionAngle=0,density=0,label='wallmat'))

#wall coords, use facets for wall BC:
v0 = Vector3(minval,minval,minval)
v1 = Vector3(minval,minval,maxval)
v2 = Vector3(maxval,minval,minval)
v3 = Vector3(maxval,minval,maxval)

v4 = Vector3(minval,maxval,minval)
v5 = Vector3(minval,maxval,maxval)
v6 = Vector3(maxval,maxval,minval)
v7 = Vector3(maxval,maxval,maxval)

df0 = facet([v0,v1,v2],material='wallmat')
O.bodies.append(df0)
df1 = facet([v1,v3,v2],material='wallmat')
O.bodies.append(df1)

uf0 = facet([v4,v5,v6],material='wallmat')
O.bodies.append(uf0)
uf1 = facet([v5,v7,v6],material='wallmat')
O.bodies.append(uf1)

lf0 = facet([v0,v1,v5],material='wallmat')
O.bodies.append(lf0)
lf1 = facet([v1,v5,v4],material='wallmat')
O.bodies.append(lf1)

rf0 = facet([v2,v3,v7],material='wallmat')
O.bodies.append(rf0)
rf1 = facet([v2,v7,v6],material='wallmat')
O.bodies.append(rf1)

ff0 = facet([v1,v5,v4],material='wallmat')
O.bodies.append(ff0)
ff1 = facet([v5,v7,v4],material='wallmat')
O.bodies.append(ff1)

bf0 = facet([v0,v4,v2],material='wallmat')
O.bodies.append(bf0)
bf1 = facet([v4,v6,v2],material='wallmat')
O.bodies.append(bf1)

#spheres
mn, mx= Vector3(minval+2*radius, minval+2*radius, 
minval+2*radius), Vector3(maxval-2*radius, maxval-2*radius, maxval-2*radius)

sp = pack.SpherePack()
sp.makeCloud(mn,mx,rMean=radius,rRelFuzz=radiusEpsilon, 
num=numspheres)
O.bodies.append([sphere(center,rad,material='spheremat') for 
center,rad in sp])

sphereIDs = [b.id for b in O.bodies if
type(b.shape)==Sphere]

#coupling engine settings

fluidCoupling.setNumParticles(len(sphereIDs))
fluidCoupling.setIdList(sphereIDs)
fluidCoupling.isGaussianInterp=False  #use pimpleFoamYade for 
gaussianInterp

# Integrator
newton=NewtonIntegrator(damping=0.0, gravity = (0.0 ,-1.81, 
0.0))
# add small damping in case of stability issues.. ~ 0.1 max, 
also note : If gravity is needed, set it in constant/g dir.

#   O.dt=1e-5
#   O.dynDt=False

O.engines=[
ForceResetter(),

InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()], 
allowBiggerThanPeriod=True),
InteractionLoop(

[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),

GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.5, label = "ts"),
fluidCoupling, #to be called after timestepper
PyRunner(command='sim.printMessage()', iterPeriod= 1, 
label='outputMessage'),
newton,

VTKRecorder(fileName='yadep/3d-

Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-02-27 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Status: Answered => Open

Daria is still having a problem:
The case freezes without taking a single YADE step =(

A have got one more question:
I commented lines
# O.periodic = True
# O.cell.setBox(maxval, maxval, maxval)
to make my boundaries solid (I want particles just to fall down in box) but 
despite this particles start to appear at top of the box...
Some times they also starts to move randomly in such a way that you can't 
understand in which direction each of them is moving and why.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-03-02 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Status: Answered => Open

Daria is still having a problem:
https://github.com/RomanovaDI/snowModelling/wiki

There is my case of modeling of the snowdrift formation. It is assumed
that snow will accumulate in the corner on the right because of wind and
gravity. But in fact it just falls down through bottom. There is
periodic condition set in YADE script and if I turns it off calculation
drops. Can you help me to set up this case in a way I described (snow is
accumulating in the angle at right side because of wind and gravity)?

Also I would like to run YADE part of this case in the separate way. I'm
doing it using runYade.sh script which is represented in git repository
after commenting fluid coupling engine in scriptYade.py; but it shows a
lot of errors. How should I modify scriptYade.py to run it using YADE
without OpenFOAM coupling?

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-03-18 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Daria posted a new comment:
Case was updated on github. It is now working fine also some
instructions were added. YADE case without CFD was added.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-03-18 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Daria posted a new comment:
>I think this paragraph is sufficient to explain why the discussion was 
>abandoned.
>https://www.yade-dem.org/wiki/Howtoask

It's inefficient to copy the contents of all case files here

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #689000]: Yade simulation freezes

2020-08-06 Thread Daria
Question #689000 on Yade changed:
https://answers.launchpad.net/yade/+question/689000

Status: Expired => Open

Daria is still having a problem:
There is problems with time settings in example_icoFoamYade again. The same 
problem is in example_pimpleFoamYade. The last doesn't work at all (I 
downloaded it from gitlab and started it using instruction, but it freezed 
after words "Finalising parallel run").
example_icoFoamYade worked till I tried to set more time to calculate, after it 
calculation freedzes too. Can you explain me how to set end time in 
example_icoFoam to 1 second for example.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692315]: Calculation time definition

2020-08-10 Thread Daria
New question #692315 on Yade:
https://answers.launchpad.net/yade/+question/692315

There is problems with time settings in example_icoFoamYade. The same problem 
is in example_pimpleFoamYade. The last doesn't work at all (I downloaded it 
from gitlab and started it using instruction, but it freezed after words 
"Finalising parallel run").
example_icoFoamYade worked till I tried to set more time to calculate, after 
that calculation freedzed too. Can you explain me how to set end time in 
example_icoFoam to 1 second for example.
Also I tried to comment GlobalStiffnessTimeStepper function and set O.dt 
manually. It were calculated normally, openfoam printed "End", yade printed 
"Finalising parallel run" but then it freezed.
How to set time normally?


-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692332]: Flow around cylinder

2020-08-11 Thread Daria
New question #692332 on Yade:
https://answers.launchpad.net/yade/+question/692332

Is there any function to add cylinder as a body made of wallmat? 
I tried yade.wrapper.Cylinder(segment=[0,0,1],radius=0.05) but it couldn't be 
added to list of bodies

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #692332]: Flow around cylinder

2020-08-11 Thread Daria
Question #692332 on Yade changed:
https://answers.launchpad.net/yade/+question/692332

Status: Answered => Open

Daria is still having a problem:
Thank you, it is working well! Now I don't understand how to set material for 
this body.
Material is defined this way
###
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='wallmat'))
###
I tried
###
b.mat = 'wallmat'
###
but it doesn't work

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #692332]: Flow around cylinder

2020-08-12 Thread Daria
Question #692332 on Yade changed:
https://answers.launchpad.net/yade/+question/692332

Status: Answered => Open

Daria is still having a problem:
Okay, Thank you very much! There is no more errors in my script, but
still it doesn't working. My case just freezes after start with no
error. I posted case on  github
(RomanovaDI/FlowAroundCylinderYadeOpenFOAM) . It is YADE OpenFOAM
coupling case

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #692332]: Flow around cylinder

2020-08-14 Thread Daria
Question #692332 on Yade changed:
https://answers.launchpad.net/yade/+question/692332

Daria gave more information on the question:
Function
###
GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.7, label = "ts"),
###
makes O.dt equal to nan, why can it be? (No errors were printed)

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #692332]: Flow around cylinder

2020-08-17 Thread Daria
Question #692332 on Yade changed:
https://answers.launchpad.net/yade/+question/692332

Status: Needs information => Open

Daria gave more information on the question:
scriptYade.py

#Deepak Kunhappan, deepak.kunhap...@3sr-grenoble.fr
#Example script of Yade-OpenFOAM coupling.
#get the OpenFOAM solver at : https://github.com/dpkn31/Yade-OpenFOAM-coupling
#get the latest version of Yade with the FoamCoupling engine here : 
https://gitlab.com/yade-dev/trunk
#Both binary and compiled versions of OpenFOAM-6 can be used. (currently tested 
for OpenFOAM-6).
#Have MPI (preferably OpenMPI) installed. Note : Both OpenFOAM and Yade has to 
be compiled with the same MPI version.
##
# Usage :
#
# 1. Enable the OpenFOAM coupling engine : (Requires MPI installation)
#   cmake -DCMAKE_INSTALL_PREFIX= /path/to/install  /path/to/sources 
-DDEBUG=0 -DCHUNKSIZE=1 -DENABLE_MPI=ON
#   make
#   make install
#
# 2. Complile or install OpenFOAM (get binary from here : 
https://openfoam.org/download/6-ubuntu ) (ubuntu and debian)
#Example installation for ubuntu (careful, it may be different on your 
system!):
#   apt install software-properties-common
#   sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"
#   add-apt-repository http://dl.openfoam.org/ubuntu
#   apt-get update
#   apt-get install openfoam6
#   . /opt/openfoam6/etc/bashrc
#Example installation from source (careful, it may be different on your 
system!):
#   sudo apt install build-essential flex bison git-core cmake zlib1g-dev 
libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot 
libreadline-dev libncurses-dev libxt-dev libptscotch-dev
#   git clone https://github.com/OpenFOAM/OpenFOAM-6.git
#   source OpenFOAM-6/etc/bashrc
#   cd OpenFOAM-6
#   # export WM_COMPILE_OPTION=Debug
#   ./Allwmake -j 2
#
# 3. Get the Yade-OpenFOAM solver at : 
https://github.com/dpkn31/Yade-OpenFOAM-coupling
#   git clone https://github.com/dpkn31/Yade-OpenFOAM-coupling.git
#
# 4. Enter the dir : Yade-OpenFOAM-coupling
# Adapt the file icoFoamYade/icoFoamYade.C on how shear flow velocity (or 
other parameters) is initialized up to your linking.
# A commented out example is in icoFoamYade/icoFoamYade.C line 59
# Compile the solvers and the libs
#   ./Allclean
#   ./Allmake
#
# 5. Once compilation is done, you can run the solver from any dir. Return to 
this example file directory.
#
# 6. Create a symbolic link to Yade Install
#   ln -s /path/to/yade/install/bin/yade-exec yadeimport.py
#
# 7. Yade side :
#
#a) In the Yade side, create the scene/simulation similar to this script :
#   (typical yade script but recast in classes. See : 
https://yade-dev.gitlab.io/trunk/user.html#importing-yade-in-other-python-applications)
#At present only spheres are supported.  The coupling module is called 
as "FoamCoupling", see lines 127-130 on how to
#   initialize this.
#
#b) Set the ids of spheres involved in hydrodynamic interaction:
#sphereIDs = [b.id for b in O.bodies if type(b.shape)==Sphere]
#fluidCoupling.setNumParticles(len(sphereIDs))
#fluidCoupling.setIdList(sphereIDs)
#
#c) Type of coupling :icoFoamYade is based on simple point force coupling
#  fluidCoupling.isGaussianInterp=False;
#
#
# 8. OpenFOAM side :
#
#  Set up the OpenFOAM in the usual way. (If you're an experienced OpenFOAM 
user, skip this)
#  I will only highlight the steps to run this example. Note that you can 
use any type of mesh
#  that is supported by OpenFOAM. (dynamic mesh is not currently supported).
#  The coupling is set in the solver icoFoamYade.C;
#  (nothing has to be modified there, except for velocity initialization.)
#
#   a) create the mesh
#   blockMesh
#
#   b) decompose the mesh:
#   decomposePar
#
#   c) make dir for VTK dump for yade
#   mkdir yadep
#
#   d) run the example :
#   mpiexec -n 1 python3 scriptYade.py : -n 2 icoFoamYade -parallel
#
# 9. Notes (OpenFOAM side):
# to configure the mesh, edit :  system/blockMeshDict
# to change the number of subdomains, edit : system/decomposeParDict
# to change solver settings, edit:   system/controlDict
# to change solution settings, edit : system/fvSolution (linear solver 
settings and choice of linear solvers)
# to change discretization schemes, edit : system/fvSceme (for gradient and 
divergence calculation schemes)
# to change fluid properties and particle density , edit : 
constant/transportProperties
# to set BCs : edit the files in 0 for each field variables.
#
#
#10. Post-Processing : Paraview or ParaFOAM can be used to visualize the 
results, you can also use the OpenFOAM
#utilities to postprocess the fluid side.
#
#

Re: [Yade-users] [Question #692332]: Flow around cylinder

2020-08-17 Thread Daria
Question #692332 on Yade changed:
https://answers.launchpad.net/yade/+question/692332

Daria gave more information on the question:
Also I don't understand why YADE is making 9 iterations, but OpenFOAM
just one. I thought they synchronize (1 iteration  YADE for 1 iteration
OpenFoam)?

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692440]: nan time step

2020-08-18 Thread Daria
New question #692440 on Yade:
https://answers.launchpad.net/yade/+question/692440

O.dt is equal nan after function 
GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.7, label = "ts"),

scriptYade.py
###

from __future__ import print_function
import sys
from yadeimport import *
from yade.wrapper import *
from yade.utils import *

initMPI() #Initialize the mpi environment, always required.
fluidCoupling = yade.FoamCoupling(); #Initialize the engine
fluidCoupling.getRank(); #part of Initialization.

#example of spheres in shear flow : two-way point force coupling
class simulation():

 def __init__(self):
  O.periodic = True
  O.cell.setBox(0.4,0.4,0.4)

  numspheres=1000
  young = 5e6
  density = 1000

  mat1 = 
FrictMat(young=young,poisson=0.5,frictionAngle=radians(15),density=density,label='spheremat')
  O.materials.append(mat1)
  mat2 = 
FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='wallmat')
  O.materials.append(mat2)

  epsilon = 1e-08
  minval = 0 + epsilon
  maxval = 0.4 - epsilon
  #wall coords, use facets for wall BC:
  v0 = Vector3(minval, minval, minval)
  v1 = Vector3(minval,minval,maxval)
  v2 = Vector3(maxval,minval,minval)
  v3 = Vector3(maxval,minval,maxval)

  v4 = Vector3(minval,maxval,minval)
  v5 = Vector3(minval,maxval,maxval)
  v6 = Vector3(maxval,maxval,minval)
  v7 = Vector3(maxval, maxval, maxval)

  lf0 = facet(vertices=[v0,v1,v2], material='wallmat')
  O.bodies.append(lf0)
  lf1 = facet(vertices=[v0,v2,v3], material='wallmat')
  O.bodies.append(lf1)

  uf0 = facet(vertices=[v4,v5,v6], material='wallmat')
  O.bodies.append(uf0)
  uf1 = facet(vertices=[v4,v6,v7], material='wallmat')
  O.bodies.append(uf1)

  ff0 = facet(vertices=[v1,v2,v6], material='wallmat')
  O.bodies.append(ff0)
  ff1 = facet(vertices=[v1,v6,v5], material='wallmat')
  O.bodies.append(ff1)

  bf0 = facet(vertices=[v0,v3,v7], material='wallmat')
  O.bodies.append(bf0)
  bf1 = facet(vertices=[v0,v7,v4], material='wallmat')
  O.bodies.append(bf1)

  cyl = Cylinder(segment=[0,0,1],radius=0.05)
  b = Body()
  b.shape = cyl
  b.mat = O.materials['wallmat']
  O.bodies.append(b)

  #spheres
  #mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + epsilon), 
Vector3(maxval - epsilon, maxval - epsilon, maxval - epsilon)
  mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + epsilon), 
Vector3(-0.06, maxval - epsilon, maxval - epsilon)
  sp = pack.SpherePack();
  sp.makeCloud(mn,mx,rMean=0.00075,rRelFuzz=0.10, num=numspheres)
  O.bodies.append([sphere(center,rad,material='spheremat') for center,rad in 
sp])
  sphereIDs = [b.id for b in O.bodies if type(b.shape)==Sphere]

  #coupling engine settings
  fluidCoupling.setNumParticles(len(sphereIDs))
  fluidCoupling.setIdList(sphereIDs)
  fluidCoupling.isGaussianInterp=False; #use pimpleFoamYade for gaussianInterp

  # Integrator
  newton=NewtonIntegrator(damping=0.0, gravity = (0.0 ,0.0, 0.0))
  # add small damping in case of stability issues.. ~ 0.1 max, also note : If 
gravity is needed, set it in constant/g dir.

  #O.dynDt = False
  #O.dt=1e-4

  O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()], 
allowBiggerThanPeriod=True),
   InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
   ),
   GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.7, label = "ts"),
   fluidCoupling, #to be called after timestepper
   PyRunner(command='sim.printMessage()', iterPeriod= 1, label='outputMessage'),
   newton,
   VTKRecorder(fileName='yadep/3d-vtk-',recorders=['spheres'],iterPeriod=100),
  ]

 def printMessage(self):
  print("YADE-ITER = " + str(O.iter) +" 
**")
  print("YADE-TIME = " + str(O.time) +" 
**")

 def irun(self,num):
  O.run(num,1)

if __name__=="__main__":
 sim = simulation()
 sim.irun(10)
 fluidCoupling.killMPI()

import builtins
builtins.sim=sim



-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692441]: OpenFOAM YADE coupling iterations

2020-08-18 Thread Daria
New question #692441 on Yade:
https://answers.launchpad.net/yade/+question/692441

I have got 9 YADE iterations for 1 OpaneFOAM iteration. But I can't understand, 
why it is so. In code it looks like 1 OpenFOAM iteration for 1 YADE iteration 
or few OpenFOAM iterations for 1 YADE iteration. But not several iterations of 
YADE for 1 iteration OpenFOAM

scriptYade.py
###

from __future__ import print_function
import sys
from yadeimport import *
from yade.wrapper import *
from yade.utils import *

initMPI() #Initialize the mpi environment, always required.
fluidCoupling = yade.FoamCoupling(); #Initialize the engine
fluidCoupling.getRank(); #part of Initialization.

#example of spheres in shear flow : two-way point force coupling
class simulation():

 def __init__(self):
  O.periodic = True
  O.cell.setBox(0.4,0.4,0.4)

  numspheres=1000
  young = 5e6
  density = 1000

  mat1 = 
FrictMat(young=young,poisson=0.5,frictionAngle=radians(15),density=density,label='spheremat')
  O.materials.append(mat1)
  mat2 = 
FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='wallmat')
  O.materials.append(mat2)

  epsilon = 1e-08
  minval = 0 + epsilon
  maxval = 0.4 - epsilon
  #wall coords, use facets for wall BC:
  v0 = Vector3(minval, minval, minval)
  v1 = Vector3(minval,minval,maxval)
  v2 = Vector3(maxval,minval,minval)
  v3 = Vector3(maxval,minval,maxval)

  v4 = Vector3(minval,maxval,minval)
  v5 = Vector3(minval,maxval,maxval)
  v6 = Vector3(maxval,maxval,minval)
  v7 = Vector3(maxval, maxval, maxval)

  lf0 = facet(vertices=[v0,v1,v2], material='wallmat')
  O.bodies.append(lf0)
  lf1 = facet(vertices=[v0,v2,v3], material='wallmat')
  O.bodies.append(lf1)

  uf0 = facet(vertices=[v4,v5,v6], material='wallmat')
  O.bodies.append(uf0)
  uf1 = facet(vertices=[v4,v6,v7], material='wallmat')
  O.bodies.append(uf1)

  ff0 = facet(vertices=[v1,v2,v6], material='wallmat')
  O.bodies.append(ff0)
  ff1 = facet(vertices=[v1,v6,v5], material='wallmat')
  O.bodies.append(ff1)

  bf0 = facet(vertices=[v0,v3,v7], material='wallmat')
  O.bodies.append(bf0)
  bf1 = facet(vertices=[v0,v7,v4], material='wallmat')
  O.bodies.append(bf1)

  cyl = Cylinder(segment=[0,0,1],radius=0.05)
  b = Body()
  b.shape = cyl
  b.mat = O.materials['wallmat']
  O.bodies.append(b)

  #spheres
  #mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + epsilon), 
Vector3(maxval - epsilon, maxval - epsilon, maxval - epsilon)
  mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + epsilon), 
Vector3(-0.06, maxval - epsilon, maxval - epsilon)
  sp = pack.SpherePack();
  sp.makeCloud(mn,mx,rMean=0.00075,rRelFuzz=0.10, num=numspheres)
  O.bodies.append([sphere(center,rad,material='spheremat') for center,rad in 
sp])
  sphereIDs = [b.id for b in O.bodies if type(b.shape)==Sphere]

  #coupling engine settings
  fluidCoupling.setNumParticles(len(sphereIDs))
  fluidCoupling.setIdList(sphereIDs)
  fluidCoupling.isGaussianInterp=False; #use pimpleFoamYade for gaussianInterp

  # Integrator
  newton=NewtonIntegrator(damping=0.0, gravity = (0.0 ,0.0, 0.0))
  # add small damping in case of stability issues.. ~ 0.1 max, also note : If 
gravity is needed, set it in constant/g dir.

  #O.dynDt = False
  #O.dt=1e-4

  O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()], 
allowBiggerThanPeriod=True),
   InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
   ),
   GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.7, label = "ts"),
   fluidCoupling, #to be called after timestepper
   PyRunner(command='sim.printMessage()', iterPeriod= 1, label='outputMessage'),
   newton,
   VTKRecorder(fileName='yadep/3d-vtk-',recorders=['spheres'],iterPeriod=100),
  ]

 def printMessage(self):
  print("YADE-ITER = " + str(O.iter) +" 
**")
  print("YADE-TIME = " + str(O.time) +" 
**")

 def irun(self,num):
  O.run(num,1)

if __name__=="__main__":
 sim = simulation()
 sim.irun(10)
 fluidCoupling.killMPI()

import builtins
builtins.sim=sim

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692476]: Streamlined body

2020-08-20 Thread Daria
New question #692476 on Yade:
https://answers.launchpad.net/yade/+question/692476

How to define geometry in case of flow around a cylinder?
If you set the geometry the way I do it, then the time step becomes nan.

###
def __init__(self):
O.periodic = True
O.cell.setBox(0.4,0.4,0.4)

numspheres=1000
young = 5e6
density = 1000

mat1 = 
FrictMat(young=young,poisson=0.5,frictionAngle=radians(15),density=density,label='spheremat')
O.materials.append(mat1)
mat2 = 
FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='wallmat')
O.materials.append(mat2)

epsilon = 1e-08
minval = 0 + epsilon
maxval = 0.4 - epsilon
#wall coords, use facets for wall BC:
v0 = Vector3(minval, minval, minval)
v1 = Vector3(minval,minval,maxval)
v2 = Vector3(maxval,minval,minval)
v3 = Vector3(maxval,minval,maxval)

v4 = Vector3(minval,maxval,minval)
v5 = Vector3(minval,maxval,maxval)
v6 = Vector3(maxval,maxval,minval)
v7 = Vector3(maxval, maxval, maxval)

lf0 = facet(vertices=[v0,v1,v2], material='wallmat')
O.bodies.append(lf0)
lf1 = facet(vertices=[v0,v2,v3], material='wallmat')
O.bodies.append(lf1)

uf0 = facet(vertices=[v4,v5,v6], material='wallmat')
O.bodies.append(uf0)
uf1 = facet(vertices=[v4,v6,v7], material='wallmat')
O.bodies.append(uf1)

ff0 = facet(vertices=[v1,v2,v6], material='wallmat')
O.bodies.append(ff0)
ff1 = facet(vertices=[v1,v6,v5], material='wallmat')
O.bodies.append(ff1)

bf0 = facet(vertices=[v0,v3,v7], material='wallmat')
O.bodies.append(bf0)
bf1 = facet(vertices=[v0,v7,v4], material='wallmat')
O.bodies.append(bf1)

##cylinder##
cyl = Cylinder(segment=[0,0,1],radius=0.05)
b = Body()
b.shape = cyl
b.mat = O.materials['wallmat']
O.bodies.append(b)

#spheres
mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + 
epsilon), Vector3(-0.06, maxval - epsilon, maxval - epsilon)
sp = pack.SpherePack();
sp.makeCloud(mn,mx,rMean=0.00075,rRelFuzz=0.10, num=numspheres)
O.bodies.append([sphere(center,rad,material='spheremat') for 
center,rad in sp])
sphereIDs = [b.id for b in O.bodies if type(b.shape)==Sphere]

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692617]: None of given Law2 functors can handle interaction #108+380, types geom:ScGeom=1 and phys:CohFrictPhys=5 (LawDispatcher::getFunctor2D returned empty functor)

2020-08-26 Thread Daria
New question #692617 on Yade:
https://answers.launchpad.net/yade/+question/692617

I'm trying to simulate cohesion of spheres to cylinder in flow around this 
cylinder

My scriptYade.py:



from __future__ import print_function
import sys
from yadeimport import *
from yade.wrapper import *
from yade.utils import *

initMPI()   #Initialize the mpi environment, always 
required.
fluidCoupling = yade.FoamCoupling(); #Initialize the engine
fluidCoupling.getRank();#part of Initialization.


#example of spheres in shear flow : two-way point force coupling
class simulation():

def __init__(self):
O.periodic = True
O.cell.setBox(1,0.4,0.2)

numspheres=1000
young = 5e6
density = 2000

mat1 = CohFrictMat(normalCohesion=1e7, shearCohesion=1e7, 
young=young, poisson=0.5, frictionAngle=radians(15), density=density, 
label='spheremat')
O.materials.append(mat1)
mat2 = CohFrictMat(normalCohesion=1e7, shearCohesion=1e7, 
young=young, poisson=0.5, frictionAngle=radians(15), density=density, 
label='wallmat')
O.materials.append(mat2)

epsilon = 1e-08
minval = 0 + epsilon
maxx = 1.0 - epsilon
maxy = 0.4 - epsilon
maxz = 0.2 - epsilon
#wall coords, use facets for wall BC:
v0 = Vector3(minval, minval, minval)
v1 = Vector3(minval,minval,maxz)
v2 = Vector3(maxx,minval,minval)
v3 = Vector3(maxx,minval,maxz)

v4 = Vector3(minval,maxy,minval)
v5 = Vector3(minval,maxy,maxz)
v6 = Vector3(maxx,maxy,minval)
v7 = Vector3(maxx, maxy, maxz)

lf0 = facet(vertices=[v0,v1,v2], material='wallmat')
O.bodies.append(lf0)
lf1 = facet(vertices=[v1,v2,v3], material='wallmat')
O.bodies.append(lf1)

uf0 = facet(vertices=[v4,v5,v6], material='wallmat')
O.bodies.append(uf0)
uf1 = facet(vertices=[v5,v6,v7], material='wallmat')
O.bodies.append(uf1)

ff0 = facet(vertices=[v0,v2,v6], material='wallmat')
O.bodies.append(ff0)
ff1 = facet(vertices=[v0,v6,v4], material='wallmat')
O.bodies.append(ff1)

bf0 = facet(vertices=[v1,v3,v7], material='wallmat')
O.bodies.append(bf0)
bf1 = facet(vertices=[v1,v7,v5], material='wallmat')
O.bodies.append(bf1)

oriBody = Quaternion(Vector3(1,0,0),(0))
O.bodies.append(geom.facetCylinder((0.5,0.2,0.1), radius=0.05, 
height=0.2, orientation=oriBody, segmentsNumber=100, 
wallMask=4,material='wallmat'))

#spheres
mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + 
epsilon), Vector3(0.45, maxy - epsilon, maxz - epsilon)
sp = pack.SpherePack();
sp.makeCloud(mn,mx,rMean=0.001,rRelFuzz=0.1, num=numspheres)
O.bodies.append([sphere(center,rad,material='spheremat') for 
center,rad in sp])
sphereIDs = [b.id for b in O.bodies if type(b.shape)==Sphere]

#coupling engine settings
fluidCoupling.setNumParticles(len(sphereIDs))
fluidCoupling.setIdList(sphereIDs)
fluidCoupling.isGaussianInterp=False;  #use pimpleFoamYade for 
gaussianInterp

# Integrator
newton=NewtonIntegrator(damping=0.0, gravity = (0.0 ,0.0, 0.0))
# add small damping in case of stability issues.. ~ 0.1 max, 
also note : If gravity is needed, set it in constant/g dir.

O.timingEnabled==True

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), 
Bo1_Facet_Aabb()], allowBiggerThanPeriod=True),
InteractionLoop(

[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],
[

Law2_ScGridCoGeom_CohFrictPhys_CundallStrack(),

Law2_CylScGeom6D_CohFrictPhys_CohesionMoment(),

Law2_ChCylGeom6D_CohFrictPhys_CohesionMoment(),

Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),

Law2_ScGeom6D_InelastCohFrictPhys_CohesionMoment()
]
),

GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.5, label = "ts"),
fluidCoupling, #to 

Re: [Yade-users] [Question #692617]: None of given Law2 functors can handle interaction #108+380, types geom:ScGeom=1 and phys:CohFrictPhys=5 (LawDispatcher::getFunctor2D returned empty functor)

2020-08-26 Thread Daria
Question #692617 on Yade changed:
https://answers.launchpad.net/yade/+question/692617

Status: Open => Solved

Daria confirmed that the question is solved:
Other geometry interaction solved problem:

[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()]

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692907]: Modelling flow around cylinder: particles fall into a closed cylinder

2020-09-14 Thread Daria
New question #692907 on Yade:
https://answers.launchpad.net/yade/+question/692907

I have got case in which flow around cylinder is simulated. This is 
YADE-OpenFOAM coupling case. I have got closed cylinder, but at some time 
particles enter it and simulation fails. How can I fix it?

scriptYade.py
#
from __future__ import print_function
import sys
from yadeimport import *
from yade.wrapper import *
from yade.utils import *

initMPI()   #Initialize the mpi environment, always 
required.
fluidCoupling = yade.FoamCoupling(); #Initialize the engine
fluidCoupling.getRank();#part of Initialization.


#example of spheres in shear flow : two-way point force coupling
class simulation():

def __init__(self):
O.periodic = True
O.cell.setBox(1,0.4,0.2)

numspheres=1000
young = 1e10#5e6
young_steel = 2e11
density = 2#2000
density_steel = 7700
poisson = 0.3#0.5
normalCohesion = 1e7
shearCohesion = 1e7
frictionAngle = radians(15)

mat1 = CohFrictMat(normalCohesion=normalCohesion, 
shearCohesion=shearCohesion, young=young, poisson=poisson, 
frictionAngle=frictionAngle, density=density, momentRotationLaw=True, 
label='spheremat')
O.materials.append(mat1)
mat2 = CohFrictMat(normalCohesion=normalCohesion, 
shearCohesion=shearCohesion, young=young_steel, poisson=poisson, 
frictionAngle=frictionAngle, density=density_steel, momentRotationLaw=True, 
label='wallmat')
O.materials.append(mat2)

epsilon = 1e-08
minval = 0 + epsilon
maxx = 1.0 - epsilon
maxy = 0.4 - epsilon
maxz = 0.2 - epsilon
#wall coords, use facets for wall BC:
v0 = Vector3(minval, minval, minval)
v1 = Vector3(minval,minval,maxz)
v2 = Vector3(maxx,minval,minval)
v3 = Vector3(maxx,minval,maxz)

v4 = Vector3(minval,maxy,minval)
v5 = Vector3(minval,maxy,maxz)
v6 = Vector3(maxx,maxy,minval)
v7 = Vector3(maxx, maxy, maxz)

lf0 = facet(vertices=[v0,v1,v2], material='wallmat')
O.bodies.append(lf0)
lf1 = facet(vertices=[v1,v2,v3], material='wallmat')
O.bodies.append(lf1)

uf0 = facet(vertices=[v4,v5,v6], material='wallmat')
O.bodies.append(uf0)
uf1 = facet(vertices=[v5,v6,v7], material='wallmat')
O.bodies.append(uf1)

ff0 = facet(vertices=[v0,v2,v6], material='wallmat')
O.bodies.append(ff0)
ff1 = facet(vertices=[v0,v6,v4], material='wallmat')
O.bodies.append(ff1)

bf0 = facet(vertices=[v1,v3,v7], material='wallmat')
O.bodies.append(bf0)
bf1 = facet(vertices=[v1,v7,v5], material='wallmat')
O.bodies.append(bf1)

oriBody = Quaternion(Vector3(1,0,0),(0))
radius = 0.05

O.bodies.append(geom.facetCylinder((0.5,0.2,0.1),radius=radius,height=0.2,orientation=oriBody,segmentsNumber=100,wallMask=4,material='wallmat'))

#spheres
mn, mx= Vector3(minval + epsilon, minval + epsilon, minval + 
epsilon), Vector3(maxx / 2 - radius - epsilon, maxy - epsilon, maxz - epsilon)
sp = pack.SpherePack();
sp.makeCloud(mn,mx,rMean=0.003,rRelFuzz=0.5, num=numspheres)
O.bodies.append([sphere(center,rad,material='spheremat') for 
center,rad in sp])
mn, mx= Vector3(maxx / 2 + radius + epsilon, minval + epsilon, 
minval + epsilon), Vector3(maxx - epsilon, maxy - epsilon, maxz - epsilon)
sp = pack.SpherePack();
sp.makeCloud(mn,mx,rMean=0.003,rRelFuzz=0.5, num=numspheres)
O.bodies.append([sphere(center,rad,material='spheremat') for 
center,rad in sp])
sphereIDs = [b.id for b in O.bodies if type(b.shape)==Sphere]

#coupling engine settings
fluidCoupling.setNumParticles(len(sphereIDs))
fluidCoupling.setIdList(sphereIDs)
fluidCoupling.isGaussianInterp=False;  #use pimpleFoamYade for 
gaussianInterp

# Integrator
newton=NewtonIntegrator(damping=0.0, gravity = (0.0 ,0.0, 0.0))
# add small damping in case of stability issues.. ~ 0.1 max, 
also note : If gravity is needed, set it in constant/g dir.

O.timingEnabled==True

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), 
Bo1_Facet_Aabb()], allowBiggerThanPeriod=True),

Re: [Yade-users] [Question #692907]: Modelling flow around cylinder: particles fall into a closed cylinder

2020-09-17 Thread Daria
Question #692907 on Yade changed:
https://answers.launchpad.net/yade/+question/692907

Status: Open => Solved

Daria confirmed that the question is solved:
Radius of cylinder in YADE must be little bigger then in OpenFOAM, in
other way there is area which is out of OpenFOAM calculation area in
which particles can enter in YADE calculations. This results an error.
This area exists because in YADE cylinder is made of planes.

##
oriBody = Quaternion(Vector3(1,0,0),(0))
radius = 0.051
O.bodies.append(geom.facetCylinder((0.5,0.2,0.1),radius=radius,height=0.2,orientation=oriBody,segmentsNumber=100,wallMask=4,material='wallmat'))

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #692976]: BoxFactory in OpenFOAM coupling case

2020-09-17 Thread Daria
New question #692976 on Yade:
https://answers.launchpad.net/yade/+question/692976

I'm trying to use BoxFactory in YADE OpenFOAM coupling case. But there is an 
error on OpenFOAM side. I think that I use incorrect fluid coupling settings. 
There is my scriptYade.py:

##
from __future__ import print_function
import sys
from yadeimport import *
from yade.wrapper import *
from yade.utils import *

initMPI()   #Initialize the mpi environment, always 
required.
fluidCoupling = yade.FoamCoupling(); #Initialize the engine
fluidCoupling.getRank();#part of Initialization.


#example of spheres in shear flow : two-way point force coupling
class simulation():

def __init__(self):
O.periodic = True
O.cell.setBox(1,0.4,0.2)

numspheres=1000
young = 1e10#5e6
young_steel = 2e11
density = 2#2000
density_steel = 7700
poisson = 0.3#0.5
normalCohesion = 1e7
shearCohesion = 1e7
frictionAngle = radians(15)

mat1 = CohFrictMat(normalCohesion=normalCohesion, 
shearCohesion=shearCohesion, young=young, poisson=poisson, 
frictionAngle=frictionAngle, density=density, momentRotationLaw=True, 
label='spheremat')
O.materials.append(mat1)
mat2 = CohFrictMat(normalCohesion=normalCohesion, 
shearCohesion=shearCohesion, young=young_steel, poisson=poisson, 
frictionAngle=frictionAngle, density=density_steel, momentRotationLaw=True, 
label='wallmat')
O.materials.append(mat2)

epsilon = 1e-08
minval = 0 + epsilon
maxx = 1.0 - epsilon
maxy = 0.4 - epsilon
maxz = 0.2 - epsilon
#wall coords, use facets for wall BC:
v0 = Vector3(minval, minval, minval)
v1 = Vector3(minval,minval,maxz)
v2 = Vector3(maxx,minval,minval)
v3 = Vector3(maxx,minval,maxz)

v4 = Vector3(minval,maxy,minval)
v5 = Vector3(minval,maxy,maxz)
v6 = Vector3(maxx,maxy,minval)
v7 = Vector3(maxx, maxy, maxz)

lf0 = facet(vertices=[v0,v1,v2], material='wallmat')
O.bodies.append(lf0)
lf1 = facet(vertices=[v1,v2,v3], material='wallmat')
O.bodies.append(lf1)

uf0 = facet(vertices=[v4,v5,v6], material='wallmat')
O.bodies.append(uf0)
uf1 = facet(vertices=[v5,v6,v7], material='wallmat')
O.bodies.append(uf1)

ff0 = facet(vertices=[v0,v2,v6], material='wallmat')
O.bodies.append(ff0)
ff1 = facet(vertices=[v0,v6,v4], material='wallmat')
O.bodies.append(ff1)

bf0 = facet(vertices=[v1,v3,v7], material='wallmat')
O.bodies.append(bf0)
bf1 = facet(vertices=[v1,v7,v5], material='wallmat')
O.bodies.append(bf1)

oriBody = Quaternion(Vector3(1,0,0),(0))
radius = 0.051
O.bodies.append(geom.facetCylinder((0.5,0.2,0.1), 
radius=radius, height=0.2, orientation=oriBody, segmentsNumber=100, wallMask=4, 
material='wallmat'))

# Integrator
newton=NewtonIntegrator(damping=0.0, gravity = (0.0 ,0.0, 0.0))
# add small damping in case of stability issues.. ~ 0.1 max, 
also note : If gravity is needed, set it in constant/g dir.

O.timingEnabled==True

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), 
Bo1_Facet_Aabb()], allowBiggerThanPeriod=True),
InteractionLoop(

[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()],

[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=True)],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
),

GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.3, label = "ts"),
fluidCoupling, #to be called after timestepper
PyRunner(command='sim.printMessage()', iterPeriod= 1, 
label='outputMessage'),
newton,
PyRunner(command='sim.particleFlow()', iterPeriod= 1, 
label='particleFlow'),

DomainLimiter(lo=(-30e-3,-30e-3,0),hi=(30e-3,30e-3,60e-3),iterPeriod=200),

VTKRecorder(fileName='yadep/3d-vtk-',recorders=['spheres', 'facets', 'intr', 
'force'],virtPeriod=0.1)
]

def particleFlow(self):
bf = 
BoxFactory(maxParticles=1,extents=(0,