{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quick start guide to model building and running with SPyice" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Demonstrates a simple example for a freezing sea ice model for a simple heat diffusion setup with default settings of initial conditions of 265K at the top boundary and Salinity of 34ppt choosing constant fixed Dirichlet boundary conditions. For the one phase distinct interface system where sea water is at melt temperature of 271.25K. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Import Packages" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-09T13:43:47.963303300Z", "start_time": "2026-03-09T13:43:46.675432700Z" } }, "source": [ "import os\n", "from pathlib import Path\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "from omegaconf import OmegaConf\n", "\n", "from spyice.utils import create_output_directory\n", "from spyice.postprocess import Analysis, VisualiseModel\n", "from spyice.utils import ConfigSort\n", "from spyice.models import SeaIceModel\n", "from spyice.preprocess import PreProcess" ], "outputs": [], "execution_count": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define Inputs and Project Output paths" ] }, { "cell_type": "code", "metadata": { "ExecuteTime": { "end_time": "2026-03-09T13:44:11.699164500Z", "start_time": "2026-03-09T13:44:11.658403900Z" } }, "source": [ "# creates a OmegaConf object from a dictionary for fast testing only for parameters: constants, dt, S_IC, iter_max, dz\n", "constants_dict = {\n", " \"constants\": {\"constants\": \"real\"},\n", " \"dt\": {\"dt\": 47},\n", " \"S_IC\": {\"S_IC\": \"S34\"},\n", " \"iter_max\": {\"iter_max\": 1500},\n", " \"dz\": {\"dz\": 0.01},\n", "}\n", "config_raw = OmegaConf.create(constants_dict)\n", "config = ConfigSort.getconfig_dataclass(config_raw, config_type=\"jupyter\")\n", "\n", "# choose your output directory\n", "base_dir = Path.cwd()\n", "output_base_dir = Path(base_dir, \"output\")\n", "wo_hydra_dir = Path(output_base_dir, \"without_hydra\")\n", "out_dir_final = create_output_directory(wo_hydra_dir, config.initial_salinity.S_IC, \"2\", \"0.01\", \"47\", \"1500\", \"example\")" ], "outputs": [], "execution_count": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Preprocessing " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Preprocessing...\n", "User Configuration Data Setup Complete...\n", "Geometry Data Setup Complete...\n", "Results Data Setup Complete...\n", "Time step set to: 47s\n", "Applied Initial & Boundary Conditions...\n", "Preprocessing done.\n" ] } ], "source": [ "# preprocess the data\n", "preprocess_data, userinput_data = PreProcess.get_variables(config_raw, out_dir_final)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run model" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running model...\n", "Model run complete and Ready for Analysis.\n", "Running error analysis...\n", "Calculating errors...\n", "Residuals exported successfully.\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# run the model\n", "results_data = SeaIceModel.get_results(preprocess_data, userinput_data)\n", "analysis_data = Analysis.get_error_results(\n", " t_k_diff=results_data.t_k_diff,\n", " t_stefan_diff=results_data.t_stefan_diff,\n", " residual=results_data.residual_voller_all,\n", " temperature_mushy=results_data.t_k_iter_all,\n", " phi_mushy=results_data.all_phi_iter_all,\n", " salinity_mushy=results_data.s_k_iter_all,\n", " output_dir=out_dir_final,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualization of Model:\n", "for more info on other visualization options look at: [visualize model](http://[::1]:8000/api/spyice.postprocess.visualise_model.html)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Visualisation object created...\n" ] } ], "source": [ "model_visualization_object = VisualiseModel(\n", " user_input_dataclass=userinput_data,\n", " results_dataclass=results_data,\n", " error_analysis_dataclass=analysis_data,\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plotting Temperature heatmap...\n" ] } ], "source": [ "%matplotlib inline\n", "model_visualization_object.plot_temperature_heatmap(savefig=True, export_csv=False)" ] } ], "metadata": { "kernelspec": { "display_name": "spyice (3.12.10)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.10" } }, "nbformat": 4, "nbformat_minor": 2 }