You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _config.yml
+1-14Lines changed: 1 addition & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -28,13 +28,12 @@ description: >-
28
28
baseurl: ""
29
29
url: "https://blog.feascript.com"
30
30
#twitter_username: jekyllrb
31
-
github_username: FEAScript
31
+
github_username: FEAScript
32
32
33
33
# Build settings
34
34
theme: minima
35
35
plugins:
36
36
- jekyll-feed
37
-
38
37
# Exclude from processing.
39
38
# The following items will not be processed, by default.
40
39
# Any item listed under the `exclude:` key here will be automatically added to
@@ -54,15 +53,3 @@ plugins:
54
53
# - vendor/cache/
55
54
# - vendor/gems/
56
55
# - 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).
Copy file name to clipboardExpand all lines: _posts/2023-12-01-finite-element-method-notes.markdown
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Bu &= g \quad \text{on} \quad \partial D.
23
23
\end{eqnarray} \tag{1}
24
24
$$
25
25
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.
27
27
28
28
The Galerkin method seeks a solution that zeroes out every one of the following weighted residuals:
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:
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.
59
59
@@ -71,9 +71,9 @@ From the above mapping, we can define the reverse mapping from \\(\bar{x}\\) to
71
71
72
72
In the case where \\(D\\) is a two-dimensional domain, the Jacobian of the mapping is the matrix:
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:
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} \\).
90
90
91
91
## Residuals Computation
92
92
93
93
A typical representative of the integrals in the Galerkin residuals is the following:
94
94
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} $$
96
96
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:
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:
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.
115
115
116
116
## References
117
117
118
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
119
+
- O. C. Zienkiewicz "The Finite Element Method", 3rd edition, McGraw-Hill, London, 1977
Copy file name to clipboardExpand all lines: about.markdown
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,9 +6,7 @@ permalink: /about/
6
6
7
7
# About FEAScript
8
8
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.
0 commit comments