Skip to content

Commit 0097592

Browse files
committed
Add post for eikonal equation; Update categories and tags;
1 parent 27ab2a5 commit 0097592

File tree

4 files changed

+375
-9
lines changed

4 files changed

+375
-9
lines changed

Gemfile.lock

Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
activesupport (6.0.6.1)
5+
concurrent-ruby (~> 1.0, >= 1.0.2)
6+
i18n (>= 0.7, < 2)
7+
minitest (~> 5.1)
8+
tzinfo (~> 1.1)
9+
zeitwerk (~> 2.2, >= 2.2.2)
10+
addressable (2.8.7)
11+
public_suffix (>= 2.0.2, < 7.0)
12+
base64 (0.2.0)
13+
coffee-script (2.4.1)
14+
coffee-script-source
15+
execjs
16+
coffee-script-source (1.11.1)
17+
colorator (1.1.0)
18+
commonmarker (0.17.13)
19+
ruby-enum (~> 0.5)
20+
concurrent-ruby (1.3.5)
21+
dnsruby (1.72.4)
22+
base64 (~> 0.2.0)
23+
logger (~> 1.6.5)
24+
simpleidn (~> 0.2.1)
25+
em-websocket (0.5.3)
26+
eventmachine (>= 0.12.9)
27+
http_parser.rb (~> 0)
28+
ethon (0.16.0)
29+
ffi (>= 1.15.0)
30+
eventmachine (1.2.7)
31+
execjs (2.10.0)
32+
faraday (1.10.4)
33+
faraday-em_http (~> 1.0)
34+
faraday-em_synchrony (~> 1.0)
35+
faraday-excon (~> 1.1)
36+
faraday-httpclient (~> 1.0)
37+
faraday-multipart (~> 1.0)
38+
faraday-net_http (~> 1.0)
39+
faraday-net_http_persistent (~> 1.0)
40+
faraday-patron (~> 1.0)
41+
faraday-rack (~> 1.0)
42+
faraday-retry (~> 1.0)
43+
ruby2_keywords (>= 0.0.4)
44+
faraday-em_http (1.0.0)
45+
faraday-em_synchrony (1.0.1)
46+
faraday-excon (1.1.0)
47+
faraday-httpclient (1.0.1)
48+
faraday-multipart (1.1.1)
49+
multipart-post (~> 2.0)
50+
faraday-net_http (1.0.2)
51+
faraday-net_http_persistent (1.2.0)
52+
faraday-patron (1.0.0)
53+
faraday-rack (1.0.0)
54+
faraday-retry (1.0.3)
55+
ffi (1.17.2)
56+
forwardable-extended (2.6.0)
57+
gemoji (3.0.1)
58+
github-pages (223)
59+
github-pages-health-check (= 1.17.9)
60+
jekyll (= 3.9.0)
61+
jekyll-avatar (= 0.7.0)
62+
jekyll-coffeescript (= 1.1.1)
63+
jekyll-commonmark-ghpages (= 0.1.6)
64+
jekyll-default-layout (= 0.1.4)
65+
jekyll-feed (= 0.15.1)
66+
jekyll-gist (= 1.5.0)
67+
jekyll-github-metadata (= 2.13.0)
68+
jekyll-include-cache (= 0.2.1)
69+
jekyll-mentions (= 1.6.0)
70+
jekyll-optional-front-matter (= 0.3.2)
71+
jekyll-paginate (= 1.1.0)
72+
jekyll-readme-index (= 0.3.0)
73+
jekyll-redirect-from (= 0.16.0)
74+
jekyll-relative-links (= 0.6.1)
75+
jekyll-remote-theme (= 0.4.3)
76+
jekyll-sass-converter (= 1.5.2)
77+
jekyll-seo-tag (= 2.7.1)
78+
jekyll-sitemap (= 1.4.0)
79+
jekyll-swiss (= 1.0.0)
80+
jekyll-theme-architect (= 0.2.0)
81+
jekyll-theme-cayman (= 0.2.0)
82+
jekyll-theme-dinky (= 0.2.0)
83+
jekyll-theme-hacker (= 0.2.0)
84+
jekyll-theme-leap-day (= 0.2.0)
85+
jekyll-theme-merlot (= 0.2.0)
86+
jekyll-theme-midnight (= 0.2.0)
87+
jekyll-theme-minimal (= 0.2.0)
88+
jekyll-theme-modernist (= 0.2.0)
89+
jekyll-theme-primer (= 0.6.0)
90+
jekyll-theme-slate (= 0.2.0)
91+
jekyll-theme-tactile (= 0.2.0)
92+
jekyll-theme-time-machine (= 0.2.0)
93+
jekyll-titles-from-headings (= 0.5.3)
94+
jemoji (= 0.12.0)
95+
kramdown (= 2.3.1)
96+
kramdown-parser-gfm (= 1.1.0)
97+
liquid (= 4.0.3)
98+
mercenary (~> 0.3)
99+
minima (= 2.5.1)
100+
nokogiri (>= 1.12.5, < 2.0)
101+
rouge (= 3.26.0)
102+
terminal-table (~> 1.4)
103+
github-pages-health-check (1.17.9)
104+
addressable (~> 2.3)
105+
dnsruby (~> 1.60)
106+
octokit (~> 4.0)
107+
public_suffix (>= 3.0, < 5.0)
108+
typhoeus (~> 1.3)
109+
html-pipeline (2.14.3)
110+
activesupport (>= 2)
111+
nokogiri (>= 1.4)
112+
http_parser.rb (0.8.0)
113+
i18n (0.9.5)
114+
concurrent-ruby (~> 1.0)
115+
jekyll (3.9.0)
116+
addressable (~> 2.4)
117+
colorator (~> 1.0)
118+
em-websocket (~> 0.5)
119+
i18n (~> 0.7)
120+
jekyll-sass-converter (~> 1.0)
121+
jekyll-watch (~> 2.0)
122+
kramdown (>= 1.17, < 3)
123+
liquid (~> 4.0)
124+
mercenary (~> 0.3.3)
125+
pathutil (~> 0.9)
126+
rouge (>= 1.7, < 4)
127+
safe_yaml (~> 1.0)
128+
jekyll-avatar (0.7.0)
129+
jekyll (>= 3.0, < 5.0)
130+
jekyll-coffeescript (1.1.1)
131+
coffee-script (~> 2.2)
132+
coffee-script-source (~> 1.11.1)
133+
jekyll-commonmark (1.3.1)
134+
commonmarker (~> 0.14)
135+
jekyll (>= 3.7, < 5.0)
136+
jekyll-commonmark-ghpages (0.1.6)
137+
commonmarker (~> 0.17.6)
138+
jekyll-commonmark (~> 1.2)
139+
rouge (>= 2.0, < 4.0)
140+
jekyll-default-layout (0.1.4)
141+
jekyll (~> 3.0)
142+
jekyll-feed (0.15.1)
143+
jekyll (>= 3.7, < 5.0)
144+
jekyll-gist (1.5.0)
145+
octokit (~> 4.2)
146+
jekyll-github-metadata (2.13.0)
147+
jekyll (>= 3.4, < 5.0)
148+
octokit (~> 4.0, != 4.4.0)
149+
jekyll-include-cache (0.2.1)
150+
jekyll (>= 3.7, < 5.0)
151+
jekyll-mentions (1.6.0)
152+
html-pipeline (~> 2.3)
153+
jekyll (>= 3.7, < 5.0)
154+
jekyll-optional-front-matter (0.3.2)
155+
jekyll (>= 3.0, < 5.0)
156+
jekyll-paginate (1.1.0)
157+
jekyll-readme-index (0.3.0)
158+
jekyll (>= 3.0, < 5.0)
159+
jekyll-redirect-from (0.16.0)
160+
jekyll (>= 3.3, < 5.0)
161+
jekyll-relative-links (0.6.1)
162+
jekyll (>= 3.3, < 5.0)
163+
jekyll-remote-theme (0.4.3)
164+
addressable (~> 2.0)
165+
jekyll (>= 3.5, < 5.0)
166+
jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
167+
rubyzip (>= 1.3.0, < 3.0)
168+
jekyll-sass-converter (1.5.2)
169+
sass (~> 3.4)
170+
jekyll-seo-tag (2.7.1)
171+
jekyll (>= 3.8, < 5.0)
172+
jekyll-sitemap (1.4.0)
173+
jekyll (>= 3.7, < 5.0)
174+
jekyll-swiss (1.0.0)
175+
jekyll-theme-architect (0.2.0)
176+
jekyll (> 3.5, < 5.0)
177+
jekyll-seo-tag (~> 2.0)
178+
jekyll-theme-cayman (0.2.0)
179+
jekyll (> 3.5, < 5.0)
180+
jekyll-seo-tag (~> 2.0)
181+
jekyll-theme-dinky (0.2.0)
182+
jekyll (> 3.5, < 5.0)
183+
jekyll-seo-tag (~> 2.0)
184+
jekyll-theme-hacker (0.2.0)
185+
jekyll (> 3.5, < 5.0)
186+
jekyll-seo-tag (~> 2.0)
187+
jekyll-theme-leap-day (0.2.0)
188+
jekyll (> 3.5, < 5.0)
189+
jekyll-seo-tag (~> 2.0)
190+
jekyll-theme-merlot (0.2.0)
191+
jekyll (> 3.5, < 5.0)
192+
jekyll-seo-tag (~> 2.0)
193+
jekyll-theme-midnight (0.2.0)
194+
jekyll (> 3.5, < 5.0)
195+
jekyll-seo-tag (~> 2.0)
196+
jekyll-theme-minimal (0.2.0)
197+
jekyll (> 3.5, < 5.0)
198+
jekyll-seo-tag (~> 2.0)
199+
jekyll-theme-modernist (0.2.0)
200+
jekyll (> 3.5, < 5.0)
201+
jekyll-seo-tag (~> 2.0)
202+
jekyll-theme-primer (0.6.0)
203+
jekyll (> 3.5, < 5.0)
204+
jekyll-github-metadata (~> 2.9)
205+
jekyll-seo-tag (~> 2.0)
206+
jekyll-theme-slate (0.2.0)
207+
jekyll (> 3.5, < 5.0)
208+
jekyll-seo-tag (~> 2.0)
209+
jekyll-theme-tactile (0.2.0)
210+
jekyll (> 3.5, < 5.0)
211+
jekyll-seo-tag (~> 2.0)
212+
jekyll-theme-time-machine (0.2.0)
213+
jekyll (> 3.5, < 5.0)
214+
jekyll-seo-tag (~> 2.0)
215+
jekyll-titles-from-headings (0.5.3)
216+
jekyll (>= 3.3, < 5.0)
217+
jekyll-watch (2.2.1)
218+
listen (~> 3.0)
219+
jemoji (0.12.0)
220+
gemoji (~> 3.0)
221+
html-pipeline (~> 2.2)
222+
jekyll (>= 3.0, < 5.0)
223+
kramdown (2.3.1)
224+
rexml
225+
kramdown-parser-gfm (1.1.0)
226+
kramdown (~> 2.0)
227+
liquid (4.0.3)
228+
listen (3.9.0)
229+
rb-fsevent (~> 0.10, >= 0.10.3)
230+
rb-inotify (~> 0.9, >= 0.9.10)
231+
logger (1.6.6)
232+
mercenary (0.3.6)
233+
minima (2.5.1)
234+
jekyll (>= 3.5, < 5.0)
235+
jekyll-feed (~> 0.9)
236+
jekyll-seo-tag (~> 2.1)
237+
minitest (5.15.0)
238+
multipart-post (2.4.1)
239+
nokogiri (1.12.5-x86_64-linux)
240+
racc (~> 1.4)
241+
octokit (4.25.1)
242+
faraday (>= 1, < 3)
243+
sawyer (~> 0.9)
244+
pathutil (0.16.2)
245+
forwardable-extended (~> 2.6)
246+
public_suffix (4.0.7)
247+
racc (1.8.1)
248+
rb-fsevent (0.11.2)
249+
rb-inotify (0.11.1)
250+
ffi (~> 1.0)
251+
rexml (3.4.1)
252+
rouge (3.26.0)
253+
ruby-enum (0.9.0)
254+
i18n
255+
ruby2_keywords (0.0.5)
256+
rubyzip (2.4.1)
257+
safe_yaml (1.0.5)
258+
sass (3.7.4)
259+
sass-listen (~> 4.0.0)
260+
sass-listen (4.0.0)
261+
rb-fsevent (~> 0.9, >= 0.9.4)
262+
rb-inotify (~> 0.9, >= 0.9.7)
263+
sawyer (0.9.2)
264+
addressable (>= 2.3.5)
265+
faraday (>= 0.17.3, < 3)
266+
simpleidn (0.2.3)
267+
terminal-table (1.8.0)
268+
unicode-display_width (~> 1.1, >= 1.1.1)
269+
thread_safe (0.3.6)
270+
typhoeus (1.4.1)
271+
ethon (>= 0.9.0)
272+
tzinfo (1.2.11)
273+
thread_safe (~> 0.1)
274+
unicode-display_width (1.8.0)
275+
zeitwerk (2.6.18)
276+
277+
PLATFORMS
278+
x86_64-linux
279+
280+
DEPENDENCIES
281+
github-pages
282+
http_parser.rb (~> 0.6.0)
283+
jekyll-feed (~> 0.12)
284+
minima (~> 2.5)
285+
tzinfo (>= 1, < 3)
286+
tzinfo-data
287+
wdm (~> 0.1)
288+
289+
BUNDLED WITH
290+
2.2.34

