Variação de regime de temperatura do poço#

Arquivo de configuração

[2]:
from modules.simulation.config.model import SimulationConfigModel
import pathlib

case_data = {
    "temperature_uniform_25": {"title": "Temperatura Uniforme (25°C)"},
    "temperature_uniform_50": {"title": "Temperatura Uniforme (50°C)"},
    "temperature_uniform_100": {"title": "Temperatura Uniforme (100 °C)"},
    "temperature_linear_4_120": {"title": "Gradiente Uniforme (4°C-120°C)"},
}

for case in case_data.keys():
    cfg_path = pathlib.Path(f"./docs/source/_static/software/{case}.yaml")
    cfg = SimulationConfigModel.from_file(cfg_path)
    case_data[case]["cfg"] = cfg.model_copy()

case_data
[2]:
{'temperature_uniform_25': {'title': 'Temperatura Uniforme (25°C)',
  'cfg': SimulationConfigModel(sim_name='uniform_25', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=None), suspension=SuspensionModel(initial_conc=0.1391, max_conc=0.19), solid_phase=SolidPhaseModel(particle_diam=4.08e-05, particle_esphericity=0.8, density=2709.0), fluid_phase=FluidPhaseModel(density=891.4, power_law=PowerLawFluidModel(M=30.13, n=0.21)), simulation_parameters=SimulationParameters(timestep=1000.0, total_time=31536000.0), export=FrequencyConfig(frequency=100), report=FrequencyConfig(frequency=1000), HPHT=HPHTModel(temperature=HPHTTemperatureModel(model='exponential', reference_temperature=25.0, viscosity_factor=0.005, temperature_regimes=[HPHTTemperatureRegime(initial_step=0.0, top_temperature=25.0, gradient=0.0)]), pressure=None), equation_parameters=EquationParameters(delta=0.622641, k0=47.601104, beta=0.04983, ref_conc=0.14, p_ref=63.640954))},
 'temperature_uniform_50': {'title': 'Temperatura Uniforme (50°C)',
  'cfg': SimulationConfigModel(sim_name='uniform_50', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=None), suspension=SuspensionModel(initial_conc=0.1391, max_conc=0.19), solid_phase=SolidPhaseModel(particle_diam=4.08e-05, particle_esphericity=0.8, density=2709.0), fluid_phase=FluidPhaseModel(density=891.4, power_law=PowerLawFluidModel(M=30.13, n=0.21)), simulation_parameters=SimulationParameters(timestep=1000.0, total_time=31536000.0), export=FrequencyConfig(frequency=100), report=FrequencyConfig(frequency=1000), HPHT=HPHTModel(temperature=HPHTTemperatureModel(model='exponential', reference_temperature=25.0, viscosity_factor=0.005, temperature_regimes=[HPHTTemperatureRegime(initial_step=0.0, top_temperature=50.0, gradient=0.0)]), pressure=None), equation_parameters=EquationParameters(delta=0.622641, k0=47.601104, beta=0.04983, ref_conc=0.14, p_ref=63.640954))},
 'temperature_uniform_100': {'title': 'Temperatura Uniforme (100 °C)',
  'cfg': SimulationConfigModel(sim_name='uniform_100', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=None), suspension=SuspensionModel(initial_conc=0.1391, max_conc=0.19), solid_phase=SolidPhaseModel(particle_diam=4.08e-05, particle_esphericity=0.8, density=2709.0), fluid_phase=FluidPhaseModel(density=891.4, power_law=PowerLawFluidModel(M=30.13, n=0.21)), simulation_parameters=SimulationParameters(timestep=1000.0, total_time=31536000.0), export=FrequencyConfig(frequency=100), report=FrequencyConfig(frequency=1000), HPHT=HPHTModel(temperature=HPHTTemperatureModel(model='exponential', reference_temperature=25.0, viscosity_factor=0.005, temperature_regimes=[HPHTTemperatureRegime(initial_step=0.0, top_temperature=100.0, gradient=0.0)]), pressure=None), equation_parameters=EquationParameters(delta=0.622641, k0=47.601104, beta=0.04983, ref_conc=0.14, p_ref=63.640954))},
 'temperature_linear_4_120': {'title': 'Gradiente Uniforme (4°C-120°C)',
  'cfg': SimulationConfigModel(sim_name='linear_4_120', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=None), suspension=SuspensionModel(initial_conc=0.1391, max_conc=0.19), solid_phase=SolidPhaseModel(particle_diam=4.08e-05, particle_esphericity=0.8, density=2709.0), fluid_phase=FluidPhaseModel(density=891.4, power_law=PowerLawFluidModel(M=30.13, n=0.21)), simulation_parameters=SimulationParameters(timestep=1000.0, total_time=31536000.0), export=FrequencyConfig(frequency=100), report=FrequencyConfig(frequency=1000), HPHT=HPHTModel(temperature=HPHTTemperatureModel(model='exponential', reference_temperature=25.0, viscosity_factor=0.005, temperature_regimes=[HPHTTemperatureRegime(initial_step=0.0, top_temperature=4.0, gradient=552.381)]), pressure=None), equation_parameters=EquationParameters(delta=0.622641, k0=47.601104, beta=0.04983, ref_conc=0.14, p_ref=63.640954))}}

Run simulations

[29]:
import time
from modules.simulation.sim_handler import SimulationHandler

for case in case_data.keys():
    cfg = case_data[case]["cfg"]
    output_path = pathlib.Path(f"./out/{cfg.sim_name}")
    sim_handler = SimulationHandler(cfg=cfg, output_path=output_path)
    start = time.time()

    sim_handler.start_simulation()

    end = time.time()

    print("\nTempo total de simulação:" + str(end - start) + " [s]")
    print("Status da simulação: " + sim_handler.sim_status)
    print("Exportando resultados...")

    sim_handler.export_sim_data()
    sim_handler.export_domain_polydata(frequency_reduction=100)
[2024-09-08 23:34:00,366] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:34:00,367] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:34:01,103] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:34:01,103] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:01,833] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:34:01,834] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:02,556] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:34:02,557] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:03,282] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:34:03,283] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:04,012] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:34:04,013] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:04,731] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:34:04,732] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:05,456] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:34:05,457] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:06,207] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:34:06,208] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:06,942] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:34:06,942] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:07,670] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:34:07,670] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:08,392] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:34:08,392] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:09,149] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:34:09,150] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:09,905] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:34:09,905] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:10,652] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:34:10,653] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:11,377] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:34:11,377] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:12,113] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:34:12,114] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:12,843] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:34:12,843] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:13,565] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:34:13,566] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:14,295] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:34:14,296] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:15,020] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:34:15,021] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:15,741] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:34:15,741] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:16,463] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:34:16,464] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:17,185] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:34:17,185] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:17,912] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:34:17,913] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:18,641] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:34:18,642] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:19,357] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:34:19,357] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:20,089] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:34:20,090] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:20,822] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:34:20,823] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:21,556] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:34:21,557] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:22,278] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:34:22,278] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:23,009] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:34:23,010] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)

Tempo total de simulação:23.030245304107666 [s]
Status da simulação: finished
Exportando resultados...
[2024-09-08 23:34:26,830] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:34:26,830] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:34:27,556] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:34:27,557] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:28,291] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:34:28,291] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:29,009] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:34:29,010] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:29,736] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:34:29,736] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:30,475] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:34:30,476] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:31,197] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:34:31,198] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:31,923] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:34:31,923] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:32,653] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:34:32,654] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:33,376] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:34:33,377] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:34,104] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:34:34,105] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:34,831] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:34:34,831] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:35,547] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:34:35,548] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:36,282] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:34:36,283] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:37,024] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:34:37,024] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:37,747] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:34:37,748] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:38,473] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:34:38,474] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:39,202] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:34:39,202] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:39,926] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:34:39,927] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:40,649] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:34:40,649] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:41,369] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:34:41,370] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:42,096] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:34:42,097] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:42,827] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:34:42,828] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:43,549] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:34:43,549] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:44,277] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:34:44,277] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:44,998] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:34:44,998] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:45,736] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:34:45,736] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:46,456] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:34:46,457] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:47,187] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:34:47,188] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:47,909] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:34:47,909] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:48,637] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:34:48,637] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:49,360] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:34:49,361] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)

Tempo total de simulação:22.91685676574707 [s]
Status da simulação: finished
Exportando resultados...
[2024-09-08 23:34:53,224] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:34:53,225] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:34:54,004] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:34:54,005] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:54,729] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:34:54,730] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:55,493] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:34:55,494] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:56,220] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:34:56,221] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:56,953] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:34:56,953] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:57,671] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:34:57,672] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:58,395] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:34:58,396] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:59,116] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:34:59,116] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:34:59,837] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:34:59,837] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:00,564] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:35:00,565] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:01,293] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:35:01,293] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:02,014] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:35:02,015] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:02,746] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:35:02,747] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:03,463] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:35:03,463] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:04,185] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:35:04,185] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:04,904] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:35:04,905] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:05,622] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:35:05,623] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:06,340] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:35:06,340] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:07,062] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:35:07,062] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:07,789] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:35:07,789] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:08,509] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:35:08,510] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:09,238] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:35:09,238] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:09,962] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:35:09,963] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:10,695] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:35:10,696] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:11,427] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:35:11,427] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:12,147] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:35:12,148] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:12,876] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:35:12,876] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:13,597] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:35:13,598] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:14,325] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:35:14,326] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:15,057] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:35:15,058] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:15,785] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:35:15,785] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)

Tempo total de simulação:22.94856548309326 [s]
Status da simulação: finished
Exportando resultados...
[2024-09-08 23:35:19,573] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:35:19,574] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:35:20,310] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:35:20,310] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:21,033] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:35:21,034] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:21,749] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:35:21,749] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:22,467] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:35:22,468] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:23,205] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:35:23,206] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:23,936] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:35:23,936] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:24,675] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:35:24,676] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:25,400] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:35:25,400] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:26,122] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:35:26,123] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:26,839] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:35:26,840] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:27,565] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:35:27,566] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:28,291] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:35:28,292] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:29,009] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:35:29,010] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:29,739] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:35:29,739] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:30,455] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:35:30,456] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:31,180] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:35:31,181] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:31,900] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:35:31,901] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:32,621] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:35:32,622] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:33,340] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:35:33,341] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:34,067] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:35:34,068] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:34,788] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:35:34,789] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:35,510] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:35:35,510] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:36,229] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:35:36,229] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:36,957] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:35:36,958] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:37,679] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:35:37,679] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:38,404] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:35:38,404] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:39,126] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:35:39,126] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:39,879] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:35:39,879] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:40,612] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:35:40,612] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:41,332] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:35:41,333] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)
[2024-09-08 23:35:42,050] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:35:42,051] [INFO] - simulation - Mass conservation report: Deviation 1.50E-05% (sim_handler.py:61)

Tempo total de simulação:22.866801023483276 [s]
Status da simulação: finished
Exportando resultados...

Read simulation data#

[3]:
from modules.analysis.results_handler import ResultsHandler
import pathlib

for case in case_data.keys():
    cfg = case_data[case]["cfg"]
    output_path = pathlib.Path(f"./out/{cfg.sim_name}")
    results_handler = ResultsHandler(simulation_path=output_path)
    case_data[case]["results_handler"] = results_handler

Plot concentration

[9]:
import matplotlib.pyplot as plt

target_positions = [0.005, 0.02, 0.03, 0.04, 0.06, 0.08, 0.12]

fig, axs = plt.subplots(4, 1, figsize=(10, 14), layout="constrained")

for ax, case in zip(axs.flat, case_data.keys()):
    results_handler = case_data[case]["results_handler"]
    time, concentration_profiles = results_handler.filter_for_positions(
        variable_name="Concentration", position_values=target_positions
    )

    for position_lbl, concentration_arr in concentration_profiles.items():
        ax.plot(time / (3600 * 24), concentration_arr, label=position_lbl)

    ax.set_title(case_data[case]["title"])
    ax.set_xlabel("Tempo [Dias]")
    ax.set_xlim(0.400)
    ax.set_ylabel("Concentração")
    ax.set_ylim(0.135, 0.2)
    ax.grid()

    ax.legend()
plt.show()
../../_images/software_study_cases_temperatura_8_0.png
[16]:
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from matplotlib.colors import Normalize

