<?xml version="1.0" encoding="UTF-8" ?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-10-14T15:47:24Z</responseDate><request identifier="10.35097/1275" metadataPrefix="oai_dc" verb="GetRecord">https://www.radar-service.eu/oai/OAIHandler</request><GetRecord><record><header><identifier>10.35097/1275</identifier><datestamp>2026-10-09T10:59:20Z</datestamp><setSpec>radar4kit</setSpec></header><metadata><oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
           xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ https://www.openarchives.org/OAI/2.0/oai_dc.xsd">
   <dc:identifier>https://dx.doi.org/10.35097/1275</dc:identifier>
   <dc:creator>Freese, Jan Philip</dc:creator>
   <dc:title>Numerical experiments to "Numerical homogenization of time-dependent Maxwell's equations with dispersion effects"</dc:title>
   <dc:publisher>Karlsruhe Institute of Technology</dc:publisher>
   <dc:date>2023</dc:date>
   <dc:subject>Mathematics</dc:subject>
   <dc:type>dataset</dc:type>
   <dc:subject>Dataset</dc:subject>
   <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
   <dc:rights>https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode</dc:rights>
   <dc:description>This code has been used for the numerical experiments in the thesis "Numerical homogenization of time-dependent Maxwell's equations with dispersion effects" by Jan Philip Freese, see https://www.doi.org/10.5445/IR/1000129214.</dc:description>
   <dc:description># Readme&#xD;
This code was used for the numerical experiments of the PhD thesis "Numerical homogenization of time-dependent Maxwell's equations with dispersion effects" by P. Freese (cf. Section 7.2, Section 7.3) https://www.doi.org/10.5445/IR/1000129214. &#xD;
The computations are done in C++ using the Finite Element library deal.II.&#xD;
&#xD;
## Requirements&#xD;
- In order to run the code you need **deal.II** (release 9.1.1), cf. https://www.dealii.org/9.1.1&#xD;
- For the experiments on the macroscopic level (Section 7.3) you need to compile deal.II using **Trilinos** (version 12.17) and **p4est** (version 2.2), cf. https://www.dealii.org/9.1.1/external-libs/trilinos.html and https://www.dealii.org/9.1.1/external-libs/p4est.html&#xD;
- To get the full functionality of the scripts a **Bash** shell has to be used and at least **cmake** (version 3.13.0) is needed&#xD;
- For the visualization of the data you need **Matlab** (version R2020a Update 2) and **Paraview** (version 5.8.1-RC1)&#xD;
&#xD;
## Structure&#xD;
The structure is as follows: &#xD;
&#xD;
- The folder **executables** contains Bash scripts for all figures and tables separately. All figures from Section 7.2 may be computed using the `compute_all_micro_figures_and_tables.sh` at ones. Similarly, the figures from Section 7.3 are computed using the `compute_all_macro_figures_and_tables.sh` script. Moreover, the `distclean.sh` script runs the `deal.II` distclean command in all programs.&#xD;
- The folder **matlab_plot_files** contains Matlab scripts for the convergence plots and related tables&#xD;
- The folder **paraview_plot_files** contains Paraview states to generate the solution plots&#xD;
- In **programs** the actual source code is stored within three different programs that are&#xD;
    - **hmm_for_Maxwell_conductivity_memory_variable:** Code that applies the Heterogeneous Multiscale Method combined with the memory variable technique as explained in Section 6.2.3&#xD;
    - **hmm_for_Maxwell_conductivity_recursive_convolution:** Code that applies the Heterogeneous Multiscale Method combined with the recursive convolution technique as explained in Section 6.2.2&#xD;
    - **microproblem_conductivity:** Code that solves the microscopic cell problems&#xD;
- In **results** the results of the computations are stored according to the sub structure of the **programs** folder&#xD;
&#xD;
&#xD;
## Howto&#xD;
In order to run the program, open a terminal session in the folder **executables** and run one of the Bash scripts providing at least the additional argument:&#xD;
&#xD;
-  **Number of kernels (-n)**: One should usually use one job for each processor core on the machine&#xD;
&#xD;
Use a command like&#xD;
&#xD;
```bash&#xD;
    bash figure*.sh -n number_of_kernels&#xD;
```&#xD;
It may be mandatory to provide the location of your deal.II installation as well. This is done by providing another argument:&#xD;
&#xD;
-  **Path to deal (-D)**: Path to the deal.II installation&#xD;
&#xD;
Use a command like&#xD;
&#xD;
```bash&#xD;
    bash figure*.sh -n number_of_kernels -D path_to_deal&#xD;
```&#xD;
&#xD;
If you can not execute the Bash scripts, you have to build the program and copy/edit the config/source files yourself.  Still, the necessary information is found in the bash scripts, so just use a text editor to open those files and execute the steps by hand.&#xD;
&#xD;
### Example&#xD;
If you unpack this code within the **examples** folder of **deal.II** you can simply use the following example code to run the Bash script (generating data for Figure 7.2 and Table 7.1 with 4 kernels)&#xD;
&#xD;
```bash&#xD;
    bash figure_7_2_table_7_1.sh -n 4 -D ../../../../&#xD;
``` &#xD;
## Visualization&#xD;
&#xD;
### Matlab&#xD;
The Matlab scripts are used to generate the plots and tables. The tables are directly prompted to the Matlab output.&#xD;
&#xD;
### Paraview&#xD;
To load the state files in Paraview, select `File-&gt;Load State...`. Select the respective `.pvsm` file of the figure you want to plot. As `Load State Data File Options` choose `Search files under specified directory` and select the `results` folder. Paraview should find the files itself.&#xD;
&#xD;
## Remarks&#xD;
- The scripts `figure_7_19_table_7_9.sh` and `figure_7_21_table_7_10.sh` save reference solutions that are used to compute the errors between different levels of refinement. These solutions are stored in `programs/hmm_for_Maxwell_conductivity_recursive_convolution/data/`. If you want to run these scripts a second time you either have to delete the solutions (and compute the solutions again) or you have to set the `Output.Reference_Solution` flag in the respective config file in `programs/hmm_for_Maxwell_conductivity_recursive_convolution/config_files/` to false (which makes the computation even faster).&#xD;
- Be aware that, depending on your computer, the computations may take several hours or days.</dc:description>
   <dc:subject>Maxwell equations</dc:subject>
   <dc:subject>Sobolev equation</dc:subject>
   <dc:subject>time-integration</dc:subject>
   <dc:subject>homogenization</dc:subject>
   <dc:subject>heterogeneous multiscale method</dc:subject>
   <dc:subject>recursive convolution</dc:subject>
   <dc:subject>memory variable</dc:subject>
   <dc:identifier>10.5445/IR/1000129217</dc:identifier>
   <dc:identifier>KITopen-DOI</dc:identifier>
   <dc:format>application/x-tar</dc:format>
</oai_dc:dc></metadata></record></GetRecord></OAI-PMH>