_posts/2023-12-01-finite-element-method-notes.markdown

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
layout: post
33
title: "Finite Element Method Notes"
44
date: 2023-12-01
5-
categories: [Numerical Methods, FEM]
6-
tags: [FEAScript, FEM, Galerkin, Numerical Methods, Tutorial]
5+
categories: [Tutorial]
6+
tags: [FEAScript, FEM, Galerkin, Numerical Methods, JavaScript]
77
mathjax: true
88
---
99

@@ -12,6 +12,8 @@ mathjax: true
1212

1313
The finite element method is a discretization technique that can utilize a computational mesh to approximate the solution of a partial differential equation. Basic concepts of the finite element method are described below.
1414

15+
---
16+
1517
## Galerkin Residuals
1618

1719
Consider a typical formulation of a boundary value problem (BVP):
@@ -37,6 +39,8 @@ $$
3739

3840
These integrals depend solely on the nodal values \\(u_j\\), which are the unknowns to be determined. The number of residuals is equal to the number of basis functions, which in turn is equal to the number of nodes, \\(N\\), in the computational mesh. Setting the Galerkin residuals to zero leads to a system of \\(N\\) algebraic equations with \\(N\\) unknowns, which can be solved to obtain the approximate solution.
3941

42+
---
43+
4044
## Boundary Conditions
4145

