Taller de DualSPHysics
Taller de DualSPHysics
Taller de DualSPHysics
Resumen:
La situación física del problema tal como se muestra en la figura consiste en un volumen de agua
que se encuentra soportando por un tanque de 15 metros de alto por 10 metros de ancho y el
cilindro se encuentra en el centro con radio 1 metro. En el cual este cilindro con el trascurso del
paso del tiempo se hundirá. Las propiedades se darán más adelante en la demostración del caso en
2D pero se trata al fluido como: newtonianos, ligeramente compresible, con propiedades
constantes. El proceso transiente de interacción es isotérmico.
Ecuaciones involucradas en el modelo SPH:
Continuidad:
Momento
Γ: Términos de disipación
Viscosidad artificial:
Estado:
Case Def: este es un archivo que en este caso se llama CaseFloating_Def.xml define el caso, con sus
propiedades físicas y la situación física, dimensiones etc. (más bien donde creamos el caso de
estudio) en el caso si la geometría es importada acepta los formatos mencionados a la derecha.
GenCase: Adapta todo lo creado en el Case_Def para que puede ser leído por el DualSPHysics, toda
la geometría y propiedades propuestas lo genera físicamente.
DualSPHysics: Lee y calcula el problema y genera los archivos Part_XXX para que un posterior
programa los pueda visualizar en el post proceso como el Paraview.
PartVTK: arroja los valores de presión del fluido por cada paso de tiempo movimiento del fluido.
Measuretool: Hace cálculos numéricos más general calcula en el mismo punto de dominio para cada
archivo Part_XXX arrojados.
Explicación del archive CaseFloatingSphereVal2D_Def.xml
<?xml version="1.0" encoding="UTF-8" ?>
casedef>
<constantsdef>
Lattice : es el mallado para crear las partículas , puede ser de 2 tipos , mallado simple (una partícula por punto =1) y una más refinado ( o 2 partículas. Por punto =2)
<!-- DEFINICION DEL CASO -->
</constantsdef>
<mkconfig boundcount="230" fluidcount="10"> <! 230 niveles para partículas de contorno y 10 niveles para partículas de fluido -->
<mkorientfluid mk="0" orient="Xyz" /> <! --- orientación de las partículas >
</mkconfig>
<!-- mk : etiqueta que se utiliza para : 1 )define los objetos de orden que se crean y 2) se aplica características específicas a los diferentes conjunto de puntos tales como el
movimiento, movimiento rígido ...-->
<geometry>
<!--DEFINICION DEL DOMINIO DONDE LAS PARTICULAS SON CREADAS -->
<definition dp="0.05" units_comment="metres (m)"> <!-- dp DEFINE LA DISTANCIA ENTRE PARTICULAS SI SE CAMBIA LAS CANTIDAD D PARTICULAS ES MODIFICADA -->
<! DEFINEN LA DIMENSION DEL DOMINIO DONDE LAS PARTICULAS SERAN CREDAS -->
<pointmin x="-5.05" y="5.0" z="-0.05" />
<pointmax x="5.05" y="5.0" z="15.05" />
</definition>
<commands>
<mainlist>
<setshapemode>dp | real | bound</setshapemode> <!-- setshapemode DEFINE LA OPERACION DE DIBUJO PARA CREAR LOS ARCHIVOS VTK -->
<! USA COORDENADAS REALES -->
<setdrawmode mode="full" /> <!-- FULL: COMBINA CARA Y SOLIDO-->
<setmkfluid mk="0" /> <! CREACION DE PARTICULAS DE FLUIDO CAJA DE AGUA --> <!-- VOLUMEN DEL FLUIDO -->
<!--Dibujo del cilindro con 2 puntos y el radio (2D) mask=0 ningura cara oculta -->
<initials>
<!--Velocidades iniciales para el mkfluid=0 (fluido) en este caso se pueden agregar más para algunos cuerpos-->
<velocity mkfluid="0" x="0.0" y="0.0" z="0.0" />
</initials>
<floatings> <!-- Indica que un conjunto de partículas que presenten el mismo mk (conjunto de caracteristica y orden) constituye un objeto flotante -->
<parameters>
<parameter key="PosDouble" value="2" comment="Precision in particle interaction 0:Simple, 1:Double, 2:Uses and saves double (default=0)" />
<parameter key="Kernel" value="2" comment="Interaction Kernel 1:Cubic Spline, 2:Wendland (default=2)" />
<parameter key="ViscoTreatment" value="2" comment="Viscosity formulation 1:Artificial, 2:Laminar+SPS (default=1)" />
<parameter key="Visco" value="0.000001" comment="Viscosity value" units_comment="m^2/s" />
<parameter key="ViscoBoundFactor" value="1" comment="Multiply viscosity value with boundary (default=1)" />
<parameter key="DeltaSPH" value="0.1" comment="DeltaSPH value, 0.1 is the typical value, with 0 disabled (default=0)" />
<parameter key="#Shifting" value="0" comment="Shifting mode 0:None, 1:Ignore bound, 2:Ignore fixed, 3:Full (default=0)" />
<parameter key="#ShiftCoef" value="-2" comment="Coefficient for shifting computation (default=-2)" />
<parameter key="#ShiftTFS" value="1.5" comment="Threshold to detect free surface. Typically 1.5 for 2D and 2.75 for 3D (default=0)" />
<parameter key="RigidAlgorithm" value="1" comment="Rigid Algorithm 1:SPH, 2:DEM (default=1)" />
<parameter key="FtPause" value="1.0" comment="Time to freeze the floatings at simulation start (warmup) (default=0)" units_comment="seconds" />
<parameter key="CoefDtMin" value="0.05" comment="Coefficient to calculate minimum time step dtmin=coefdtmin*h/speedsound (default=0.05)" />
<parameter key="#DtIni" value="0.0001" comment="Initial time step (default=h/speedsound)" units_comment="seconds" />
<parameter key="#DtMin" value="0.00001" comment="Minimum time step (default=coefdtmin*h/speedsound)" units_comment="seconds" />
<parameter key="#DtFixed" value="DtFixed.dat" comment="Dt values are loaded from file (default=disabled)" />
<parameter key="DtAllParticles" value="0" comment="Velocity of particles used to calculate DT. 1:All, 0:Only fluid/floating (default=0)" />
<parameter key="TimeMax" value="8.5" comment="Time of simulation" units_comment="seconds" />
<parameter key="TimeOut" value="0.1" comment="Time out data" units_comment="seconds" />
<parameter key="IncZ" value="0.2" comment="Increase of Z+" units_comment="decimal" />
<parameter key="PartsOutMax" value="1" comment="%/100 of fluid particles allowed to be excluded from domain (default=1)" units_comment="decimal" />
<parameter key="RhopOutMin" value="700" comment="Minimum rhop valid (default=700)" units_comment="kg/m^3" />
<parameter key="RhopOutMax" value="1300" comment="Maximum rhop valid (default=1300)" units_comment="kg/m^3" />
<parameter key="XPeriodicIncZ" value="0" comment="Periodic BC in X-Y" units_comment="metres (m)" />
</parameters>
</execution>
</case>
ESTOS PARAMETROS EN ORDEN POR COLORES INDICAN: DOBLE PRESICION, ESQUEMA DE
INTEGRACION DE TIEMPO, FUNCION DE KERNEL (WENDLAND), TRATAMIENTO DE VISCOSIDAD,
FORMULACION DELTA SPH, ALGORITMO SHIFTING (DE CAMBIO), INTERACCION ENTRE SOLIDOS,
PASO DE TIEMPO COMPUTACIONAL, TIEMPO FISICO Y FRECUENCIA DE ALMACENACION DE
DATOS, EN LOS QUE SE EXCLUYEN PARTICULAS POR POSICION Y OTRO QUE SE EXCLUYEN
PARTICULAS POR DENSIDAD, Y LA PERIODICIDAD
En esta Parte seleccionamos cuantos archivos queremos crear para la visualización (archivos
Part_XXX)
Para correr este ejemplo y todos los ejemplos modificables básicos que trae este programa
se necesita crear una carpeta la cual en este caso llame cilindro 2D, en ella copiare los datos
que se encuentran en 2 carpetas del archivo .rar , que contiene el DualSPHysics que se
descarga de la página http://dual.sphysics.org/index.php/downloads: cabe recordar que
se está ejecutando con la versión 4 del programa la cual trae los siguientes archivos:
Próximo todos esos archivos Part_XXXX.bi4 más los otros 3 archivos generados hay que
copiarlos a la carpeta all_out. Esto se hace para utilizar el próximo comando el cual nos
permitirá visualizar todas esas partes en el programa Paraview 5.0.
1.- En Animation View >>> 2.- Mode: Real time >>> 3.- seleccionar Play y luego >> 4.-
visualizar el tiempo real en la imagen 50.0 que equivale a 5 [s] de tiempo real.