diff --git a/doc/source/made_with_sionna.rst b/doc/source/made_with_sionna.rst index e3e8c926..32620f41 100644 --- a/doc/source/made_with_sionna.rst +++ b/doc/source/made_with_sionna.rst @@ -6,6 +6,14 @@ We love to see how Sionna is used by other researchers! For this reason, you fin If you want your paper/project and code be listed here, please send an email to `sionna@nvidia.com `_ with links to the paper (e.g., `arXiv `_) and code repository (e.g., `GitHub `_). +.. made-with-sionna:: + :title: Physically Consistent RIS: From Reradiation Mode Optimization to Practical Realization + :authors: Javad Shabanpour, Constantin Simovski, Giovanni Geraci + :year: 2024 + :version: 0.18 + :link_arxiv: https://arxiv.org/abs/2409.17738 + :abstract: We propose a practical framework for designing a physically consistent reconfigurable intelligent surface (RIS) to overcome the inefficiency of the conventional phase gradient approach. For a section of Cape Town and across three different coverage enhancement scenarios, we optimize the amplitude of the RIS reradiation modes using Sionna ray tracing and a gradient-based learning technique. We then determine the required RIS surface/sheet impedance given the desired amplitudes for the reradiation modes, design the corresponding unitcells, and validate the performance through full-wave numerical simulations using CST Microwave Studio. We further validate our approach by fabricating a RIS using the parallel plate waveguide technique and conducting experimental measurements that align with our theoretical predictions. + .. made-with-sionna:: :title: Design of a Standard-Compliant Real-Time Neural Receiver for 5G NR :authors: Reinhard Wiesmayr, Sebastian Cammerer, Fayçal Aït Aoudia, Jakob Hoydis, Jakub Zakrzewski, Alexander Keller diff --git a/examples/5G_Channel_Coding_Polar_vs_LDPC_Codes.ipynb b/examples/5G_Channel_Coding_Polar_vs_LDPC_Codes.ipynb index aac887da..c3c85eda 100644 --- a/examples/5G_Channel_Coding_Polar_vs_LDPC_Codes.ipynb +++ b/examples/5G_Channel_Coding_Polar_vs_LDPC_Codes.ipynb @@ -95,6 +95,18 @@ " os.system(\"pip install sionna\")\n", " import sionna\n", "\n", + "import tensorflow as tf\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e)\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42\n", "\n", diff --git a/examples/5G_NR_PUSCH.ipynb b/examples/5G_NR_PUSCH.ipynb index aafca2e6..d78f5ceb 100644 --- a/examples/5G_NR_PUSCH.ipynb +++ b/examples/5G_NR_PUSCH.ipynb @@ -81,6 +81,18 @@ " os.system(\"pip install sionna\")\n", " import sionna\n", "\n", + "import tensorflow as tf\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e)\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "sionna.config.seed = 42 # Set seed for reproducible results\n", "\n", "# Load the required Sionna components\n", diff --git a/examples/Autoencoder.ipynb b/examples/Autoencoder.ipynb index d9d2de78..f8bc18f5 100644 --- a/examples/Autoencoder.ipynb +++ b/examples/Autoencoder.ipynb @@ -109,6 +109,21 @@ " os.system(\"pip install sionna\")\n", " import sionna\n", "\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "import tensorflow as tf\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e)\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", + "from tensorflow.keras import Model\n", + "from tensorflow.keras.layers import Layer, Dense\n", + "\n", "from sionna.channel import AWGN\n", "from sionna.utils import BinarySource, ebnodb2no, log10, expand_to_rank, insert_dims\n", "from sionna.fec.ldpc.encoding import LDPC5GEncoder\n", diff --git a/examples/Bit_Interleaved_Coded_Modulation.ipynb b/examples/Bit_Interleaved_Coded_Modulation.ipynb index 397e1d85..5ba9c863 100644 --- a/examples/Bit_Interleaved_Coded_Modulation.ipynb +++ b/examples/Bit_Interleaved_Coded_Modulation.ipynb @@ -79,6 +79,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -95,15 +104,6 @@ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Load the required Sionna components\n", "from sionna.mapping import Constellation, Mapper, Demapper\n", "from sionna.fec.ldpc import LDPC5GEncoder, LDPC5GDecoder, LDPCBPDecoder\n", diff --git a/examples/CIR_Dataset.ipynb b/examples/CIR_Dataset.ipynb index 0a483542..b6a830ed 100644 --- a/examples/CIR_Dataset.ipynb +++ b/examples/CIR_Dataset.ipynb @@ -49,6 +49,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -61,16 +70,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "import numpy as np\n", "import h5py\n", "\n", diff --git a/examples/DeepMIMO.ipynb b/examples/DeepMIMO.ipynb index 2b29b50c..e49b4309 100644 --- a/examples/DeepMIMO.ipynb +++ b/examples/DeepMIMO.ipynb @@ -49,6 +49,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -61,15 +70,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "sionna.config.seed = 42 # Set seed for reproducible random number generation" ] }, diff --git a/examples/Evolution_of_FEC.ipynb b/examples/Evolution_of_FEC.ipynb index ae268351..83855a99 100644 --- a/examples/Evolution_of_FEC.ipynb +++ b/examples/Evolution_of_FEC.ipynb @@ -72,6 +72,19 @@ " os.system(\"pip install sionna\")\n", " import sionna\n", "\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "import tensorflow as tf\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e)\n", + "\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "sionna.config.seed = 42 # Set seed for reproducible random number generation\n", "\n", "# Load the required Sionna components\n", diff --git a/examples/Introduction_to_Iterative_Detection_and_Decoding.ipynb b/examples/Introduction_to_Iterative_Detection_and_Decoding.ipynb index 8685472e..9a237de7 100644 --- a/examples/Introduction_to_Iterative_Detection_and_Decoding.ipynb +++ b/examples/Introduction_to_Iterative_Detection_and_Decoding.ipynb @@ -116,6 +116,17 @@ " os.system(\"pip install sionna\")\n", " import sionna\n", "\n", + "import tensorflow as tf\n", + "from tensorflow.keras import Model\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e)\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", diff --git a/examples/MIMO_OFDM_Transmissions_over_CDL.ipynb b/examples/MIMO_OFDM_Transmissions_over_CDL.ipynb index aebc5608..41b427a3 100644 --- a/examples/MIMO_OFDM_Transmissions_over_CDL.ipynb +++ b/examples/MIMO_OFDM_Transmissions_over_CDL.ipynb @@ -116,15 +116,6 @@ " print(e)\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42" ] diff --git a/examples/Neural_Receiver.ipynb b/examples/Neural_Receiver.ipynb index 1289d868..e668e9c2 100644 --- a/examples/Neural_Receiver.ipynb +++ b/examples/Neural_Receiver.ipynb @@ -88,6 +88,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -100,15 +109,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "sionna.config.seed = 42 # Set seed for reproducible random number generation" ] }, diff --git a/examples/OFDM_MIMO_Detection.ipynb b/examples/OFDM_MIMO_Detection.ipynb index b17379f9..7531ca33 100644 --- a/examples/OFDM_MIMO_Detection.ipynb +++ b/examples/OFDM_MIMO_Detection.ipynb @@ -121,6 +121,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -133,15 +142,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "sionna.config.seed = 42 # Set seed for reproducible random number generation" ] }, diff --git a/examples/Optical_Lumped_Amplification_Channel.ipynb b/examples/Optical_Lumped_Amplification_Channel.ipynb index 0e319ce1..86672ff8 100644 --- a/examples/Optical_Lumped_Amplification_Channel.ipynb +++ b/examples/Optical_Lumped_Amplification_Channel.ipynb @@ -91,6 +91,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "import tensorflow as tf\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", @@ -103,15 +112,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42\n", "from sionna.channel import utils\n", @@ -1360,7 +1360,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "vscode": { "interpreter": { diff --git a/examples/Pulse_shaping_basics.ipynb b/examples/Pulse_shaping_basics.ipynb index 1c2e318a..a27ad3eb 100644 --- a/examples/Pulse_shaping_basics.ipynb +++ b/examples/Pulse_shaping_basics.ipynb @@ -79,6 +79,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -91,15 +100,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42" ] @@ -735,7 +735,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/examples/Realistic_Multiuser_MIMO_Simulations.ipynb b/examples/Realistic_Multiuser_MIMO_Simulations.ipynb index 06f1937a..1e436b2f 100644 --- a/examples/Realistic_Multiuser_MIMO_Simulations.ipynb +++ b/examples/Realistic_Multiuser_MIMO_Simulations.ipynb @@ -99,6 +99,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -111,15 +120,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42" ] @@ -1048,7 +1048,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Simple_MIMO_Simulation.ipynb b/examples/Simple_MIMO_Simulation.ipynb index 481d48d6..e27f5871 100644 --- a/examples/Simple_MIMO_Simulation.ipynb +++ b/examples/Simple_MIMO_Simulation.ipynb @@ -80,6 +80,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -92,15 +101,6 @@ "# Avoid warnings from TensorFlow\n", "tf.get_logger().setLevel('ERROR')\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducability\n", "sionna.config.seed = 42" ] @@ -932,7 +932,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/examples/Sionna_Ray_Tracing_Coverage_Map.ipynb b/examples/Sionna_Ray_Tracing_Coverage_Map.ipynb index 7b62f410..50669ed5 100644 --- a/examples/Sionna_Ray_Tracing_Coverage_Map.ipynb +++ b/examples/Sionna_Ray_Tracing_Coverage_Map.ipynb @@ -59,6 +59,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -96,15 +105,6 @@ " return\n", " get_ipython().run_cell(cell)\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42\n", "\n", @@ -1236,7 +1236,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Sionna_Ray_Tracing_Diffraction.ipynb b/examples/Sionna_Ray_Tracing_Diffraction.ipynb index cd351111..9e582fd5 100644 --- a/examples/Sionna_Ray_Tracing_Diffraction.ipynb +++ b/examples/Sionna_Ray_Tracing_Diffraction.ipynb @@ -139,6 +139,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -176,15 +185,6 @@ " return\n", " get_ipython().run_cell(cell)\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42\n", "\n", @@ -1227,7 +1227,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Sionna_Ray_Tracing_Introduction.ipynb b/examples/Sionna_Ray_Tracing_Introduction.ipynb index e43c75b1..57d2b6d7 100644 --- a/examples/Sionna_Ray_Tracing_Introduction.ipynb +++ b/examples/Sionna_Ray_Tracing_Introduction.ipynb @@ -85,6 +85,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -122,15 +131,6 @@ " return\n", " get_ipython().run_cell(cell)\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42" ] @@ -2329,7 +2329,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/examples/Sionna_Ray_Tracing_Mobility.ipynb b/examples/Sionna_Ray_Tracing_Mobility.ipynb index e8588ec2..42ae4afb 100644 --- a/examples/Sionna_Ray_Tracing_Mobility.ipynb +++ b/examples/Sionna_Ray_Tracing_Mobility.ipynb @@ -104,6 +104,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -141,15 +150,6 @@ " return\n", " get_ipython().run_cell(cell)\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42" ] @@ -1076,7 +1076,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/examples/Sionna_Ray_Tracing_RIS.ipynb b/examples/Sionna_Ray_Tracing_RIS.ipynb index 0d06ea51..58edee53 100644 --- a/examples/Sionna_Ray_Tracing_RIS.ipynb +++ b/examples/Sionna_Ray_Tracing_RIS.ipynb @@ -82,6 +82,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -119,15 +128,6 @@ " return\n", " get_ipython().run_cell(cell)\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 40" ] @@ -1417,7 +1417,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/examples/Sionna_Ray_Tracing_Scattering.ipynb b/examples/Sionna_Ray_Tracing_Scattering.ipynb index 53f3ac4a..30a63689 100644 --- a/examples/Sionna_Ray_Tracing_Scattering.ipynb +++ b/examples/Sionna_Ray_Tracing_Scattering.ipynb @@ -69,6 +69,15 @@ " os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n", "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n", "\n", + "# Import Sionna\n", + "try:\n", + " import sionna\n", + "except ImportError as e:\n", + " # Install Sionna if package is not already installed\n", + " import os\n", + " os.system(\"pip install sionna\")\n", + " import sionna\n", + "\n", "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", "# For more details, see https://www.tensorflow.org/guide/gpu\n", "import tensorflow as tf\n", @@ -106,15 +115,6 @@ " return\n", " get_ipython().run_cell(cell)\n", "\n", - "# Import Sionna\n", - "try:\n", - " import sionna\n", - "except ImportError as e:\n", - " # Install Sionna if package is not already installed\n", - " import os\n", - " os.system(\"pip install sionna\")\n", - " import sionna\n", - "\n", "# Set random seed for reproducibility\n", "sionna.config.seed = 42\n", "\n", @@ -1109,7 +1109,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" } }, "nbformat": 4, diff --git a/examples/Sionna_tutorial_part1.ipynb b/examples/Sionna_tutorial_part1.ipynb index a4ddea45..bad147d9 100644 --- a/examples/Sionna_tutorial_part1.ipynb +++ b/examples/Sionna_tutorial_part1.ipynb @@ -94,6 +94,19 @@ " os.system(\"pip install sionna\")\n", " import sionna as sn\n", "\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "import tensorflow as tf\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e) \n", + "\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "import numpy as np\n", "\n", "# For plotting\n", @@ -1423,7 +1436,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Sionna_tutorial_part2.ipynb b/examples/Sionna_tutorial_part2.ipynb index cca9c2e6..73c69c0f 100644 --- a/examples/Sionna_tutorial_part2.ipynb +++ b/examples/Sionna_tutorial_part2.ipynb @@ -90,6 +90,19 @@ " os.system(\"pip install sionna\")\n", " import sionna as sn\n", "\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "import tensorflow as tf\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e) \n", + "\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "import numpy as np\n", "\n", "# For plotting\n", @@ -839,7 +852,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Sionna_tutorial_part3.ipynb b/examples/Sionna_tutorial_part3.ipynb index 9170a0a8..dda99f74 100644 --- a/examples/Sionna_tutorial_part3.ipynb +++ b/examples/Sionna_tutorial_part3.ipynb @@ -91,6 +91,19 @@ " os.system(\"pip install sionna\")\n", " import sionna as sn\n", "\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "import tensorflow as tf\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e) \n", + "\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "import numpy as np\n", "\n", "# For plotting\n", @@ -903,7 +916,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Sionna_tutorial_part4.ipynb b/examples/Sionna_tutorial_part4.ipynb index a3126788..3945d165 100644 --- a/examples/Sionna_tutorial_part4.ipynb +++ b/examples/Sionna_tutorial_part4.ipynb @@ -99,6 +99,19 @@ " os.system(\"pip install sionna\")\n", " import sionna as sn\n", "\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "import tensorflow as tf\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e) \n", + "\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "import numpy as np\n", "\n", "# For saving complex Python data structures efficiently\n", @@ -914,7 +927,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { diff --git a/examples/Weighted_BP_Algorithm.ipynb b/examples/Weighted_BP_Algorithm.ipynb index 09488af8..19ac573e 100644 --- a/examples/Weighted_BP_Algorithm.ipynb +++ b/examples/Weighted_BP_Algorithm.ipynb @@ -98,6 +98,18 @@ " os.system(\"pip install sionna\")\n", " import sionna\n", "\n", + "import tensorflow as tf\n", + "# Configure the notebook to use only a single GPU and allocate only as much memory as needed\n", + "# For more details, see https://www.tensorflow.org/guide/gpu\n", + "gpus = tf.config.list_physical_devices('GPU')\n", + "if gpus:\n", + " try:\n", + " tf.config.experimental.set_memory_growth(gpus[0], True)\n", + " except RuntimeError as e:\n", + " print(e)\n", + "# Avoid warnings from TensorFlow\n", + "tf.get_logger().setLevel('ERROR')\n", + "\n", "# Import required Sionna components\n", "from sionna.fec.ldpc import LDPCBPDecoder, LDPC5GEncoder, LDPC5GDecoder\n", "from sionna.utils.metrics import BitwiseMutualInformation\n", @@ -1089,7 +1101,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": {