4246
In general, there are three common types of boundary conditions that can be imposed in boundary value problems: Dirichlet, Neumann, and Robin boundary conditions. The boundary conditions that specify the value of \\(u\\) on a portion of \\(\partial D\\) are called Dirichlet boundary conditions, and they are imposed directly in the discretization equations. In particular, the Dirichlet boundary conditions replace the Galerkin residuals at the computational nodes that lie on the portion of the boundary where the solution value is prescribed.
@@ -59,6 +63,8 @@ If the Neumann boundary condition has a rank \\(k < (m-1)\\), then we continue t
5963

6064
Finally, Robin boundary conditions, also known as mixed boundary conditions, specify a linear combination of the function \\(u\\) and its derivative on a portion of \\(\partial D\\). These are imposed in a similar fashion to the Neumann boundary conditions.
6165

66+
---
67+
6268
## Isoparametric Mapping
6369

6470
The basis functions are defined on reference elements: on the unit interval \\(0 \le \xi \le 1\\) in 1D, and on the unit square \\(0 \le \xi \le 1\\), \\(0 \le \eta \le 1\\) in 2D. However, the basis functions also need to be mapped to the initial domain \\(D\\) of the BVP since the solution \\(u\\) is approximated by basis functions defined on \\(D\\). The change from the \\(\bar{\xi}\\) system to the \\(\bar{x}\\) system is performed through isoparametric mapping, where \\(\bar{\xi} = (\xi, \eta)\\) and \\(\bar{x} = (x, y)\\). In this process, the reference element is mapped to every element of the computational mesh on \\(D\\). The same basis functions are used for the mapping:
@@ -88,6 +94,8 @@ $$
8894

