From c4b0a9f4a6692d879da00bb7e080c340fa1d67bd Mon Sep 17 00:00:00 2001 From: ratnania Date: Sun, 3 Mar 2024 13:37:30 +0100 Subject: [PATCH] start geometry --- _toc.yml | 4 ++ chapter1/analytical-mapping.md | 75 +++++++++++++++++++++++++++ chapter1/discrete-mapping.md | 4 ++ chapter1/geometry.md | 18 +++++++ chapter1/images/geometry/element.png | Bin 0 -> 19298 bytes references.bib | 4 -- 6 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 chapter1/analytical-mapping.md create mode 100644 chapter1/discrete-mapping.md create mode 100644 chapter1/geometry.md create mode 100644 chapter1/images/geometry/element.png diff --git a/_toc.yml b/_toc.yml index d916c80..8159f13 100644 --- a/_toc.yml +++ b/_toc.yml @@ -34,6 +34,10 @@ parts: - file: chapter1/rules - file: chapter1/poisson - file: chapter1/boundary-conditions + - file: chapter1/geometry + sections: + - file: chapter1/analytical-mapping + - file: chapter1/discrete-mapping - caption: Linear Problems chapters: - file: chapter2/poisson diff --git a/chapter1/analytical-mapping.md b/chapter1/analytical-mapping.md new file mode 100644 index 0000000..8edc9ec --- /dev/null +++ b/chapter1/analytical-mapping.md @@ -0,0 +1,75 @@ +# Analytical Mapping +*Author: Ahmed Ratnani* + +Analytical Mappings are provided as symbolic expressions, which allow us to compute automatically their jacobian matrices and all related geometrical information. + +## Available mappings + +| SymPDE objects | Physical Dimension | Logical Dimension | Description | +| -------------- | ----------------- | ---------------- | ----------- | +| `IdentityMapping` | 1D, 2D, 3D | 1D, 2D, 3D | Identity Mapping object
$\begin{cases} x&=x_1, \\ y&=x_2, \\ z &= x_3 \end{cases} $ | +| `AffineMapping` | 1D, 2D, 3D | 1D, 2D, 3D | Affine Mapping object
$\begin{cases} x &= c_1 + a_{11} x_1 + a_{12} x_2 + a_{13} x_3, \\ y &= c_2 + a_{21} x_1 + a_{22} x_2 + a_{23} x_3, \\ z &= c_3 + a_{31} x_1 + a_{32} x_2 + a_{33} x_3 \end{cases}$| +| `PolarMapping` | 2D | 2D | Polar Mapping object (Annulus)
$ \begin{cases} x &= c_1 + (r_{min} (1-x_1)+r_{max} x_1) \cos(x_2), \\ y &= c_2 + (r_{min} (1-x_1)+r_{max} x_1) \sin(x_2) \end{cases} $ | +| `TargetMapping` | 2D | 2D | Target Mapping object
$\begin{cases} x &= c_1 + (1-k) x_1 \cos(x_2) - D x_1^2, \\ y &= c_2 + (1+k) x_1 \sin(x_2) \end{cases}$| +| `CzarnyMapping` | 2D | 2D | Czarny Mapping object
$\begin{cases} x &= \frac{1}{\epsilon}(1 - \sqrt{ 1 + \epsilon (\epsilon + 2 x_1 \cos(x_2)) }), \\ y &= c_2 + \frac{b}{\sqrt{1-\epsilon^2/4}} \frac{ x_1 \sin(x_2)}{2 - \sqrt{ 1 + \epsilon (\epsilon + 2 x_1 \cos(x_2)) }} \end{cases}$| +| `CollelaMapping2D` | 2D | 2D | Collela Mapping object
$\begin{cases} x &= 2 (x_1 + \epsilon \sin(2 \pi k_1 x_1) \sin(2 \pi k_2 x_2)) - 1, \\ y &= 2 (x_2 + \epsilon \sin(2 \pi k_1 x_1) \sin(2 \pi k_2 x_2)) - 1 \end{cases}$| +| `TorusMapping` | 3D | 3D | Parametrization of a torus (or a portion of it)
$\begin{cases} x &= (R_0 + x_1 \cos(x_2)) \cos(x_3), \\ y &= (R_0 + x_1 \cos(x_2)) \sin(x_3), \\ z &= x_1 \sin(x_2) \end{cases}$| +| `TorusSurfaceMapping` | 3D | 2D | surface obtained by "slicing" the torus above at r = a
$\begin{cases} x &= (R_0 + a \cos(x_1)) \cos(x_2), \\ y &= (R_0 + a \cos(x_1)) \sin(x_2), \\ z &= a \sin(x_1) \end{cases}$| +| `TwistedTargetSurfaceMapping` | 3D | 2D | surface obtained by "twisting" the `TargetMapping` out of the (x, y) plane
$\begin{cases} x &= c_1 + (1-k) x_1 \cos(x_2) - D x_1^2 \\ y &= c_2 + (1+k) x_1 \sin(x_2) \\ z &= c_3 + x_1^2 \sin(2 x_2) \end{cases}$| +| `TwistedTargetMapping` | 3D | 3D | volume obtained by "extruding" the `TwistedTargetSurfaceMapping` along z
$\begin{cases} x &= c_1 + (1-k) x_1 \cos(x_2) - D x_1^2, \\ y &= c_2 + (1+k) x_1 \sin(x_2), \\ z &= c_3 + x_3 x_1^2 \sin(2 x_2) \end{cases}$| +| `SphericalMapping` | 3D | 3D | Parametrization of a sphere (or a portion of it)
$\begin{cases} x &= x_1 \sin(x_2) \cos(x_3), \\ y &= x_1 \sin(x_2) \sin(x_3), \\ z &= x_1 \cos(x_2) \end{cases}$| + +## Examples + + +```python +from sympde.topology import Square +from sympde.topology import PolarMapping + +ldomain = Square('A',bounds1=(0., 1.), bounds2=(0, np.pi)) +mapping = PolarMapping('M1',2, c1= 0., c2= 0., rmin = 0., rmax=1.) + +domain = mapping(ldomain) + +x,y = domain.coordinates +``` + + +```python +mapping_1 = IdentityMapping('M1', 2) +mapping_2 = PolarMapping ('M2', 2, c1 = 0., c2 = 0.5, rmin = 0., rmax=1.) +mapping_3 = AffineMapping ('M3', 2, c1 = 0., c2 = np.pi, a11 = -1, a22 = -1, a21 = 0, a12 = 0) + +A = Square('A',bounds1=(0.5, 1.), bounds2=(-1., 0.5)) +B = Square('B',bounds1=(0.5, 1.), bounds2=(0, np.pi)) +C = Square('C',bounds1=(0.5, 1.), bounds2=(np.pi-0.5, np.pi + 1)) + +D1 = mapping_1(A) +D2 = mapping_2(B) +D3 = mapping_3(C) + +connectivity = [((0,1,1),(1,1,-1)), ((1,1,1),(2,1,-1))] +patches = [D1, D2, D3] +domain = Domain.join(patches, connectivity, 'domain') +``` + +```python +A = Square('A',bounds1=(0.2, 0.6), bounds2=(0, np.pi)) +B = Square('B',bounds1=(0.2, 0.6), bounds2=(np.pi, 2*np.pi)) +C = Square('C',bounds1=(0.6, 1.), bounds2=(0, np.pi)) +D = Square('D',bounds1=(0.6, 1.), bounds2=(np.pi, 2*np.pi)) + +mapping_1 = PolarMapping('M1',2, c1= 0., c2= 0., rmin = 0., rmax=1.) +mapping_2 = PolarMapping('M2',2, c1= 0., c2= 0., rmin = 0., rmax=1.) +mapping_3 = PolarMapping('M3',2, c1= 0., c2= 0., rmin = 0., rmax=1.) +mapping_4 = PolarMapping('M4',2, c1= 0., c2= 0., rmin = 0., rmax=1.) + +D1 = mapping_1(A) +D2 = mapping_2(B) +D3 = mapping_3(C) +D4 = mapping_4(D) + +connectivity = [((0,1,1),(1,1,-1)), ((2,1,1),(3,1,-1)), ((0,0,1),(2,0,-1)),((1,0,1),(3,0,-1))] +patches = [D1, D2, D3, D4] +domain = Domain.join(patches, connectivity, 'domain') +``` diff --git a/chapter1/discrete-mapping.md b/chapter1/discrete-mapping.md new file mode 100644 index 0000000..824fb1a --- /dev/null +++ b/chapter1/discrete-mapping.md @@ -0,0 +1,4 @@ +# Discrete Mapping +*Author: Ahmed Ratnani* + + diff --git a/chapter1/geometry.md b/chapter1/geometry.md new file mode 100644 index 0000000..a0dc6e0 --- /dev/null +++ b/chapter1/geometry.md @@ -0,0 +1,18 @@ +# Geometry +*Author: Ahmed Ratnani* + +The IGA concept relies on the fact that the geometry (domain) is divided into subdomains, and each of these subdomains is the image of a **Line**, **Square** or a **Cube** by a geometric transformation (also called a **mapping**), that we shall call a **patch** or **logical domain**. + +The following example shows a domain (half of annulus) that is the image of a logical domain using the mapping **F**. Each element (or cell) $Q$ of the logical domain is then mapped into an element $K$ of our domain, *i.e.* $K = \mathbf{F}(Q)$. + +![png](images/geometry/element.png) + +Coordinates in the logical domain are defined by the variables $\left( x_1, x_2, x_3 \right)$ while the physical coordinates are denoted by $\left( x,y,z \right)$. + +## How to define a geometry? + +Depending on your problem, you can be in one of the following situations; +- your geometry is trivial, *i.e.* it is a **Line**, **Square** or a **Cube**. In this case, just use the **SymPDE** adhoc constructors, for which you'll define the bounds. +- your geometry can be defined using an **Analytical Mapping**. See the next section. +- your geometry can be defined using a **Discrete Mapping**. See the next sections. + diff --git a/chapter1/images/geometry/element.png b/chapter1/images/geometry/element.png new file mode 100644 index 0000000000000000000000000000000000000000..872a168d874bd51893c44e70d8686097f70c49b5 GIT binary patch literal 19298 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

*P@6!sl32gbtGifZ@(tky+0fz(tV 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 literal 0 HcmV?d00001 diff --git a/references.bib b/references.bib index 5c94278..e383e38 100644 --- a/references.bib +++ b/references.bib @@ -272,10 +272,6 @@ @article{simeon_2011 doi = "10.1016/j.cma.2011.09.004", url = "http://www.sciencedirect.com/science/article/pii/S0045782511002933", author = "A.-V. Vuong and C. Giannelli and B. Juttler and B. Simeon", -keywords = "Adaptivity", -keywords = "Isogeometric analysis", -keywords = "Hierarchical B-splines", -keywords = "Local refinement" } @article{Costantini_Manni_Pelosi_Sampoli_2010,