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
`easifemBase` (henceforth read as Base) library is the lowest (or, base) level component of EASIFEM. All other components are built upon `easifemBase`.
7
9
8
-
It contains a lot of valuable routines and derived types.
10
+
It contains a lot of valuable routines and derived types.
9
11
10
12
## Programming paradigm
11
13
12
-
The programming paradigm of `easifemBase` is [Multiple dispatch approach](https://en.wikipedia.org/wiki/Multiple_dispatch) and Procedural programming.
14
+
The programming paradigm of `easifemBase` is [Multiple dispatch approach](https://en.wikipedia.org/wiki/Multiple_dispatch) and Procedural programming.
13
15
14
16
:::note
15
17
The base library do not use the object-oriented programming concepts. In the Base library `String_Class` is the only exception wherein Object-oriented paradigm has been used.
@@ -22,14 +24,14 @@ import TabItem from '@theme/TabItem';
22
24
23
25
## Key features
24
26
25
-
Currently, easifemBase has interface with
27
+
Currently, easifemBase has interface with
26
28
27
-
-`BLAS95`
28
-
-`Lapack95`
29
-
-`Sparsekit`
30
-
-`Metis`
31
-
-`PlPlot`
32
-
-`SuperLU`
29
+
-`BLAS95`
30
+
-`Lapack95`
31
+
-`Sparsekit`
32
+
-`Metis`
33
+
-`PlPlot`
34
+
-`SuperLU`
33
35
-`ARPACK`
34
36
35
37
-[ ] TODO Add key features in `easifemBase.md`.
@@ -53,11 +55,11 @@ The `easifemBase` library exposes three main modules.
53
55
54
56
1.`BaseType`, which contains the user-defined data-type
55
57
2.`BaseMethods`, contains the modules (each module defines the routines for data-types defined in `BaseType.F90`.)
56
-
3.`easifemBase`
58
+
3.`easifemBase`
57
59
58
60
The structure of source directory is shown in the following figure.
Copy file name to clipboardExpand all lines: docs/about/index.md
+3-5
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,4 @@
1
1
---
2
-
id: "index"
3
-
aliases:
4
-
- "EASIFEM"
5
2
tags:
6
3
- "easifemBase"
7
4
- "easifemClasses"
@@ -10,6 +7,8 @@ sidebar_position: 1
10
7
11
8
# EASIFEM
12
9
10
+
<!-- markdownlint-disable MD041 MD013 MD033 -->
11
+
13
12
Expandable And Scalable Infrastructure for Finite Element Methods, EASIFEM, is [Modern FORTRAN](https://fortran-lang.org) framework for solving partial differential equations (PDEs) using finite element methods. EASIFEM “eases” the efforts to develop scientific programs in FORTRAN. It is meant for researchers, scientists, and engineers using FORTRAN to implement numerical methods for solving the initial-boundary-value problems (IBVPs). EASIFEM is equipped with both low- and high-level datatype and classes for implementing finite element methods.
14
13
15
14
Following are some features which may interest you.
@@ -26,7 +25,7 @@ Currently, EASIFEM focuses on finite element methods. Eventually, the library wi
26
25
27
26
## Structure of EASIFEM
28
27
29
-

28
+

30
29
31
30
EASIFEM consists following three hierarchical components:
32
31
@@ -77,7 +76,6 @@ Currently, `easifemBase` has interface with `HDF5`, `Gmsh`, `PlPlot`, `GTK4`, `P
77
76
</div>
78
77
</div>
79
78
80
-
81
79
## Kernels
82
80
83
81
`easifemKernels` (henceforth, read as Kernels) contains physics simulators. For example, we have:
MODULE PURE FUNCTION BarycentricVertexBasis_Triangle(lambda) &
@@ -22,17 +18,21 @@ INTERFACE
22
18
END INTERFACE
23
19
```
24
20
25
-
</TabItem>
21
+
:::info `lambda`
22
+
Barycentric coordinates. The vertex basis function will be evaluated here. The number of rows in lambda is 3 and the number of columns is the number of points. The three rows of lambda dentoe the $\lambda_{i=1,2,3}$.
23
+
:::
26
24
27
-
<TabItemvalue="example"label="️܀ See example">
25
+
:::info `ans`
26
+
The number of rows in `ans` is equal to the number of points of evaluation. The number of columns is 3. The three columns of `ans` denote the basis functions of vertex $v=1,2,3$ at all points.
27
+
:::
28
28
29
-
import EXAMPLE29 from "./_BarycentricVertexBasis_Triangle_test_1.md";
29
+
<details>
30
+
<summary>Example</summary>
31
+
<div>
30
32
31
-
<EXAMPLE29 />
32
-
33
-
</TabItem>
33
+
import EXAMPLE29 from "./examples/_BarycentricVertexBasis_Triangle_test_1.md";
Points in reference triangle, shape functions will be evaluated at these points. SIZE(xij,1) = 2, and SIZE(xij, 2) = number of points
62
+
:::
63
+
57
64
</TabItem>
58
65
59
66
<TabItemvalue="example"label="️܀ order=1">
60
67
61
-
import EXAMPLE61 from "./_Dubiner_Triangle_test_1.md";
68
+
import EXAMPLE61 from "./examples/_Dubiner_Triangle_test_1.md";
62
69
63
70
<EXAMPLE61 />
64
71
65
72
</TabItem>
66
73
67
74
<TabItemvalue="example2"label="️܀ order=2">
68
75
69
-
import EXAMPLE100 from "./_Dubiner_Triangle_test_2.md";
76
+
import EXAMPLE100 from "./examples/_Dubiner_Triangle_test_2.md";
70
77
71
78
<EXAMPLE100 />
72
79
@@ -100,7 +107,10 @@ INTERFACE
100
107
END INTERFACE
101
108
```
102
109
103
-
Forms Dubiner basis on reference triangle domain. Reference triangle can be biunit or unit. Here x and y are the coordinates on the line. xij is given by outerproduct of x and y.
110
+
- Forms Dubiner basis on the reference triangle domain.
111
+
- Reference triangle can be biunit or unit.
112
+
- Here x and y are the coordinates on the line. `xij` is given by outer-product of `x` and `y`.
0 commit comments