Skip to content

Commit c8c6018

Browse files
committed
Update configuration and layout files. Update About page description
1 parent d48530c commit c8c6018

File tree

4 files changed

+21
-31
lines changed

4 files changed

+21
-31
lines changed

_config.yml

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,12 @@ description: >-
2828
baseurl: ""
2929
url: "https://blog.feascript.com"
3030
#twitter_username: jekyllrb
31-
github_username: FEAScript
31+
github_username: FEAScript
3232

3333
# Build settings
3434
theme: minima
3535
plugins:
3636
- jekyll-feed
37-
3837
# Exclude from processing.
3938
# The following items will not be processed, by default.
4039
# Any item listed under the `exclude:` key here will be automatically added to
@@ -54,15 +53,3 @@ plugins:
5453
# - vendor/cache/
5554
# - vendor/gems/
5655
# - vendor/ruby/
57-
58-
---
59-
layout: page
60-
title: About
61-
permalink: /about/
62-
---
63-
64-
#FEAScript is a lightweight finite element simulation library developed in JavaScript. It allows users to create and run client-side, browser-based simulations for physics and engineering problems without requiring additional installations.
65-
#
66-
#Our goal is to democratize finite element analysis by making simulation capabilities accessible to everyone, everywhere.
67-
#
68-
#Visit the [main website](https://feascript.com) or check out our [GitHub repository](https://github.com/FEAScript/FEAScript-core).

_layouts/default.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
<!DOCTYPE html>
2+
<head>
3+
<meta charset="utf-8">
4+
<title>{{ page.title }}</title>
5+
<link href="https://feascript.com/FEAScript-website.css" rel="stylesheet" type="text/css" />
6+
</head>
27
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
38

49
{%- include head.html -%}

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

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Bu &= g \quad \text{on} \quad \partial D.
2323
\end{eqnarray} \tag{1}
2424
$$
2525

26-
The solution \\(u\\) is a function of the position vector \\(\bar{x}\\) at the domain \\(D\\), which is a subregion of a one-, two-, or three-dimensional Euclidean space. The position vector \\(\bar{x}\\) is defined as: \\( \bar{x} = \sum_{i=1}^{n} x_i e_i \\), where \\(e_i\\) are the unit vectors and \\(n\\) is the dimension of the Euclidean space. \\(L\\) is the differential operator and \\(B\\) is a boundary operator defined at the boundary \\(\partial D\\). The solution \\(u\\) can be approximated using a linear combination of basis functions \\(\phi^1, \phi^2, \phi^3, \dots, \phi^N\\) such that: \\( u(x) = \sum_{j=1}^{N} u_j \phi^j(x) \\), where the number of basis functions equals the number of nodes of the computational mesh.
26+
The solution \\(u\\) is a function of the position vector \\(\bar{x}\\) at the domain \\(D\\), which is a subregion of a one-, two-, or three-dimensional Euclidean space. The position vector \\(\bar{x}\\) is defined as: \\( \bar{x} = \sum*{i=1}^{n} x_i e_i \\), where \\(e_i\\) are the unit vectors and \\(n\\) is the dimension of the Euclidean space. \\(L\\) is the differential operator and \\(B\\) is a boundary operator defined at the boundary \\(\partial D\\). The solution \\(u\\) can be approximated using a linear combination of basis functions \\(\phi^1, \phi^2, \phi^3, \dots, \phi^N\\) such that: \\( u(x) = \sum*{j=1}^{N} u_j \phi^j(x) \\), where the number of basis functions equals the number of nodes of the computational mesh.
2727

2828
The Galerkin method seeks a solution that zeroes out every one of the following weighted residuals:
2929

@@ -49,11 +49,11 @@ $$I_m = \int_{D} \phi^i \frac{d^m u}{dx^m} \, dx. \tag{3}$$
4949

5050
By applying integration by parts, we get:
5151

52-
$$ I_m = \oint_{\partial D} \phi^i \frac{d^{m-1} u}{dx^{m-1}} \, dt - \int_{D} \frac{d\phi^i}{dx} \frac{d^{m-1} u}{dx^{m-1}} \, dx, \tag{4}$$
52+
$$ I*m = \oint*{\partial D} \phi^i \frac{d^{m-1} u}{dx^{m-1}} \, dt - \int\_{D} \frac{d\phi^i}{dx} \frac{d^{m-1} u}{dx^{m-1}} \, dx, \tag{4}$$
5353

5454
where \\(t\\) is the independent variable at the boundary \\(\partial D\\). A boundary condition of \\(m-1\\) rank is imposed at the line integral. Thus, in the case where the Neumann boundary condition is \\( \frac{d^{m-1}u}{dx^{m-1}} = g(t) \\) on \\(\partial D\\), where \\(g(t)\\) is a known function, then:
5555

56-
$$ I_m = \oint_{\partial D} \phi^i g(t) \, dt - \int_{D} \frac{d\phi^i}{dx} \frac{d^{m-1} u}{dx^{m-1}} \, dx. \tag{5}$$
56+
$$ I*m = \oint*{\partial D} \phi^i g(t) \, dt - \int\_{D} \frac{d\phi^i}{dx} \frac{d^{m-1} u}{dx^{m-1}} \, dx. \tag{5}$$
5757

5858
If the Neumann boundary condition has a rank \\(k < (m-1)\\), then we continue to apply integration by parts until the \\(k\\)-th rank derivative appears on the line integral.
5959

@@ -71,9 +71,9 @@ From the above mapping, we can define the reverse mapping from \\(\bar{x}\\) to
7171

7272
In the case where \\(D\\) is a two-dimensional domain, the Jacobian of the mapping is the matrix:
7373

