Professional Documents
Culture Documents
En particular el desarrollador de este tutorial prefiere Ubuntu en su versión 16.04 la cual se puede descargar
gratuitamente desde la pagina del creador, como también se pueden realizar donaciones voluntarias.
Que versión de ubuntu instalar también es importante ya que los software desarrollados tienen compatibilidades
e incompatibilidades con las versiones mas antiguas o mas recientes.
En particular la versión 16.04 de Ubuntu al ser presentada en el año 2016 tiene la antigüedad suficiente para
encontrar todos los tutoriales, ayudas o problemas en Internet, tanto en foros como en comunidades de
desarrolladores.
Cuando se instala a Ubuntu en conjunto con Windows se debe asegurar que el bootloader este disponible, en el
caso del equipo utilizado para estas simulaciones al presionar el botón de encendido, rápidamente hay que
teclear la tecla supr
Aparece un menú con tres opciones, donde hay que seleccionar la tercera correspondiente al disco donde esta
instalado el sistema operativo.
Si la instalación se realiza desde cero, con Windows primero y ubuntu después se tiene un acceso mas rápido
Donde las opciones para arrancar el sistema operativo se ven como en la figura 1
Para mas detalle de como instalar estos dos sistemas existen numerosos tutoriales en internet.
Al tener ubuntu ya instalado hay que instalar Liggghts y Paraview
Para Liggghts se debe seguir el tutorial de la siguiente pagina, es bastante extenso por lo que se debe tener
paciencia, la versión a utilizar es Liggghts-Public version 3 ya que con otras versiones las instrucciones pueden
https://www.cfdem.com/media/DEM/docu/Section_intro.html
La parte mas importante es llegar a obtener el archivo lmp_auto y que compile sin arrojar errores.
En el tutorial se puede llegar a la sección Running Liggghts®-public en ese punto se pide realizar un tutorial de
prueba correspondiente al chute, si la instalación fue exitosa no habrá problema en visualizar los resultados.
Para instalar Paraview se utiliza la versión compatible para ubuntu 16.04 que corresponde a la versión 5.01
Es necesario tener el archivo lmp_auto en la carpeta de cada caso de simulación que se realice ya que este
contiene todas las directivas y direcciones de compilación y computo del programa.
ctrl + alt + t
en la terminal se debe escribir mpirun -np 4 lmp_auto<in.script
donde script es el nombre del caso particular
#Material properties
fix m1 all property/global youngsModulus peratomtype 5.e6 5.6e6
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.1 0.1 0.1 0.1
fix m4 all property/global coefficientFriction peratomtypepair 2 0.05 0.05 0.05 0.05
fix m6 all property/global cohesionEnergyDensity peratomtypepair 2 300000 30000 30000
30000
#Hay que destacar que existen propiedades definidas con matrices ya que las interacciones en distintas
direcciones cambian al tener propiedades no isotropicas, esto en especial para el coeficiente de restitución, el
coeficiente de fricción, la densidad de energía de cohesión y otras.
La densidad de energía de cohesión permite visualizar la interacción entre las partículas, si se dejan todos los
valores iguales es posible no notar la interacción wall-particle por lo que se recomienda cambiar estos valores y
ver que ocurre.
#pair style
pair_style gran model hertz tangential history cohesion sjkr #Hertzian with cohesion
pair_style gran model hertz tangential history cohesion sjkr #Hertzian with cohesion
pair_coeff **
#El estilo de pares define como es la interacción entre las partículas, se tienen dos lineas ya que se utilizan dos
materiales
#Paso temporal para las iteraciones
timestep 0.00005
#Forces of gravity
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#box walls
#Crea las paredes que no son parte de la malla, en este caso las paredes son necesarias para que las partículas no
salgan del dominio
# fix wall/gran permite definir como interactúan las partículas con las paredes, una explicación detallada y los
tipos de interacciones se explican en el siguiente enlace
https://www.cfdem.com/media/DEM/docu/Section_gran_models.html
fix boxwalls_1 all wall/gran model hooke tangential history primitive type 1 yplane 0.0
fix boxwalls_2 all wall/gran model hooke tangential history primitive type 1 yplane 0.2
#Esta sección es la mas importante ya que define como se insertan las partículas y es la que puede generar mas
problemas.
# En primer lugar es importante que la sección de inserción de partículas sea lo suficientemente grande.
#Particle instertion
fix ins all insert/stream seed 32452867 distributiontemplate pdd1 nparticles 6000 vel constant 0.0 0.0
-1.0 particlerate 1000 overlapcheck yes insertion_face inface extrude_length 0.08
fix integr all nve/sphere
#Esta sección define como son las iteraciones y si alguna malla se mueve o rota
Para ver los resultados se debe estar en la carpeta del caso de simulación en particular y teclear
ctrl +alt +t
paraview
En algunas versiones se debe teclear export LC_ALL=C antes de ingresar paraview ya que existen problemas al
importar las geometrías stl en algunas versiones
dump.stl → tiene terminación stl la cual es la terminación de las mallas que importa Liggghts por lo tanto con
esto se puede ver la geometría
movingMesh_..vtk → vtk es un archivo de salida para postprocesos que muestra los cambios dinámicos en las
partículas
movingMesh_boundingBox_* → Contiene el domino de simulación, esto es importante ya que las partículas se
mantienen encerradas en este dominio. Si este es definido mal, las partículas interpretan que no tienen restricción
de espacio y caen infinitamente.
Para este problema movingMesh_* contiene la información de las partículas, para poder visualizar los distintos
tamaños de las partículas es necesario activar un plugin que no esta cargado por defecto.
Vamos a la parte superior de paraview, buscamos la pestaña tools e ingresamos a Manage plugins
De lo contrario las partículas serán puntuales aunque contengan la información de masa y diámetro se verán
puntos separados de otros sin entrar en contacto.
Se selecciona la pestaña que por defecto muestra surface y se elige la opción Point Sprite
En la pestaña Properties se debe seleccionar en Coloring → radius con lo cual las esferas según sus tamaños
tiene colores distintos
En Scale by se selecciona radius, con esto las esferas se visualizan de tamaños distintos, ademas se debe
presionar Edit Radius Transfer Function y seleccionar Proportionnal para que sean proporcionales al tamaño
determinado
Figura 9: Opciones para la visualización con PointSprite de Paraview
solid INSERTION_FACE
facet normal 1.0 0.0 0.0
outer loop
vertex -0.2 0.01 0.0
vertex 0.0 0.2 0.0
vertex 0.2 0.0 0.0
endloop
endfacet
endsolid INSERTION_FACE
# Main
atom_style sphere
atom_modify map array
boundary fff
newton off
#Material properties
fix m1 all property/global youngsModulus peratomtype 5.e6 5.6e6
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.1 0.1 0.1 0.1
fix m4 all property/global coefficientFriction peratomtypepair 2 0.05 0.05 0.05 0.05
fix m5 all property/global cohesionEnergyDensity peratomtypepair 2 30000.0 500000.0 500000.0 0.0
fix m6 all property/global k_finnie peratomtypepair 2 1.0 1.0 1.0 1.0
#pair style
pair_style gran model hertz tangential history cohesion sjkr #Hertzian with cohesion
pair_style gran model hertz tangential history cohesion sjkr #Hertzian with cohesion
pair_coeff **
timestep 0.00005
#Forces of gravity
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#box walls
fix boxwalls_1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0
fix boxwalls_2 all wall/gran model hertz tangential history primitive type 1 yplane 0.2
#import mesh from cad:
fix cad1 all mesh/surface file meshes/M77.stl type 1
fix bucket_wall all wall/gran model hertz tangential history cohesion sjkr mesh n_meshes 1 meshes cad1
fix inface all mesh/surface file meshes/insertion_face.stl type 1
#Particle instertion
fix ins all insert/stream seed 32452867 distributiontemplate pdd1 nparticles 6000 vel constant 0.0 0.0 -1.0 &
particlerate 1000 overlapcheck yes insertion_face inface extrude_length 0.08
fix integr all nve/sphere