Lectura UDF
Lectura UDF
Lectura UDF
DEFORMARCION DE
MALLA
Lectura 8
Función definida por el
usuario (UDF)
INTRODUCCIÓN
Deformación • DEFINE_GEOM
• DEFINE_GRID_MOTION
Propiedad • DEFINE_DYNAMIC_ZONE_PROPERTY
• DEFINE_CONTACT
DEFINE_CG_MOTION
Macro
DEFINE_CG_MOTION MACRO
• Esta macro permite el movimiento del objeto como una función
del tiempo
Traducción
Rotación
Combinación de Traducción y Rotación
- En cada caso con respecto al CG (centro de gravedad) del
cuerpo
• CG es especificado por el usuario (no calculado por el
código)
• CG se actualiza continuamente a medida que el cuerpo
se mueve
• Esta macro define un movimiento prescrito
• El objeto se mueve como un cuerpo rígido
- Límite (s)
- Zona (s) de fluido
- En ambos casos, todos los nodos asociados se mueven como
uno,
• sin ningún movimiento relativo (deformación)
DEFINE_CG_MOTION DESCRIPCIÓN
• Parámetros de entrada
- Name: nombre de la UDF para conectarlo
- dt: hilo deformado
- time: hora actual
- dtime: paso de tiempo actual
• Parámetros de salida
- vel: velocidad de traslación
- omega: velocidad de rotación
EJEMPLO I – 2D SEPARACIÓN DEL STORE
Perfil vs UDF
PERFIL
Velocidad angular
Velocidad de traslación
UDF CG
Velocidad de traslación
Velocidad angular
VARIABLES DEPENDIENTES DEL TIEMPO
• Solver Macros para variables dependientes del tiempo
Nombre de macro Devoluciones
CURRENT_TIME Tiempo de flujo de corriente real (en segundos)
CURRENT_TIMESTEP Tamaño de paso de tiempo físico actual real (en
segundos)
PREVIOUS_TIME Tiempo real de flujo anterior (en segundos)
PREVIOUS_2_TIME Tiempo de flujo real dos pasos atrás en el
tiempo (en segundos)
PREVIOUS_TIMESTEP Tamaño de paso de tiempo físico real anterior
(en segundos)
N_TIME Número entero de pasos de tiempo
N_ITER Número entero de iteraciones
Ejemplo: DT_CG (dt) [1] devuelve la coordenada y actual del CG del cuerpo.
EJEMPLO I -2D SEPARACIÓN DE STORE
• La configuración permanece idéntica, las únicas
diferencias
- Leer un perfil (definir / profiles / ...)
- Compila y carga el UDF
Enganchar el movimiento
CG
MOTION
STEADY
Valores de velocidad inicial
Posición inicial
Posición
actualizada
DEFINE_GEOM Macro
DEFINE_GEOM MACRO
• Recuerde que Fluent no conoce la geometría subyacente. Fluent solo conoce
las ubicaciones de nodo de la malla.
- Por lo tanto, para que los nodos se deslicen a lo largo de una superficie, la
forma debe definirse
- solo aplicable a los límites
• Parámetros de entrada
- parábola: nombre de la UDF para conectarlo
- dominio: puntero al dominio
- dt: puntero a la estructura que almacena los atributos dinámicos de
malla
• Parámetros de salida
- posición: puntero a la matriz que almacena las posiciones del nodo
EJEMPLO II - FORMA DE PARÁBOLA
• Geom UDF: forma de parábola
- ecuación de parábola - gira alrededor del eje Z:
𝒚 = −𝟎. 𝟒 ∗ 𝒛2 + 𝟎. 𝟓 ∗ 𝒛 + 𝟎. 𝟑
DEFINE
DEFINE
GEOM Declaraciones
GEOM de variables
Definición
de variables
Ecuación de
parábola como
una función de z
Posición X
Posición Y
EJEMPLO II - FORMA DE PARÁBOLA
• Forma predefinida simple • Forma (s) más compleja (s)
- Condición de tipo deformante - Usuario definido
• Parámetros de entrada
- udfname: nombre de la UDF para conectarlo
- dominio * d: puntero al dominio
- dt: puntero a la estructura que almacena los
atributos dinámicos de malla
- hora: hora actual
- dtime: time step
• Parámetros de salida
EJEMPLO III - PULSO EN UNA ARTERIA
• AIM: simula el impacto de un pulso de presión a través de una arteria
• Este problema podría combinarse con un código FEA y tratarse como un problema de
FSI
• Para simplificar el problema, se usará una ecuación de onda para simular el pulso de
presión
EJEMPLO III - ONDA SINUSOIDAL
Grid motion UDF: onda sinusoidal Definición del valor
Macro
CUADRÍCULA
CUADRÍCULA
Bucle de caras
Bandera para marcar el nodo
después de que se hayan movido
EJEMPLO III - ONDA SINUSOIDAL
CUADRÍCULA Posición X
CUADRÍCULA
de un nodo
Configuración de la
calcular la nueva posición del nuevo
posición del nodo nodo en la pared
en Y superior
Configuración de la
nueva posición del nodo
en la pared inferior
EJEMPLO III - PULSO EN UNA ARTERIA
• Activar el modelo de malla dinámica
- Mantener el método de malla suavizado
- Configuración: mantener el valor predeterminado
• Tipos de elementos de interruptor
- Todo (porque la malla está hecha de
elementos cuádruples)
EJEMPLO III - PULSO EN UNA ARTERIA
- Pared superior:
• Repite la misma configuración que
abajo
DEFINE_GRID_MOTION
Limitaciones
• El movimiento de un nodo dado se basa en coordenadas absolutas (globales)
- No en coordenadas relativas
• La nueva posición de un nodo dado se basa en su posición en el anterior
hora de caminar,
- no su posición inicial (tiempo = 0)
EJEMPLO IV - BOMBA DE PALETAS
• Descripción de la aplicación
- El fluido se mueve desde la entrada a la cámara
- La cámara de volumen es barrida por la paleta y empujada a la
salida
• El rotor de la bomba no está centrado en la carcasa
- Las paletas tienen un movimiento lineal ya que giran con el
rotor
- Las cámaras cambian de volumen a lo largo del tiempo
• DEFINE_GRID_MOTION UDF
fue utilizado en toda la zona de fluidos
- En una malla Hexa pura
• 100 000 células
• Se convertirá
To be completed
DEFINE_DYNAMIC_ZONE_PROPERTY UDF MACRO
#include "udf.h"
Propiedad de #include "dynamesh_tools.h“
Propiedad
la zona de
la zona
DEFINE_DYNAMIC_ZONE_PROPERTY(nonconst_height, dt, lh)
{ La altura de la celda permanece
if (CURRENT_TIME < 0.04166667) constante hasta que la hora
actual alcanza este tiempo
*lh = 0.065; objetivo
else
*lh=(*lh - CURRENT_TIMESTEP);
}
La altura de la celda
cambiará de una capa de
celda a otra como resultado
de esta función
EJEMPLO VIII
Flujo de trabajo para establecer un caso con una altura
de celda no Cst
• Activar malla dinámica
• Elija el método de malla de estratificación
- Configuraciones
• Mantener los parámetros predeterminados
nuevas zonas,
• las propiedades físicas especificadas en el flujo con respecto a
zona de control se copian a la zona de celda recién separada.
Velocidad
De Entrada
RESUMEN