74-
$$ \bar{\bar{J}} = \begin{vmatrix} x_{\xi} & y_{\xi} \\ x_{\eta} & y_{\eta} \end{vmatrix}, \tag{7}$$
74+
$$ \bar{\bar{J}} = \begin{vmatrix} x*{\xi} & y*{\xi} \\ x*{\eta} & y*{\eta} \end{vmatrix}, \tag{7}$$
7575

76-
where \\( x_{\xi} = \frac{\partial x}{\partial \xi}\\), \\( y_{\xi} = \frac{\partial y}{\partial \xi}\\), \\( x_{\eta} = \frac{\partial x}{\partial \eta}\\), \\( y_{\eta} = \frac{\partial y}{\partial \eta}\\). The relation between the \\(\bar{x}\\)- and \\(\bar{\xi}\\)-partial derivatives of the basis function can also be calculated as:
76+
where \\( x*{\xi} = \frac{\partial x}{\partial \xi}\\), \\( y*{\xi} = \frac{\partial y}{\partial \xi}\\), \\( x*{\eta} = \frac{\partial x}{\partial \eta}\\), \\( y*{\eta} = \frac{\partial y}{\partial \eta}\\). The relation between the \\(\bar{x}\\)- and \\(\bar{\xi}\\)-partial derivatives of the basis function can also be calculated as:
7777

7878
$$ \bar{\bar{J}} \begin{vmatrix} \frac{\partial \phi_i}{\partial x} \\ \frac{\partial \phi_i}{\partial y} \end{vmatrix} = \begin{vmatrix} \frac{\partial \phi_i}{\partial \xi} \\ \frac{\partial \phi_i}{\partial \eta} \end{vmatrix}. \tag{8} $$
7979

@@ -86,15 +86,15 @@ $$
8686
\end{eqnarray} \tag{9}
8787
$$
8888

89-
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} \\).
89+
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} \\).
9090

9191
## Residuals Computation
9292

9393
A typical representative of the integrals in the Galerkin residuals is the following:
9494

95-
$$ I_{ij} = \int_{D} \phi^i L \phi^j \, d\bar{x}. \tag{10} $$
95+
$$ I*{ij} = \int*{D} \phi^i L \phi^j \, d\bar{x}. \tag{10} $$
9696

97-
The computational mesh covering \\(D\\) consists of \\(NE\\) finite elements \\(E_k\\) \\((k = 1, 2, \dots, NE)\\). Thus, the integral \\(I_{ij}\\) is the sum of the partial integrals:
97+
The computational mesh covering \\(D\\) consists of \\(NE\\) finite elements \\(E*k\\) \\((k = 1, 2, \dots, NE)\\). Thus, the integral \\(I*{ij}\\) is the sum of the partial integrals:
9898

9999
$$
100100
\begin{aligned}
@@ -103,17 +103,17 @@ I_{ij}^k &\equiv \int_{E_k} \phi^i L \phi^j \, d\bar{x}.
103103
\end{aligned} \tag{11}
104104
$$
105105

106-
Each of the integrals \\(I_{ij}^k\\) is calculated through the isoparametric mapping by transforming the coordinate system as follows:
106+
Each of the integrals \\(I\_{ij}^k\\) is calculated through the isoparametric mapping by transforming the coordinate system as follows:
107107

108-
$$ I_{ij}^k = \int_{E_0} \phi_i(\bar{\xi}) L_{\bar{\xi}} \phi_j(\bar{\xi}) \, \text{det}(\bar{\bar{J}}) \, d\bar{\xi}, \tag{12} $$
108+
$$ I*{ij}^k = \int*{E*0} \phi_i(\bar{\xi}) L*{\bar{\xi}} \phi_j(\bar{\xi}) \, \text{det}(\bar{\bar{J}}) \, d\bar{\xi}, \tag{12} $$
109109

110-
where \\(E_0\\) is the reference element, and \\(L_{\bar{\xi}}\\) is the differential operator expressed in the \\(\bar{\xi}\\)-coordinate system. The integrals of the discretization equations are then calculated numerically on the reference element. Specifically, these calculations are performed using the Gauss quadrature method:
110+
where \\(E*0\\) is the reference element, and \\(L*{\bar{\xi}}\\) is the differential operator expressed in the \\(\bar{\xi}\\)-coordinate system. The integrals of the discretization equations are then calculated numerically on the reference element. Specifically, these calculations are performed using the Gauss quadrature method:
111111

112-
$$ \int_{E_0} f(\bar{\xi}) \, d\bar{\xi} = \sum_{k=1}^{NGP} w_k f(\bar{\xi}_{gk}), \tag{13} $$
112+
$$ \int*{E_0} f(\bar{\xi}) \, d\bar{\xi} = \sum*{k=1}^{NGP} w*k f(\bar{\xi}*{gk}), \tag{13} $$
113113

114-
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.
114+
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.
115115

116116
## References
117117

118118
- 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
119+
- O. C. Zienkiewicz "The Finite Element Method", 3rd edition, McGraw-Hill, London, 1977

about.markdown

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ permalink: /about/
66

77
# About FEAScript
88

9-
[FEAScript](https://feascript.com/) is a lightweight finite element simulation library
10-
built in JavaScript for creating client-side, browser-based simulations
11-
for physics and engineering problems.
9+
[FEAScript](https://feascript.com/) is a lightweight finite element simulation library developed in JavaScript. It allows users to create and run client-side, browser-based simulations for physics and engineering problems without requiring additional installations. This is the blog of FEAScript.
1210

1311
## License
1412

0 commit comments

Comments
 (0)