Solver

Ejecución

En caso de querer ejecutar el Solver por fuera de la GUI, se debe ejecutar el siguiente comando:

./target/release/solver <directory> <method>

Siendo <directory> el directorio donde se encuentran los archivos necesarios, mientras que <method> debe tomar el valor de "Implicit" o el de "GPU"

Los archivos necesarios para ejecutar el solver son: mesh.vtk, properties.json y view_factors.vf.

Una vez ejecutado, genera una carpeta results que contiene un archivo result.vtk.series y un archivo result<i>.vtk por cada instante de la simulación.

Parámetros

Los parámetros necesarios para ejecutar el solver que se encuentran en el properties.json son los siguientes:

Global Properties

"global_properties": {
    "orbital_period": 5828.516639879384,
    "albedo": 0.2,
    "earth_ir": 225.0,
    "solar_constant": 1361.0,
    "initial_temperature": 293.15,
    "simulation_time": 175000.0,
    "time_step": 10.0,
    "snap_period": 100.0,
    "orbit_divisions": 60,
    "eclipse_start": 603.2083601206168,
    "eclipse_end": 2646.8503601206166
}
  • "orbital_period": Indica el periodo de la orbita, es generado por el preprocesador.
  • "albedo": Factor de albedo.
  • "earth_ir": Flujo de calor proveniente por la radiación IR de la tierra \([\frac{W}{m^2}]\).
  • "solar_constant": Constante de flujo solar \([\frac{W}{m^2}]\).
  • "simulation_time": Tiempo de simulación expresado en segundos.
  • "time_step": Paso de tiempo que usara la simulación, esta expresado en segundos.
  • "snap_perior": Indica cada cuanto tiempo se guardara un resultado, esta expresado en segundos.
  • "orbit_divisions": Cantidad de divisiones en la orbita para los factores de vista.
  • "eclipse_start": Indica cuando empieza el eclipse, es generado por el preprocesador.
  • "eclipse_end": Indica cuando termina el eclipse, es generado por el preprocesador.

Los parámetros "albedo", "earth_ir", "solar_constant", "initial_temperature", "simulation_time", "time_step" y "snap_period" pueden ser alterados manualmente para modificar las caracteristicas de la simulación sin necesidad de volver a ejecutar el preprocesador, lo que disminuye el tiempo total empleado. Una modificación en cualquiera de los parámetros restantes requiere volver a ejecutar el preprocesador para el correcto funcionamiento de la simulación.

Materials

"materials": {
    "properties": {
        "aluminio": {
            "thermal_conductivity": 237.0,
            "specific_heat": 900.0,
            "density": 2700.0,
            "thickness": 0.05,
            "alpha_sun": 1.0,
            "alpha_ir": 1.0,
            "name": "aluminio"
        }
    },
    "elements": {
        "aluminio": [1,2,3,4,5,6,7,8]
    }
}

Se divide en dos subsecciones, siendo la primera "properties", en donde se especifican las caracteristicas físicas de los materiales y la segunda "elements", en donde se indica a través de un arreglo a qué elementos corresponden dichos materiales.

Las propiedades de los materiales son:

  • "thermal_conductivity": Conductividad térmica \([\frac{W}{m \ K}]\).
  • "specific_heat": Calor específico \([\frac{J}{kg \ K}]\).
  • "density": Densidad \([\frac{kg}{m^3}]\).
  • "thickness": Grosor \([m]\).
  • "alpha_sun": Absortividad en frecuencias del espectro solar. Escalar positivo menor a uno.
  • "alpha_ir": Absortividad en el espectro infrarojo. Escalar positivo menor a uno.

Los parámetros "thermal_conductivity", "specific_heat", "density" y "thickness" pueden ser alterados manualmente sin necesidad de volver a ejecutar el preprocesador.

Conditions

"conditions": {
    "elements": {
        "hot_temperature": [
            1,2,3,4
        ]
    },
    "properties": {
        "hot_temperature": {
            "initial_temperature_on": true,
            "initial_temperature": 573.0,
            "flux_on": false,
            "flux": 0.0,
            "two_sides_radiation": false
        }
    }
}

Se divide en dos subsecciones, siendo la primera "properties", en donde se especifican las características de las condiciones y la segunda "elements", en donde se indica a través de un arreglo a qué elementos corresponden dichas condiciones.

Las características de una condición son:

  • "flux_on": Indica si se debe considerar el valor del parametro "flux"
  • "flux": Flujo constante incidente (\(\frac{W}{m^2}\)).
  • "initial_temperature_on": Indica si se debe considerar el valor del parametro "initital_temperature"
  • "initial_temperature": Temperatura inicial (\(W\)).
  • "two_sides_radiation": Indica si los elementos emiten radiación hacia ambos lados.

Los parámetros "flux_on", "flux", "initial_temperature_on" e "initial_temperature" pueden ser alterados manualmente sin necesidad de volver a ejecutar el preprocesador.

Tiempo de ejecución vs Precisión

La modificación de los distintos parámetros implica, en general, un tradeoff entre el tiempo de ejecución y precisión. Aquellos parámetros que tienen impácto en alguna de estas dos variables son:

  • "simulation_time": Al aumentar, incrementa el tiempo de ejecución.

  • "time_step": Al disminuir, mejora la precisión de la simulación, a costa de un mayor tiempo de ejecución.

  • "snap_period": Al disminuir, mejor será la resolución de datos extraidos de la simulación, a costa de un mayor tiempo de ejecución.

  • "orbit_divisions": Al aumentar, mejor será la discretización de la órbita y con ello la precisión de la simulación, a costa de un mayor tiempo de ejecución.

  • Cantidad de elementos en malla: Al aumentar, mejor será la discretización del modelo y con ello la precisión de la simulación, a costa de un mayor tiempo de ejecución.