Categoría: Blog de CAE de OSS

  • Electronic cooling simulation using OpenFOAM

    Simulación de enfriamiento electrónico usando OpenFOAM

    Las limitaciones de espacio y el alto suministro de energía conducen en última instancia a un diseño de refrigeración innovador para una amplia gama de PCB. La disposición de las fuentes de alimentación, las dimensiones del disipador de calor y el diseño de la carcasa exterior adquieren mayor importancia. Las simulaciones térmicas dentro del proceso de diseño de PCB ayudan a superar los problemas de sobrecalentamiento en la etapa posterior de producción. 

    Los diferentes materiales, la combinación de conducción de calor, convección y transferencia de calor radiante dentro de sólidos y aire resultan en una simulación térmica bastante compleja. La configuración de las propiedades del material, las condiciones de contorno, los ajustes del solucionador y las regiones de acoplamiento a menudo consumen un tiempo considerable.

    Como ejemplo se presenta una PCB típica con sus componentes.

    Simulación térmica 

    Silentdynamics ha logrado empaquetar la configuración de la simulación utilizando los solucionadores térmicos de OpenFOAM (chtMultiRegionFoamchtMultiRegionSimpleFoamdentro de su marco InsightCAE para un preprocesamiento rápido.

    Importar archivos CAD para cada componente y su proceso de mallado en regiones paralelas optimizadas utilizando snappyHexMesh son esenciales para el acoplamiento de flujo conservativo de las diferentes regiones de calentamiento.

    Observe que el uso de diferentes Vías, cables de cobre, capas de conducción de calor u otros puntos relacionados con el calor debe abordarse en el modelo de simulación. Utilizando modelado de regiones, conjuntos de celdas (cellSet's) y definición de capas para cada componente, se pueden considerar todas las propiedades térmicas requeridas.

    Permitiendo comodines especiales definidos, la configuración de simulación CHT está casi automatizada. 

    Además, el manejo mejorado de la radiación térmica y la optimización de la configuración del solucionador son la base de simulaciones estables y convergentes. 

  • Degassing simulation using OpenFOAM

    Simulación de desgasificación usando OpenFOAM

    Las limitaciones de espacio y la alta presión de costos finalmente llevan a que los tanques hidráulicos sean cada vez más complejos y pequeños. Esto provoca una reducción drástica de la separación de aire en el tanque y, por lo tanto, a una mayor cantidad de aire libre en el sistema hidráulico.

    En los sistemas hidráulicos, el aire libre sigue siendo un desafío técnico hoy en día. Mientras el aire esté disuelto en el aceite, no altera sus propiedades.

    Por otro lado, el aire sin disolver, es decir, burbujas de aire, provocan:

    • Corrosión en bombas y controles
    • Disminuir la eficiencia de las bombas y los motores hidráulicos, aumentando la compresibilidad y, por lo tanto, los posibles movimientos intermitentes del miembro de salida.
    • Envejecimiento acelerado del aceite
    • ruido de barniz
    • Daños en los componentes (p. ej. cavitación)
    • etc.

    El aire entra en el circuito durante los trabajos de montaje, a través de fugas en la zona de presión negativa y cuando el aceite fluye de regreso al depósito. Dependiendo de la capacidad de separación del sistema filtro-depósito, el aire en el depósito sube lentamente y es succionado de nuevo por la bomba.

    Simulación de dispositivos aire-líquido

    Silentdynamics utiliza InsightCAE para realizar una serie de simulaciones de burbujas de gas dispersas en un tanque de desgasificación. Aplicación del solucionador twoPhaseEulerFoam permite el seguimiento transitorio de la fase gaseosa, los valores integrales de aire en las salidas y, en general, la calidad del dispositivo de desgasificación. 

    Como ejemplo se presenta una desgasificación sencilla. Una entrada y dos salidas, incluyendo un desgaste en el centro. La mezcla de aceite y gas se mueve sobre el desgaste para la desgasificación.

     

    Configuración de las condiciones de contorno de dispersión gas-aceite como tamaño de burbuja de gas, coeficientes de mezcla, propiedades de fase, etc. la simulación utilizando twoPhaseEulerFoam podría iniciarse.

    Usando configuraciones avanzadas del solucionador dentro del marco InsightCAE, los pasos de tiempo grandes están habilitados para gestionar simulaciones en un tiempo razonable.

    Se presentan isosuperficies de gas%. 


    El cambio de la geometría del tanque de desgasificación mediante simulación numérica conduce a un proceso de desgasificación suficiente del aceite hidráulico.

  • Cálculo Vectorial en Scripts de Bash

    Al realizar operaciones preparatorias para análisis cfD o efeem, a menudo es necesario especificar parámetros vectoriales. Las constantes vectoriales son fáciles de manejar:

    myMesh --direction "$DIR"

    Sin embargo, se vuelve rápidamente complicado si los vectores tienen que ser manipulados, por ejemplo, multiplicados por escalares o rotados.

    Una solución potente es utilizar el clon de Matlab, Octave, para realizar las operaciones. Dos características de Octave son útiles en este contexto:

    • la opción de línea de comandos “–eval” para especificar la expresión a manejar
    • la función “disp” para mostrar los resultados en formato plano en una sola línea

    Un ejemplo:

    DIR="1 0 0"
    VELOCITY=$(octave --eval "disp( 11.*[$DIR] )")
    
    myMesh --direction "$DIR"
    mySolver --velocity "$VELOCITY"

    Son posibles operaciones más complicadas. Aunque hay que tener cuidado para producir vectores de línea como resultados. La rotación como ejemplo:

    DIR="1 0 0"
    ANG=45
    
    DIR_ROT=$(octave --eval "pkg load linear-algebra; disp( (rotv([0 0 1],$ANG*pi/180)*[$DIR]')' )")
    
    myMesh --direction " $DIR_ROT"

     

  • Exporting a STEP file with named surfaces from PTC Creo

    Exportación de un archivo STEP con superficies nombradas desde PTC Creo

    Al preparar la geometría para simulaciones numéricas, a menudo se requiere marcar superficies individuales en el modelo. Estas superficies se pueden utilizar, por ejemplo, como entrada o se pueden aplicar fuerzas y presiones en una simulación estructural.

    El formato STEP admite entidades con nombre. La pregunta es: ¿cómo se definen los nombres en el programa CAD? Y ¿cómo se consigue que se almacenen realmente en el archivo STEP? A continuación, se responden estas preguntas para el software PTC Creo.

    Asignar nombres a superficies

    Seleccione “Archivo” > “Preparar” y luego “Abrir propiedades del modelo”, después seleccione “Nombres” en el cuadro de diálogo de propiedades del modelo:

      

    Luego puedes seleccionar caras haciendo clic en ellas e introducir un nombre en el cuadro de diálogo:

    PTC Creo assign name to face or surface

    Exportar Nombres en Archivo STEP

    Si exporta un archivo STP con la configuración predeterminada, los nombres no se almacenarán en el archivo. Debe cambiar la configuración de exportación para que se conserven.

    Abre el cuadro de diálogo de configuración a través de “Archivo” > “Opciones”. Luego ve a “Editor de configuración”. Aquí, necesitas agregar la opción “intf_out_assign_names” y establecerla en “user_name”.

    PTC Creo STEP export settings

    Acceder a la Entidad Nombrada en ISCAD

    Ahora es posible acceder a las caras a través de los nombres asignados, por ejemplo en ISCAD. Una vez importado el archivo STEP, sus subentidades se pueden explorar escribiendo Ctrl-I (ver más abajo). Las caras con nombre aparecen como “cara_” en la jerarquía:

    InsightCAE ISCAD import STP with named faces

  • Importing IGES File (*.IGS) from FreeShip to OpenCASCADE

    Importando archivo IGES (*.IGS) de FreeShip a OpenCASCADE

    El software FreeShip es una herramienta conveniente para el diseño de cascos.
    Las capacidades de FreeShip se limitan esencialmente al diseño del exterior del casco. Para todo lo demás, se requiere un sistema CAD real. Existe una función de exportación IGES para la transferencia.
    También hay un sucesor: DelftShip. La función de exportación IGES ha sido eliminada de la versión gratuita de DelftShip y solo está disponible en la versión comercial. Esta no está a mi disposición, por lo que no puedo probarla.
    Me gustaría usar la geometría en nuestra herramienta ISCAD. Está basada en OpenCASCADE.
    La geometría del casco modelada en FreeShip 2.6 se ve así:
    La exportación a un archivo IGES es poco espectacular y se crean 40 caras individuales.
    El siguiente paso es la importación a OpenCASCADE. Pero aquí hay un problema. OpenCASCADE (v7.2.0) informa:

    Informe: 40 entidades desconocidas.

    Número total de entidades cargadas 41.

    No se muestra nada. Aunque se informa que una importación funciona con versiones anteriores.https://forum.freecadweb.org/viewtopic.php?t=1670), la importación no funciona con la versión actual de OCC, ni con diferentes versiones anteriores de Salome (y OpenCASCADE). Por otro lado, la importación funciona, por ejemplo, en el software CAD comercial Creo.

    Finalmente, un estudio muestra que el archivo exportado por FreeShip contiene solo entidades de tipo 128 (superficie spline). Además, hay una única definición de color al principio. Al final del bloque de parámetros de una superficie 128 (ver p. ej. https://wiki.eclipse.org/IGES_file_Specification#Rational_B-Spline_Surface_.28Type_128.29) son los parámetros de inicio y fin (valores mínimos/máximos de U y V) de la superficie. Estas entradas son omitidas por FreeShip y para OpenCASCADE esto es un error.

    Una solución alternativa es parchear la importación de IGES de OpenCASCADE. El código correspondiente se encuentra a partir de la línea 188 en el archivo IGESGeom/IGESGeom_ToolBSplineSurface.cxx. Eliminé el mensaje de error e inserté límites de parámetros por defecto:

      si (!PR.ReadReal(PR.Current(), aUmin) || !PR.ReadReal(PR.Current(), aVmin)){
        //Message_Msg Msg106("XSTEP_106");
        //PR.SendFail(Msg106);
        aUmin=0.0;
        aVmin=0.0;
      }
    
      si (!PR.ReadReal(PR.Current(), aUmax) || !PR.ReadReal(PR.Current(), aVmax)){
        //Message_Msg Msg107("XSTEP_107");
        //PR.SendFail(Msg107);
        aUmax=1.0;
        aVmax=1.0;
      }

    Con estas modificaciones, la importación funciona: