Variação de seção do poço#

Arquivo de configuração

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

case_data = {
    "poco_reto": {"title": "Poço reto"},
    "2_fases": {"title": "2 fases"},
    "4_fases": {"title": "4 fases"},
}

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]:
{'poco_reto': {'title': 'Poço reto',
  'cfg': SimulationConfigModel(sim_name='poco_reto', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=AnnularDomainModel(internal_radius=0.01, steps=[StepModel(position_z=0.05, radius=0.02)])), 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=None, equation_parameters=EquationParameters(delta=0.622641, k0=47.601104, beta=0.04983, ref_conc=0.14, p_ref=63.640954))},
 '2_fases': {'title': '2 fases',
  'cfg': SimulationConfigModel(sim_name='2_fases', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=AnnularDomainModel(internal_radius=0.01, steps=[StepModel(position_z=0.105, radius=0.02), StepModel(position_z=0.2, radius=0.03)])), 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=None, equation_parameters=EquationParameters(delta=0.622641, k0=47.601104, beta=0.04983, ref_conc=0.14, p_ref=63.640954))},
 '4_fases': {'title': '4 fases',
  'cfg': SimulationConfigModel(sim_name='4_fases', domain=DomainModel(height=0.21, spatial_divisions=220, annular_domain=AnnularDomainModel(internal_radius=0.01, steps=[StepModel(position_z=0.0525, radius=0.02), StepModel(position_z=0.105, radius=0.03), StepModel(position_z=0.1575, radius=0.04), StepModel(position_z=0.2, radius=0.05)])), 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=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:55:05,005] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:55:05,006] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:55:05,752] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:55:05,753] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:06,499] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:55:06,500] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:07,296] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:55:07,297] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:08,089] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:55:08,090] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:08,871] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:55:08,872] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:09,578] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:55:09,579] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:10,327] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:55:10,327] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:11,044] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:55:11,045] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:11,747] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:55:11,748] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:12,485] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:55:12,487] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:13,215] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:55:13,216] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:13,930] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:55:13,931] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:14,651] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:55:14,651] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:15,368] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:55:15,369] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:16,157] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:55:16,158] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:16,886] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:55:16,887] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:17,589] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:55:17,590] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:18,313] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:55:18,314] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:19,058] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:55:19,058] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:19,789] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:55:19,790] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:20,499] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:55:20,500] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:21,203] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:55:21,203] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:21,909] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:55:21,909] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:22,598] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:55:22,599] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:23,289] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:55:23,289] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:23,981] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:55:23,982] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:24,694] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:55:24,695] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:25,376] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:55:25,377] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:26,089] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:55:26,090] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:26,804] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:55:26,805] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:27,496] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:55:27,497] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)

Tempo total de simulação:22.904600143432617 [s]
Status da simulação: finished
Exportando resultados...
[2024-09-08 23:55:31,477] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:55:31,478] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:55:32,218] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:55:32,219] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:32,979] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:55:32,980] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:33,722] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:55:33,724] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:34,440] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:55:34,441] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:35,166] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:55:35,167] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:35,926] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:55:35,927] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:36,657] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:55:36,658] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:37,438] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:55:37,438] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:38,161] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:55:38,161] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:38,911] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:55:38,911] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:39,654] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:55:39,655] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:40,366] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:55:40,366] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:41,078] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:55:41,079] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:41,776] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:55:41,777] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:42,470] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:55:42,471] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:43,169] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:55:43,170] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:43,874] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:55:43,875] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:44,632] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:55:44,633] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:45,399] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:55:45,400] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:46,131] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:55:46,131] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:46,911] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:55:46,912] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:47,598] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:55:47,599] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:48,292] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:55:48,293] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:48,991] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:55:48,992] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:49,688] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:55:49,688] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:50,381] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:55:50,382] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:51,068] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:55:51,069] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:51,761] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:55:51,762] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:52,454] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:55:52,455] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:53,144] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:55:53,145] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)
[2024-09-08 23:55:53,909] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:55:53,910] [INFO] - simulation - Mass conservation report: Deviation 3.48E-06% (sim_handler.py:61)

Tempo total de simulação:22.8246111869812 [s]
Status da simulação: finished
Exportando resultados...
[2024-09-08 23:55:57,904] [INFO] - simulation - Starting simulation... (sim_handler.py:87)
[2024-09-08 23:55:57,905] [INFO] - simulation - Current time 0 (sim_handler.py:88)
[2024-09-08 23:55:58,621] [INFO] - simulation - Simulation report: Current time 1000000.0 (sim_handler.py:73)
[2024-09-08 23:55:58,622] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:55:59,336] [INFO] - simulation - Simulation report: Current time 2000000.0 (sim_handler.py:73)
[2024-09-08 23:55:59,337] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:00,034] [INFO] - simulation - Simulation report: Current time 3000000.0 (sim_handler.py:73)
[2024-09-08 23:56:00,035] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:00,745] [INFO] - simulation - Simulation report: Current time 4000000.0 (sim_handler.py:73)
[2024-09-08 23:56:00,745] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:01,448] [INFO] - simulation - Simulation report: Current time 5000000.0 (sim_handler.py:73)
[2024-09-08 23:56:01,449] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:02,157] [INFO] - simulation - Simulation report: Current time 6000000.0 (sim_handler.py:73)
[2024-09-08 23:56:02,158] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:02,849] [INFO] - simulation - Simulation report: Current time 7000000.0 (sim_handler.py:73)
[2024-09-08 23:56:02,850] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:03,580] [INFO] - simulation - Simulation report: Current time 8000000.0 (sim_handler.py:73)
[2024-09-08 23:56:03,581] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:04,267] [INFO] - simulation - Simulation report: Current time 9000000.0 (sim_handler.py:73)
[2024-09-08 23:56:04,268] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:04,973] [INFO] - simulation - Simulation report: Current time 10000000.0 (sim_handler.py:73)
[2024-09-08 23:56:04,974] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:05,671] [INFO] - simulation - Simulation report: Current time 11000000.0 (sim_handler.py:73)
[2024-09-08 23:56:05,671] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:06,418] [INFO] - simulation - Simulation report: Current time 12000000.0 (sim_handler.py:73)
[2024-09-08 23:56:06,419] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:07,123] [INFO] - simulation - Simulation report: Current time 13000000.0 (sim_handler.py:73)
[2024-09-08 23:56:07,123] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:07,843] [INFO] - simulation - Simulation report: Current time 14000000.0 (sim_handler.py:73)
[2024-09-08 23:56:07,844] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:08,594] [INFO] - simulation - Simulation report: Current time 15000000.0 (sim_handler.py:73)
[2024-09-08 23:56:08,595] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:09,319] [INFO] - simulation - Simulation report: Current time 16000000.0 (sim_handler.py:73)
[2024-09-08 23:56:09,319] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:10,025] [INFO] - simulation - Simulation report: Current time 17000000.0 (sim_handler.py:73)
[2024-09-08 23:56:10,026] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:10,754] [INFO] - simulation - Simulation report: Current time 18000000.0 (sim_handler.py:73)
[2024-09-08 23:56:10,755] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:11,515] [INFO] - simulation - Simulation report: Current time 19000000.0 (sim_handler.py:73)
[2024-09-08 23:56:11,516] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:12,239] [INFO] - simulation - Simulation report: Current time 20000000.0 (sim_handler.py:73)
[2024-09-08 23:56:12,240] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:13,002] [INFO] - simulation - Simulation report: Current time 21000000.0 (sim_handler.py:73)
[2024-09-08 23:56:13,003] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:13,737] [INFO] - simulation - Simulation report: Current time 22000000.0 (sim_handler.py:73)
[2024-09-08 23:56:13,738] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:14,461] [INFO] - simulation - Simulation report: Current time 23000000.0 (sim_handler.py:73)
[2024-09-08 23:56:14,461] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:15,201] [INFO] - simulation - Simulation report: Current time 24000000.0 (sim_handler.py:73)
[2024-09-08 23:56:15,201] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:15,906] [INFO] - simulation - Simulation report: Current time 25000000.0 (sim_handler.py:73)
[2024-09-08 23:56:15,907] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:16,602] [INFO] - simulation - Simulation report: Current time 26000000.0 (sim_handler.py:73)
[2024-09-08 23:56:16,603] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:17,299] [INFO] - simulation - Simulation report: Current time 27000000.0 (sim_handler.py:73)
[2024-09-08 23:56:17,300] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:18,031] [INFO] - simulation - Simulation report: Current time 28000000.0 (sim_handler.py:73)
[2024-09-08 23:56:18,032] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:18,739] [INFO] - simulation - Simulation report: Current time 29000000.0 (sim_handler.py:73)
[2024-09-08 23:56:18,740] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:19,449] [INFO] - simulation - Simulation report: Current time 30000000.0 (sim_handler.py:73)
[2024-09-08 23:56:19,450] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)
[2024-09-08 23:56:20,179] [INFO] - simulation - Simulation report: Current time 31000000.0 (sim_handler.py:73)
[2024-09-08 23:56:20,180] [INFO] - simulation - Mass conservation report: Deviation 2.83E-06% (sim_handler.py:61)

Tempo total de simulação:22.6645610332489 [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

[4]:
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, 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_secao_8_0.png
[8]:
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from matplotlib.colors import Normalize

N_DIVS = 10

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) // N_DIVS]

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

num_colors = len(target_timeframes)
# colormap = cm.get_cmap("summer")
colormap = cm.get_cmap("viridis")
# colormap = cm.get_cmap("cool")
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_20824\2013268098.py:19: 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_secao_9_1.png
[11]:
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

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) // 9]

# fig, axs = plt.subplots(3, 3, figsize=(12, 8), constrained_layout=True)
fig, axs = plt.subplots(3, 3, figsize=(12, 8), constrained_layout=True)

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

        # for position_lbl, concentration_arr in concentration_profiles.items():
        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=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.set_title(f"Dia {int(t_time / (24 * 60 * 60))}")

        ax.legend(bbox_to_anchor=(1, 1))
plt.show()
../../_images/software_study_cases_secao_10_0.png
[53]:
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(
    min(1, (len(case_data) - 1) // 3 + 1),
    min(3, len(case_data)),
    figsize=(12, 4),
    layout="tight",
    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_xlabel("Posição [m]")
    ax.set_ylabel("Dia")
    ax.set_zlabel("Concentração")
    ax.set_box_aspect(None, zoom=0.8)

    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_secao_11_0.png

Plot permeability

[54]:
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_secao_13_0.png

Plot pressure gradient

[55]:
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_secao_15_0.png