Skip to content

Commit

Permalink
some structure
Browse files Browse the repository at this point in the history
  • Loading branch information
markuswess committed Jun 19, 2024
1 parent eae3053 commit 23e0877
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 75 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
DEPENDS= intro.md _config.yml _toc.yml
DEPENDS= intro.md _config.yml _toc.yml logo.png
.PHONY: clean

_build: $(DEPENDS)
Expand Down
1 change: 1 addition & 0 deletions _toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ options:
maxdepth: 2
chapters:
- file: installation
- file: examples
10 changes: 10 additions & 0 deletions examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
(examples)=
# Examples

```{contents}
:local:
```


```{tableofcontents}
```
10 changes: 10 additions & 0 deletions installation.md
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
# Installation

The implementation is based on the high-order finite element library [NGSolve](https://ngsolve.org) which can be installed using

```
python -m pip install numpy scipy matplotlib jupyter ipyparallel scikit-build
python -m pip install --upgrade ngsolve webgui_jupyter_widgets
```
For troubleshooting and more details on the installation we refer to the various `NGSolve` installation tutorials [NGS24](https://docu.ngsolve.org/ngs24/intro.html) or the [NGSolve Documentation](https://docu.ngsolve.org/latest/).

To run the `*.ipynb` examples you additionally need an installation of [jupyter](https://jupyter.org/install)
12 changes: 4 additions & 8 deletions intro.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
# The Dual Cell Method in NGSolve
# Time Domain Methods for Eigenvalue Problems

by *M. Wess*, *J. Schöberl*
by *M. Wess*, *L. Nannen*

TU Wien, Institute of Analysis and Scientific Computing,

*based on joint work with B. Kapidani and L. Codecasa*


---


This book is designed to provide an introduction and examples to the implementation of the Dual Cell Method in the high-order finite element library [NGSolve](https://ngsolve.org).

This book is designed to provide an introduction and examples to the implementation of time domain methods for eigenvalue problems in the high-order finite element library [NGSolve](https://ngsolve.org).

The *Dual Cell Method* (DCM) is a Galerkin Method for the simulation of time-domain waves (e.g., electromagnetic or acoustiv waves) in mixed formulation. It is a Disconitinuous Galerkin variant where the two wave-fields are approximated by conforming functions on meshes dual to each other. Thus the respective ansatz functions feature discontinuities on different element boundaries.

For a full mathematical introduction to the method we refer to {cite}`WKCS2023,KCS2021`.
For a full mathematical introduction to the method we refer to {cite}`NW24`.

---

Expand Down
Binary file added logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 25 additions & 0 deletions logo.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
\documentclass[border=1mm]{standalone}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{tikz}

%%%%%emph colors
\definecolor{emph1}{RGB}{0,102,153}
\definecolor{emph2}{RGB}{200,90,20}
\definecolor{emph3}{RGB}{100,30,153}
\definecolor{emph4}{RGB}{0,100,0}
\definecolor{emph5}{RGB}{0,100,200}
\definecolor{emph6}{RGB}{100,0,0}

\begin{document}
\begin{tikzpicture}
\node[black, opacity=0.2] at (3.7,-3.2){\resizebox{!}{100pt}{$\partial_t$}};
\node[emph1, opacity=0.8] at (3.5,-3){\resizebox{!}{100pt}{$\partial_t$}};
\node[black, opacity=0.2] at (0.2,-0.2){\resizebox{!}{100pt}{$-i\omega$}};
\node[emph2, opacity=0.8] at (0,0){\resizebox{!}{100pt}{$-i\omega$}};
\end{tikzpicture}
\end{document}
67 changes: 1 addition & 66 deletions references.bib
Original file line number Diff line number Diff line change
@@ -1,73 +1,8 @@
@article{WKCS2023,
title = {Mass lumping the dual cell method to arbitrary polynomial degree for acoustic and electromagnetic waves},
journal = {Journal of Computational Physics},
pages = {113196},
year = {2024},
issn = {0021-9991},
doi = {https://doi.org/10.1016/j.jcp.2024.113196},
urlremoved = {https://www.sciencedirect.com/science/article/pii/S0021999124004455},
author = {Markus Wess and Bernard Kapidani and Lorenzo Codecasa and Joachim Schöberl},
keywords = {Time-Domain Maxwell Equations, Cell Method, Discontinuous Galerkin, Dual Grids, Mass Lumping, High-Order Finite Elements},
abstract = {We present a fundamental improvement of a high polynomial degree time domain cell method recently introduced by the last three authors. The published work introduced a method featuring block-diagonal system matrices where the block size and conditioning scaled poorly with respect to polynomial degree. The issue is herein bypassed by the construction of new basis functions exploiting quadrature rule based mass lumping techniques for arbitrary polynomial degrees in two dimensions for the Maxwell equations and the acoustic wave equation in the first order velocity pressure formulation. We characterize the degrees of freedom of all new discrete approximation spaces we employ for differential forms and show that the resulting block diagonal (inverse) mass matrices have block sizes independent of the polynomial degree. We demonstrate on an extensive number of examples how the new technique is applicable and efficient for large scale computations.}
}

@article {KCS2021,
AUTHOR = {Kapidani, Bernard and Codecasa, Lorenzo and Sch\"{o}berl,
Joachim},
TITLE = {An arbitrary-order cell method with block-diagonal
mass-matrices for the time-dependent 2{D} {M}axwell equations},
JOURNAL = {J. Comput. Phys.},
FJOURNAL = {Journal of Computational Physics},
VOLUME = {433},
YEAR = {2021},
PAGES = {Paper No. 110184, 20},
ISSN = {0021-9991,1090-2716},
MRCLASS = {65M60 (78M10)},
MRNUMBER = {4216954},
MRREVIEWER = {Jinbiao\ Wu},
DOI = {10.1016/j.jcp.2021.110184},
URLREMOVED = {https://doi.org/10.1016/j.jcp.2021.110184},
}


@article{Stolk,
author = {Stolk, Christiaan C.},
title = {A Time-Domain Preconditioner for the Helmholtz Equation},
journal = {SIAM Journal on Scientific Computing},
volume = {43},
number = {5},
pages = {A3469-A3502},
year = {2021},
doi = {10.1137/20M1359997},
}


@article{AGFR,
author = {Appel\"{o}, Daniel and Garcia, Fortino and Runborg, Olof},
title = {WaveHoltz: Iterative Solution of the Helmholtz Equation via the Wave Equation},
journal = {SIAM Journal on Scientific Computing},
volume = {42},
number = {4},
pages = {A1950-A1983},
year = {2020},
doi = {10.1137/19M1299062},
}
@misc{nw24,
@misc{NW24,
title={A Krylov Eigenvalue Solver Based on Filtered Time Domain Solutions},
author={Lothar Nannen and Markus Wess},
year={2024},
eprint={2402.08515},
archivePrefix={arXiv},
primaryClass={id='math.NA' full_name='Numerical Analysis' is_active=True alt_name='cs.NA' in_archive='math' is_general=False description='Numerical algorithms for problems in analysis and algebra, scientific computation'}
}

@article{Knyazev,
author = {Knyazev, Andrew V.},
title = {Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method},
journal = {SIAM Journal on Scientific Computing},
volume = {23},
number = {2},
pages = {517-541},
year = {2001},
doi = {10.1137/S1064827500366124},
}

0 comments on commit 23e0877

Please sign in to comment.