8995
where \\(\text{det}\bar{\bar{J}}\\) is the determinant of the Jacobian: \\( \text{det}\bar{\bar{J}} = x_{\xi} y_{\eta} - x_{\eta} y_{\xi}\\). In the case where \\(D\\) is a one-dimensional domain, Eq. (6) is reduced to: \\( x = \sum_{i=1}^{n_k} x_i \phi_i(\xi) \\). The Jacobian of the mapping in this case is: \\( J = \frac{dx}{d\xi} = x_{\xi} \\), and the partial derivative of the basis function is: \\( \frac{d\phi_i}{dx} = \frac{d\phi_i}{d\xi} \Big/ x_{\xi} \\).
9096

97+
---
98+
9199
## Residuals Computation
92100

93101
A typical representative of the integrals in the Galerkin residuals is the following:
@@ -113,7 +121,9 @@ $$ \int_{E_0} f(\bar{\xi}) \, d\bar{\xi} = \sum_{k=1}^{NGP} w_k f(\bar{\xi}_{gk}
113121

114122
where \\(w_k\\) are the Gauss weights, \\(\bar{\xi}_{gk}\\) are the Gauss points inside the reference element where the integrand is evaluated, and \\(NGP\\) is the number of Gauss points.
115123

124+
---
125+
116126
## References
117127

118-
- A. G. Boudouvis "Computational Analysis with the Finite Element Method", Lecture Notes, National Technical University of Athens, Athens, 1992 (In Greek)
119-
- O. C. Zienkiewicz "The Finite Element Method", 3rd edition, McGraw-Hill, London, 1977
128+
- A. G. Boudouvis. "Computational Analysis with the Finite Element Method." Lecture Notes, National Technical University of Athens, Athens, 1992.
129+
- O. C. Zienkiewicz. "The Finite Element Method." 3rd edition, McGraw-Hill, London, 1977.

0 commit comments

Comments
 (0)