Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
7792017
updates in mass matrix docs
vickysharma0812 Jun 4, 2025
16bdf06
updating GetValue.md
vickysharma0812 Jun 4, 2025
e62d119
updating package.json
vickysharma0812 Jun 4, 2025
0f25369
update in pkgs and removing fluenui
vickysharma0812 Jun 4, 2025
478dbda
adding docs of fedof
vickysharma0812 Jun 6, 2025
7528424
updating docs of femesh
vickysharma0812 Jun 6, 2025
8e86a5d
adding mesh images
vickysharma0812 Jun 6, 2025
e83a218
updating css for dark theme
vickysharma0812 Jun 6, 2025
621c1f1
adding fedof docs
vickysharma0812 Jun 8, 2025
22baaf9
adding inpututility
vickysharma0812 Jun 8, 2025
7de6a30
updates in css of dark color
vickysharma0812 Jun 8, 2025
80d61e6
addings fedof docs
vickysharma0812 Jun 10, 2025
54c2cc0
Merge pull request #21 from easifem/vikas-dev
vickysharma0812 Jun 10, 2025
035db5c
adding FEDOF docs
vickysharma0812 Jun 17, 2025
9d07aa7
Adding FEDomain docs
vickysharma0812 Jun 17, 2025
058aa79
Adding LagrangeOneDimFE
vickysharma0812 Jun 17, 2025
6fa0bfa
Adding MatrixField
vickysharma0812 Jun 17, 2025
b8b4d3b
Adding QuadraturePoint
vickysharma0812 Jun 17, 2025
46cfbdb
Updates in STScalarField
vickysharma0812 Jun 17, 2025
4a360e1
Updates in ScalarField
vickysharma0812 Jun 17, 2025
8d23989
updating docusaurus latest version
vickysharma0812 Jun 17, 2025
c10b123
Adding blog on DirichletBC
vickysharma0812 Dec 8, 2025
956a398
Adding blog on FEDOF
vickysharma0812 Dec 8, 2025
bc98ef6
Updating AbstractBC
vickysharma0812 Dec 8, 2025
887c560
Adding AbstractOneDimFE
vickysharma0812 Dec 8, 2025
fa68db7
Updating BasisOpt
vickysharma0812 Dec 8, 2025
7997adb
Updating BlockNodeField
vickysharma0812 Dec 8, 2025
376b936
Updating CSRMatrix
vickysharma0812 Dec 8, 2025
d70957e
Updating ElemshapeData
vickysharma0812 Dec 8, 2025
2f83b4d
Updating FEDOF
vickysharma0812 Dec 8, 2025
88af62a
Updating ForceVector
vickysharma0812 Dec 8, 2025
cbf4e0f
Updating H1FE
vickysharma0812 Dec 8, 2025
3368452
Updating LIS
vickysharma0812 Dec 8, 2025
7fd0404
Updating MatrixFieldLis
vickysharma0812 Dec 8, 2025
b827cce
Updating MeshField
vickysharma0812 Dec 8, 2025
ebeb4a3
Updating MeshSelection
vickysharma0812 Dec 8, 2025
93a4537
Updating OneDimFEDOF
vickysharma0812 Dec 8, 2025
f8e9a04
Updating ProductUtility
vickysharma0812 Dec 8, 2025
09236c1
Updating QuadraturePoint
vickysharma0812 Dec 8, 2025
ce681c4
Updating ReallocateUtility
vickysharma0812 Dec 8, 2025
59d7442
Update ReverseUtility
vickysharma0812 Dec 8, 2025
afc2cda
Updating STScalarField
vickysharma0812 Dec 8, 2025
5018120
Updating STVectorField
vickysharma0812 Dec 8, 2025
9f6449a
Updating ScalarField
vickysharma0812 Dec 8, 2025
684fdad
Updating ScalarFieldLis
vickysharma0812 Dec 8, 2025
d5ef269
Updating SolidMaterial
vickysharma0812 Dec 8, 2025
44cb2e3
Updating VectorField
vickysharma0812 Dec 8, 2025
9efe25e
Updating guides
vickysharma0812 Dec 8, 2025
5575f6d
Updating config
vickysharma0812 Dec 8, 2025
219f624
Updating yarn.loclk
vickysharma0812 Dec 8, 2025
498f89c
Adding FEVarible, LIS, and MPI docs
vickysharma0812 Dec 31, 2025
836bc7a
Updating blogpost
vickysharma0812 Dec 31, 2025
cc343e7
Merge pull request #22 from easifem/vikas-dev
vickysharma0812 Dec 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ First we need to configure our project by modyfing `docusaurus.config.js` file.