target_timeframes = (
    case_data[[k for k in case_data.keys()][0]]["results_handler"]
    .cell_data["Time"]
    .unique()
)
target_timeframes = target_timeframes[:: len(target_timeframes) // 10]

fig, axs = plt.subplots(1, 3, figsize=(12, 3), layout="constrained")

num_colors = len(target_timeframes)
colormap = cm.get_cmap("viridis")
normalize = Normalize(vmin=0, vmax=num_colors - 1)
color_array = [colormap(normalize(i)) for i in range(num_colors)]
color_array = color_array[::-1]

for ax, case in zip(axs.flat, case_data.keys()):
    results_handler = case_data[case]["results_handler"]
    for i, t_time in enumerate(target_timeframes):
        df = results_handler.cell_data
        X = df["Concentration"].loc[df["Time"] == t_time]
        Y = df["Position"].loc[df["Time"] == t_time]
        ax.plot(X, Y, label=f"Dia {int(t_time / (24 * 60 * 60))}", color=color_array[i])

    ax.set_title(case_data[case]["title"])
    ax.set_xlabel("Concentração")
    ax.set_xlim(0, 0.2)
    ax.set_ylabel("Posição [m]")
    ax.set_ylim(0, 0.21)
    ax.grid()
    ax.legend(bbox_to_anchor=(1, 1))
plt.show()
C:\Users\Pablo\AppData\Local\Temp\ipykernel_21616\2944272813.py:16: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.
  colormap = cm.get_cmap("viridis")
../../_images/software_study_cases_temperatura_9_1.png
[5]:
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

target_positions = [0.005, 0.02, 0.03, 0.04, 0.06, 0.08, 0.12]

fig, axs = plt.subplots(
    1, 4, figsize=(16, 4), layout="constrained", subplot_kw={"projection": "3d"}
)

for ax, case in zip(axs.flat, case_data.keys()):
    results_handler = case_data[case]["results_handler"]
    X, Y = np.meshgrid(
        results_handler.cell_data["Position"].unique(),
        results_handler.cell_data["Time"].unique() / (3600 * 24),
    )
    Z = (
        results_handler.cell_data["Concentration"]
        .to_numpy()
        .reshape(
            (
                results_handler.cell_data["Time"].nunique(),
                results_handler.cell_data["Position"].nunique(),
            )
        )
    )
    ax.set_title(case_data[case]["title"])
    ax.set_box_aspect(None, zoom=0.8)
    ax.set_xlabel("Posição [m]")
    ax.set_ylabel("Dia")
    ax.set_zlabel("Concentração")
    surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm, linewidth=0, antialiased=False)
cbar_ax = fig.add_axes([0, 0, 1, 0.05])
fig.colorbar(
    surf,
    cax=cbar_ax,
    shrink=0.5,
    label="Concentração",
    orientation="horizontal",
)
plt.show()
../../_images/software_study_cases_temperatura_10_0.png

Plot temperature profiles

[6]:
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(3, 7))
for case in case_data.keys():
    results_handler = case_data[case]["results_handler"]

    ax.plot(
        results_handler.cell_data["Temperature"].loc[
            results_handler.cell_data["Time"] == 2800000
        ],
        results_handler.cell_data["Position"].loc[
            results_handler.cell_data["Time"] == 2800000
        ],
        label=case_data[case]["title"],
    )

    ax.legend(bbox_to_anchor=(1, 1.2))
    ax.set_ylim([0, 0.21])
    ax.set_xlim([0, 120])
    ax.set_xlabel("Temperatura °C")
    ax.set_ylabel("Posição [m]")
    ax.set_xticks([i * 20 for i in range(7)])
    ax.set_yticks(np.linspace(0, 0.21, 7))
plt.show()
../../_images/software_study_cases_temperatura_12_0.png

Plot permeability

[22]:
import matplotlib.pyplot as plt

target_positions = [0.005, 0.02, 0.03, 0.04, 0.06, 0.08, 0.12]

fig, axs = plt.subplots(
    min(3, len(case_data)),
    min(1, (len(case_data) - 1) // 3 + 1),
    figsize=(10, 14),
    layout="constrained",
)

for ax, case in zip(axs.flat, case_data.keys()):
    results_handler = case_data[case]["results_handler"]

    time, perm_profiles = results_handler.filter_for_positions(
        variable_name="Permeability", position_values=target_positions
    )

    for position_lbl, perm_arr in perm_profiles.items():
        ax.plot(time / (3600 * 24), perm_arr, label=position_lbl)

    ax.set_title(case_data[case]["title"])
    ax.set_xlabel("Tempo [Dias]")
    ax.set_xlim(0.400)
    ax.set_ylabel("Permeabilidade [m²]")
    ax.legend()
plt.show()
../../_images/software_study_cases_temperatura_14_0.png

Plot pressure gradient

[21]:
import matplotlib.pyplot as plt

fig, axs = plt.subplots(
    min(3, len(case_data)),
    min(1, (len(case_data) - 1) // 3 + 1),
    figsize=(10, 14),
    layout="constrained",
)

for ax, case in zip(axs.flat, case_data.keys()):
    results_handler = case_data[case]["results_handler"]

    time, pressure_grad_profiles = results_handler.filter_for_positions(
        variable_name="Pressure_Gradient", position_values=target_positions
    )

    for position_lbl, pressure_grad in pressure_grad_profiles.items():
        ax.plot(time / (3600 * 24), pressure_grad, label=position_lbl)

    ax.set_title(case_data[case]["title"])
    ax.set_xlabel("Tempo [Dias]")
    ax.set_xlim(0.400)
    ax.set_ylabel("Gradiente de Pressão [Pa]")
    ax.grid()

    ax.legend()
plt.show()
../../_images/software_study_cases_temperatura_16_0.png