- `organizationName`, The GitHub user or organization name.
- `projectName`, The name of the deployment repository.
- `deploymentBranch`, The name of the deployment branch. Bu default it is `gh-pages` for non-organization GitHub pages repositories (that is, `projectName` not ending in `.github.io`). Otherwise, it needs to be explicit as a config field or environment variable.
- `deploymentBranch`, The name of the deployment branch. But default it is `gh-pages` for non-organization GitHub pages repositories (that is, `projectName` not ending in `.github.io`). Otherwise, it needs to be explicit as a config field or environment variable.

In this repository we have set the following parameters in `docusaurus.config.js` file:

Expand Down
88 changes: 88 additions & 0 deletions docs/blog/DirichletBC/code/mesh/mesh.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
!> author: Vikas Sharma, Ph. D.
! date: 2025-10-02
! summary: A Simple mesh generator

PROGRAM main
USE Gmsh_Class
USE GlobalData
USE MSHFile_Class
USE HDF5File_Class
USE Display_Method

TYPE(Gmsh_) :: gmsh

CHARACTER(LEN=*), PARAMETER :: prefix = "square"
REAL(DFP), PARAMETER :: lx = 1.0_DFP
REAL(DFP), PARAMETER :: ly = 1.0_DFP
INTEGER(I4B), PARAMETER :: order = 1

REAL(DFP), PARAMETER :: meshSize = 1.0
REAL(DFP), PARAMETER :: corner(3) = 0.0_DFP
INTEGER(I4B), PARAMETER :: nnod(2) = [3, 3]
INTEGER(I4B) :: ierr
REAL(DFP) :: x, y, z, lc
CHARACTER(:), ALLOCATABLE :: suffix, title

TYPE(MSHFile_) :: mshFile
TYPE(HDF5File_) :: hdf5file

suffix = ToString(nnod(1))//"x"//ToString(nnod(2))

title = prefix//"_"//suffix

ierr = gmsh%Initialize()
ierr = gmsh%model%add(title)

x = corner(1); y = corner(2); z = corner(3); lc = meshSize
ierr = gmsh%model%geo%addPoint(x=x, y=y, z=z, meshSize=lc, tag=1)

x = x + lx; y = y; z = z; lc = lc
ierr = gmsh%model%geo%addPoint(x=x, y=y, z=z, meshSize=lc, tag=2)

x = x; y = y + ly; z = z; lc = lc
ierr = gmsh%model%geo%addPoint(x=x, y=y, z=z, meshSize=lc, tag=3)

x = corner(1); y = y; z = z; lc = lc
ierr = gmsh%model%geo%addPoint(x=x, y=y, z=z, meshSize=lc, tag=4)

ierr = gmsh%model%geo%addLine(1, 2, 1)
ierr = gmsh%model%geo%addLine(2, 3, 2)
ierr = gmsh%model%geo%addLine(3, 4, 3)
ierr = gmsh%model%geo%addLine(4, 1, 4)

ierr = gmsh%model%geo%addCurveLoop([1, 2, 3, 4], tag=1)

ierr = gmsh%model%geo%addPlaneSurface([1], 1)

ierr = gmsh%model%geo%mesh%setTransfiniteCurve(1, nnod(1), &
"Progression", 1.0_DFP)
ierr = gmsh%model%geo%mesh%setTransfiniteCurve(3, nnod(1), &
"Progression", 1.0_DFP)
ierr = gmsh%model%geo%mesh%setTransfiniteCurve(2, nnod(2), &
"Progression", 1.0_DFP)
ierr = gmsh%model%geo%mesh%setTransfiniteCurve(4, nnod(2), &
"Progression", 1.0_DFP)

ierr = gmsh%model%geo%mesh%setTransfiniteSurface(1)
ierr = gmsh%model%geo%mesh%setRecombine(2, 1)

ierr = gmsh%model%geo%synchronize()

ierr = gmsh%model%mesh%generate(2)

ierr = gmsh%model%mesh%setOrder(order)

ierr = gmsh%WRITE(title//'.msh')

ierr = gmsh%Finalize()

CALL mshFile%Initiate(filename=title//'.msh', STATUS="OLD", ACTION="READ")
CALL mshFile%OPEN()
CALL mshFile%READ()
CALL hdf5file%Initiate(title//'.h5', MODE="NEW")
CALL hdf5file%OPEN()
CALL mshFile%Export(hdf5=hdf5file, group="")
CALL mshFile%DEALLOCATE()
CALL hdf5file%DEALLOCATE()

END PROGRAM main
3 changes: 3 additions & 0 deletions docs/blog/DirichletBC/code/mesh/runner.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
BuildType = "Debug"
BuildDir = "/tmp/easifem-tests/Blog/understanding-fedof/mesh/"
TargetLibs = ["easifemClasses"]
3 changes: 3 additions & 0 deletions docs/blog/DirichletBC/code/runner.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
BuildType = "Debug"
BuildDir = "/tmp/easifem-tests/Blog/DirichletBC/"
TargetLibs = ["easifemClasses"]
104 changes: 104 additions & 0 deletions docs/blog/DirichletBC/code/test1.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
!> author: Vikas Sharma, Ph. D.
! date: 2025-10-23
! summary: Study of DirichletBC class

PROGRAM main
USE GlobalData, ONLY: DFP, I4B, LGT
USE ExceptionHandler_Class, ONLY: e, EXCEPTION_INFORMATION
USE DirichletBC_Class
USE FEDomain_Class
USE AbstractMesh_Class
USE FEDOF_Class
USE ScalarField_Class
USE Display_Method
USE ReallocateUtility

IMPLICIT NONE

!----------------------------------------------------------------------------
! Parameters
!----------------------------------------------------------------------------
CHARACTER(*), PARAMETER :: tomlFileName = "./test1.toml"

!----------------------------------------------------------------------------
! Types and variables
!----------------------------------------------------------------------------
TYPE(DirichletBC_) :: obj
TYPE(FEDomain_) :: dom
TYPE(ScalarField_) :: u
TYPE(FEDOF_) :: fedof, geofedof
INTEGER(I4B) :: tsize, iNodeOnNode, iNodeOnEdge, iNodeOnFace, nrow, ncol

!----------------------------------------------------------------------------
! Allocatables and pointers
!----------------------------------------------------------------------------
CLASS(AbstractMesh_), POINTER :: cellMesh, boundaryMesh
INTEGER(I4B), ALLOCATABLE :: nodeNum(:)
REAL(DFP), ALLOCATABLE :: nodalValue(:, :)

!----------------------------------------------------------------------------
! Setting the verbosity
! In Debug mode, there will many messages printed to the screen
! Following code suppress information-exception.
!----------------------------------------------------------------------------

CALL e%setQuietMode(EXCEPTION_INFORMATION, .TRUE.)

!----------------------------------------------------------------------------
! Domain: Initiate FEDomain and print info
!----------------------------------------------------------------------------

CALL dom%ImportFromToml(tomlName="domain", filename=tomlFileName)
! CALL dom%DisplayDomainInfo(msg="DomainInfo: ")

!----------------------------------------------------------------------------
! ScalarField and FEDOF: Initiate scalarField and fedof
!----------------------------------------------------------------------------

CALL u%ImportFromToml(tomlName="u", fedof=fedof, geofedof=geofedof, dom=dom, &
filename=tomlFileName)
! CALL fedof%Display(msg="FEDOF info: ")

!----------------------------------------------------------------------------
! DirichletBC: Import from toml
!----------------------------------------------------------------------------

CALL obj%ImportFromToml(filename=tomlFileName, dom=dom, tomlName="dbc")
! CALL obj%Display("DirichletBC Info: ")

!----------------------------------------------------------------------------
! DirichletBC: Get the total node numbers
!----------------------------------------------------------------------------
tsize = obj%GetTotalNodeNum(fedof=fedof)
CALL Display(tsize, "Total Node Num: ")

!----------------------------------------------------------------------------
! DirichletBC: Get the node numbers
!----------------------------------------------------------------------------

CALL Reallocate(nodeNum, tsize, isExpand=.TRUE., expandFactor=2)
CALL obj%Get(fedof=fedof, nodeNum=nodeNum, tsize=tsize, &
iNodeOnNode=iNodeOnNode, iNodeOnEdge=iNodeOnEdge, &
iNodeOnFace=iNodeOnFace)
CALL Display(tsize, "tsize = ")
CALL Display(nodeNum(1:tsize), "nodeNum", full=.TRUE., orient="ROW")
CALL Display(iNodeOnNode, "iNodeOnNode = ")
CALL Display(iNodeOnFace, "iNodeOnFace = ")
CALL Display(iNodeOnEdge, "iNodeOnEdge = ")

!----------------------------------------------------------------------------
! DirichletBC: Get the nodal values
!----------------------------------------------------------------------------

CALL Reallocate(nodalValue, tsize, 2, isExpand=.TRUE., expandFactor=2)
CALL obj%Get(fedof=fedof, nodeNum=nodeNum, nodalValue=nodalValue, &
nrow=nrow, ncol=ncol)
CALL Display(nodalValue(1:nrow, 1:ncol), "nodalValue: ", &
full=.TRUE.)
CALL Display([nrow, ncol], "[nrow, ncol]: ")

!----------------------------------------------------------------------------
! Cleanup
!----------------------------------------------------------------------------
CALL dom%DEALLOCATE()
END PROGRAM main
43 changes: 43 additions & 0 deletions docs/blog/DirichletBC/code/test1.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
[domain]
filename = "./mesh/square_3x3.h5"
group = "/"
totalMedium = 1

[u]
name = "u"
engine = "NATIVE_SERIAL"
fieldType = "Normal"
spaceCompo = 1
timeCompo = 1
fedofName = "space"
geofedofName = "geofedof"

[u.geofedof]
baseContinuity = "H1"
baseInterpolation = "Lagrange"
ipType = "Equidistance"
baseType = "Monomial"

[u.space]
baseContinuity = "H1"
baseInterpolation = "Hierarchical"
# ipType = "Equidistance"
# baseType = "Monomial"
order = 4
scaleForQuadOrder = 2
quadOptName = "quadOpt"

[u.space.quadOpt]
isHomogeneous = true
quadratureType = "GaussLegendre"
# order = 2

[dbc]
name = "left_bottom_fix"
idof = 1
nodalValueType = "Constant"
value = 10.0
[dbc.boundary]
isSelectionByMeshID = true
[dbc.boundary.meshID]
line = [1, 4]
111 changes: 111 additions & 0 deletions docs/blog/DirichletBC/code/test2.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
!> author: Vikas Sharma, Ph. D.
! date: 2025-10-23
! summary: Study of DirichletBC class

PROGRAM main
USE GlobalData, ONLY: DFP, I4B, LGT
USE ExceptionHandler_Class, ONLY: e, EXCEPTION_INFORMATION
USE DirichletBC_Class
USE FEDomain_Class
USE AbstractMesh_Class
USE FEDOF_Class
USE ScalarField_Class
USE Display_Method
USE ReallocateUtility

IMPLICIT NONE

!----------------------------------------------------------------------------
! Parameters
!----------------------------------------------------------------------------
CHARACTER(*), PARAMETER :: tomlFileName = "./test2.toml"

!----------------------------------------------------------------------------
! Types and variables
!----------------------------------------------------------------------------
TYPE(DirichletBC_) :: obj
TYPE(FEDomain_) :: dom
TYPE(ScalarField_) :: u
TYPE(FEDOF_) :: fedof, geofedof
INTEGER(I4B) :: tsize, iNodeOnNode, iNodeOnEdge, iNodeOnFace, nrow, ncol

!----------------------------------------------------------------------------
! Allocatables and pointers
!----------------------------------------------------------------------------
CLASS(AbstractMesh_), POINTER :: cellMesh, boundaryMesh
INTEGER(I4B), ALLOCATABLE :: nodeNum(:)
REAL(DFP), ALLOCATABLE :: nodalValue(:, :)

!----------------------------------------------------------------------------
! Setting the verbosity
! In Debug mode, there will many messages printed to the screen
! Following code suppress information-exception.
!----------------------------------------------------------------------------

! CALL e%setQuietMode(EXCEPTION_INFORMATION, .TRUE.)

!----------------------------------------------------------------------------
! Domain: Initiate FEDomain and print info
!----------------------------------------------------------------------------

CALL dom%ImportFromToml(tomlName="domain", filename=tomlFileName)
! CALL dom%DisplayDomainInfo(msg="DomainInfo: ")

!----------------------------------------------------------------------------
! ScalarField and FEDOF: Initiate scalarField and fedof
!----------------------------------------------------------------------------

CALL u%ImportFromToml(tomlName="u", fedof=fedof, geofedof=geofedof, dom=dom, &
filename=tomlFileName)
! CALL fedof%Display(msg="FEDOF info: ")

!----------------------------------------------------------------------------
! DirichletBC: Import from toml
!----------------------------------------------------------------------------

CALL obj%ImportFromToml(filename=tomlFileName, dom=dom, tomlName="dbc")
! CALL obj%Display("DirichletBC Info: ")

!----------------------------------------------------------------------------
! DirichletBC: Get the total node numbers
!----------------------------------------------------------------------------
tsize = obj%GetTotalNodeNum(fedof=fedof)
CALL Display(tsize, "Total Node Num: ")

!----------------------------------------------------------------------------
! DirichletBC: Get the node numbers
!----------------------------------------------------------------------------

CALL Reallocate(nodeNum, tsize, isExpand=.TRUE., expandFactor=2)
CALL obj%Get(fedof=fedof, nodeNum=nodeNum, tsize=tsize, &
iNodeOnNode=iNodeOnNode, iNodeOnEdge=iNodeOnEdge, &
iNodeOnFace=iNodeOnFace)
CALL Display(tsize, "tsize = ")
CALL Display(nodeNum(1:tsize), "nodeNum", full=.TRUE., orient="ROW")
CALL Display(iNodeOnNode, "iNodeOnNode = ")
CALL Display(iNodeOnFace, "iNodeOnFace = ")
CALL Display(iNodeOnEdge, "iNodeOnEdge = ")

!----------------------------------------------------------------------------
! DirichletBC: Get the nodal values
!----------------------------------------------------------------------------

CALL Reallocate(nodalValue, tsize, 2, isExpand=.TRUE., expandFactor=2)
CALL Display(SHAPE(nodalValue), "shape(nodalValue) before Get: ")
nrow = 0; ncol = 0
CALL obj%Get(fedof=fedof, geofedof=geofedof, nodeNum=nodeNum, &
nodalValue=nodalValue, nrow=nrow, ncol=ncol)

CALL Display(nodeNum(1:nrow), "nodeNum(1:nrow): ", &
full=.TRUE., advance="NO")
CALL Display(nodalValue(1:nrow, 1:ncol), "nodalValue: ", &
full=.TRUE.)
CALL Display([nrow, ncol], "[nrow, ncol]: ")

!----------------------------------------------------------------------------
! Cleanup
!----------------------------------------------------------------------------

CALL dom%DEALLOCATE()

END PROGRAM main
3 changes: 3 additions & 0 deletions docs/blog/DirichletBC/code/test2.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
function BottomFunc(x, y, z, t)
return x ^ 2 + y
end
Loading