├── .fortls
├── .gitattributes
├── .gitconfig
├── .github
├── .pr-labeler.yml
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── feature_request.md
│ └── inspiration.md
└── workflows
│ └── pr-labeler.yml
├── .gitignore
├── .vscode
├── settings.json
└── tasks.json
├── CMakeLists.txt
├── CMakePresets.json
├── FORDsetup.md
├── LICENSE
├── LICENSE.gpl3.md
├── README.md
├── Workspaces
├── BLAS.code-workspace
├── OpenMP.code-workspace
├── Polynomial
├── SparseMatrix.code-workspace
├── Tensor.code-workspace
├── Utility.code-workspace
└── refelem.code-workspace
├── base.code-workspace
├── build.py
├── cmake
├── Config.cmake.in
├── Modules
│ └── FindLAPACK.cmake
├── addARPACK.cmake
├── addFFTW.cmake
├── addGTKFortran.cmake
├── addLIS.cmake
├── addLapack95.cmake
├── addLua.cmake
├── addMetis.cmake
├── addOpenBLAS.cmake
├── addOpenMP.cmake
├── addPLPLOT.cmake
├── addRaylib.cmake
├── addSparsekit.cmake
├── addSuperLU.cmake
├── addToml.cmake
└── packaging.cmake
├── compile_commands.json
├── easifemBase.py
├── easifemvar.sh
├── figures
├── banner.jpeg
├── favicon.ico
├── figure-1.svg
├── figure-2.svg
├── logo_hero.svg
└── what-is-easifem.svg
├── fortran.json
├── install.py
├── neovim.json
├── package-lock.json
├── package.json
├── package.py
├── pages
├── BaseMethods.md
├── BaseType.md
├── Environment.md
├── Extpkgs.md
├── Install_Linux.md
├── Install_MacOSX.md
├── Install_Windows.md
└── IntVector_.md
├── release_install.py
├── selected
├── setup.py
├── setup
├── install_pkgs_Darwin.sh
├── install_pkgs_Ubuntu.sh
├── requirements.txt
├── set_envvar_CentOS.sh
├── set_envvar_Darwin.sh
└── set_envvar_Ubuntu.sh
└── src
├── modules
├── ARPACK
│ ├── CMakeLists.txt
│ └── src
│ │ ├── ARPACK_SAUPD.F90
│ │ ├── EASIFEM_ARPACK.F90
│ │ └── EASIFEM_F77_ARPACK.F90
├── BLAS95
│ ├── CMakeLists.txt
│ ├── aux
│ │ ├── blas95.lst
│ │ └── test.F90
│ └── src
│ │ ├── F77_BLAS.F90
│ │ ├── F95_BLAS.F90
│ │ ├── blas95_src
│ │ ├── caxpby.F90
│ │ ├── caxpy.F90
│ │ ├── caxpyi.F90
│ │ ├── ccopy.F90
│ │ ├── cdotc.F90
│ │ ├── cdotci.F90
│ │ ├── cdotu.F90
│ │ ├── cdotui.F90
│ │ ├── cgbmv.F90
│ │ ├── cgem2vc.F90
│ │ ├── cgemm.F90
│ │ ├── cgemm3m.F90
│ │ ├── cgemm3m_batch.F90
│ │ ├── cgemm_batch.F90
│ │ ├── cgemmt.F90
│ │ ├── cgemv.F90
│ │ ├── cgerc.F90
│ │ ├── cgeru.F90
│ │ ├── cgthr.F90
│ │ ├── cgthrz.F90
│ │ ├── chbmv.F90
│ │ ├── chemm.F90
│ │ ├── chemv.F90
│ │ ├── cher.F90
│ │ ├── cher2.F90
│ │ ├── cher2k.F90
│ │ ├── cherk.F90
│ │ ├── chpmv.F90
│ │ ├── chpr.F90
│ │ ├── chpr2.F90
│ │ ├── crotg.F90
│ │ ├── cscal.F90
│ │ ├── csctr.F90
│ │ ├── csrot.F90
│ │ ├── csscal.F90
│ │ ├── cswap.F90
│ │ ├── csymm.F90
│ │ ├── csyr2k.F90
│ │ ├── csyrk.F90
│ │ ├── ctbmv.F90
│ │ ├── ctbsv.F90
│ │ ├── ctpmv.F90
│ │ ├── ctpsv.F90
│ │ ├── ctrmm.F90
│ │ ├── ctrmv.F90
│ │ ├── ctrsm.F90
│ │ ├── ctrsm_batch.F90
│ │ ├── ctrsv.F90
│ │ ├── dasum.F90
│ │ ├── daxpby.F90
│ │ ├── daxpy.F90
│ │ ├── daxpyi.F90
│ │ ├── dcabs1.F90
│ │ ├── dcopy.F90
│ │ ├── ddot.F90
│ │ ├── ddoti.F90
│ │ ├── dgbmv.F90
│ │ ├── dgem2vu.F90
│ │ ├── dgemm.F90
│ │ ├── dgemm_batch.F90
│ │ ├── dgemmt.F90
│ │ ├── dgemv.F90
│ │ ├── dger.F90
│ │ ├── dgthr.F90
│ │ ├── dgthrz.F90
│ │ ├── dnrm2.F90
│ │ ├── drot.F90
│ │ ├── drotg.F90
│ │ ├── droti.F90
│ │ ├── drotm.F90
│ │ ├── drotmg.F90
│ │ ├── dsbmv.F90
│ │ ├── dscal.F90
│ │ ├── dsctr.F90
│ │ ├── dsdot.F90
│ │ ├── dspmv.F90
│ │ ├── dspr.F90
│ │ ├── dspr2.F90
│ │ ├── dswap.F90
│ │ ├── dsymm.F90
│ │ ├── dsymv.F90
│ │ ├── dsyr.F90
│ │ ├── dsyr2.F90
│ │ ├── dsyr2k.F90
│ │ ├── dsyrk.F90
│ │ ├── dtbmv.F90
│ │ ├── dtbsv.F90
│ │ ├── dtpmv.F90
│ │ ├── dtpsv.F90
│ │ ├── dtrmm.F90
│ │ ├── dtrmv.F90
│ │ ├── dtrsm.F90
│ │ ├── dtrsm_batch.F90
│ │ ├── dtrsv.F90
│ │ ├── dzasum.F90
│ │ ├── dzgemm.F90
│ │ ├── dzgemv.F90
│ │ ├── dznrm2.F90
│ │ ├── icamax.F90
│ │ ├── icamin.F90
│ │ ├── idamax.F90
│ │ ├── idamin.F90
│ │ ├── isamax.F90
│ │ ├── isamin.F90
│ │ ├── izamax.F90
│ │ ├── izamin.F90
│ │ ├── sasum.F90
│ │ ├── saxpby.F90
│ │ ├── saxpy.F90
│ │ ├── saxpyi.F90
│ │ ├── scabs1.F90
│ │ ├── scasum.F90
│ │ ├── scgemm.F90
│ │ ├── scgemv.F90
│ │ ├── scnrm2.F90
│ │ ├── scopy.F90
│ │ ├── sdot.F90
│ │ ├── sdoti.F90
│ │ ├── sdsdot.F90
│ │ ├── sgbmv.F90
│ │ ├── sgem2vu.F90
│ │ ├── sgemm.F90
│ │ ├── sgemm_batch.F90
│ │ ├── sgemmt.F90
│ │ ├── sgemv.F90
│ │ ├── sger.F90
│ │ ├── sgthr.F90
│ │ ├── sgthrz.F90
│ │ ├── snrm2.F90
│ │ ├── srot.F90
│ │ ├── srotg.F90
│ │ ├── sroti.F90
│ │ ├── srotm.F90
│ │ ├── srotmg.F90
│ │ ├── ssbmv.F90
│ │ ├── sscal.F90
│ │ ├── ssctr.F90
│ │ ├── sspmv.F90
│ │ ├── sspr.F90
│ │ ├── sspr2.F90
│ │ ├── sswap.F90
│ │ ├── ssymm.F90
│ │ ├── ssymv.F90
│ │ ├── ssyr.F90
│ │ ├── ssyr2.F90
│ │ ├── ssyr2k.F90
│ │ ├── ssyrk.F90
│ │ ├── stbmv.F90
│ │ ├── stbsv.F90
│ │ ├── stpmv.F90
│ │ ├── stpsv.F90
│ │ ├── strmm.F90
│ │ ├── strmv.F90
│ │ ├── strsm.F90
│ │ ├── strsm_batch.F90
│ │ ├── strsv.F90
│ │ ├── zaxpby.F90
│ │ ├── zaxpy.F90
│ │ ├── zaxpyi.F90
│ │ ├── zcopy.F90
│ │ ├── zdotc.F90
│ │ ├── zdotci.F90
│ │ ├── zdotu.F90
│ │ ├── zdotui.F90
│ │ ├── zdrot.F90
│ │ ├── zdscal.F90
│ │ ├── zgbmv.F90
│ │ ├── zgem2vc.F90
│ │ ├── zgemm.F90
│ │ ├── zgemm3m.F90
│ │ ├── zgemm3m_batch.F90
│ │ ├── zgemm_batch.F90
│ │ ├── zgemmt.F90
│ │ ├── zgemv.F90
│ │ ├── zgerc.F90
│ │ ├── zgeru.F90
│ │ ├── zgthr.F90
│ │ ├── zgthrz.F90
│ │ ├── zhbmv.F90
│ │ ├── zhemm.F90
│ │ ├── zhemv.F90
│ │ ├── zher.F90
│ │ ├── zher2.F90
│ │ ├── zher2k.F90
│ │ ├── zherk.F90
│ │ ├── zhpmv.F90
│ │ ├── zhpr.F90
│ │ ├── zhpr2.F90
│ │ ├── zrotg.F90
│ │ ├── zscal.F90
│ │ ├── zsctr.F90
│ │ ├── zswap.F90
│ │ ├── zsymm.F90
│ │ ├── zsyr2k.F90
│ │ ├── zsyrk.F90
│ │ ├── ztbmv.F90
│ │ ├── ztbsv.F90
│ │ ├── ztpmv.F90
│ │ ├── ztpsv.F90
│ │ ├── ztrmm.F90
│ │ ├── ztrmv.F90
│ │ ├── ztrsm.F90
│ │ ├── ztrsm_batch.F90
│ │ └── ztrsv.F90
│ │ └── easifem_blas_interface.inc
├── BaseContinuity
│ ├── CMakeLists.txt
│ └── src
│ │ └── BaseContinuity_Method.F90
├── BaseInterpolation
│ ├── CMakeLists.txt
│ └── src
│ │ └── BaseInterpolation_Method.F90
├── BaseMethod
│ ├── CMakeLists.txt
│ └── src
│ │ └── BaseMethod.F90
├── BaseType
│ ├── CMakeLists.txt
│ └── src
│ │ └── BaseType.F90
├── BeFoR64
│ ├── CMakeLists.txt
│ └── src
│ │ ├── befor64.F90
│ │ └── befor64_pack_data_m.F90
├── BoundingBox
│ ├── CMakeLists.txt
│ └── src
│ │ └── BoundingBox_Method.F90
├── CInterface
│ ├── CMakeLists.txt
│ └── src
│ │ └── CInterface.F90
├── CMakeLists.txt
├── CSRMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ ├── CSRMatrix_AddMethods.F90
│ │ ├── CSRMatrix_ConstructorMethods.F90
│ │ ├── CSRMatrix_DBCMethods.F90
│ │ ├── CSRMatrix_DiagonalScalingMethods.F90
│ │ ├── CSRMatrix_GetBlockColMethods.F90
│ │ ├── CSRMatrix_GetBlockRowMethods.F90
│ │ ├── CSRMatrix_GetColMethods.F90
│ │ ├── CSRMatrix_GetMethods.F90
│ │ ├── CSRMatrix_GetRowMethods.F90
│ │ ├── CSRMatrix_GetSubMatrixMethods.F90
│ │ ├── CSRMatrix_ILUMethods.F90
│ │ ├── CSRMatrix_IOMethods.F90
│ │ ├── CSRMatrix_LUSolveMethods.F90
│ │ ├── CSRMatrix_LinSolveMethods.F90
│ │ ├── CSRMatrix_MatVecMethods.F90
│ │ ├── CSRMatrix_MatrixMarketIO.F90
│ │ ├── CSRMatrix_Method.F90
│ │ ├── CSRMatrix_ReorderingMethods.F90
│ │ ├── CSRMatrix_SchurMethods.F90
│ │ ├── CSRMatrix_SetBlockColMethods.F90
│ │ ├── CSRMatrix_SetBlockRowMethods.F90
│ │ ├── CSRMatrix_SetColMethods.F90
│ │ ├── CSRMatrix_SetMethods.F90
│ │ ├── CSRMatrix_SetRowMethods.F90
│ │ ├── CSRMatrix_SparsityMethods.F90
│ │ ├── CSRMatrix_SpectralMethods.F90
│ │ ├── CSRMatrix_SuperLU.F90
│ │ ├── CSRMatrix_SymMatmulMethods.F90
│ │ └── CSRMatrix_UnaryMethods.F90
├── CSRSparsity
│ ├── CMakeLists.txt
│ └── src
│ │ └── CSRSparsity_Method.F90
├── ConvectiveMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── ConvectiveMatrix_Method.F90
├── DOF
│ ├── CMakeLists.txt
│ └── src
│ │ ├── DOF_AddMethods.F90
│ │ ├── DOF_ConstructorMethods.F90
│ │ ├── DOF_GetMethods.F90
│ │ ├── DOF_GetValueMethods.F90
│ │ ├── DOF_IOMethods.F90
│ │ ├── DOF_Method.F90
│ │ └── DOF_SetMethods.F90
├── DiffusionMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── DiffusionMatrix_Method.F90
├── Display
│ ├── CMakeLists.txt
│ └── src
│ │ ├── Display_Mat2.inc
│ │ ├── Display_Mat3.inc
│ │ ├── Display_Mat4.inc
│ │ ├── Display_Method.F90
│ │ ├── Display_Scalar.inc
│ │ ├── Display_Vector.inc
│ │ ├── References
│ │ └── dispmodule-userman.pdf
│ │ └── disp
│ │ ├── disp_charmod.F90
│ │ ├── disp_i1mod.F90
│ │ ├── disp_i2mod.F90
│ │ ├── disp_i4mod.F90
│ │ ├── disp_i8mod.F90
│ │ ├── disp_l1mod.F90
│ │ ├── disp_r16mod.F90
│ │ ├── disp_r4mod.F90
│ │ ├── disp_r8mod.F90
│ │ ├── dispmodule.F90
│ │ ├── dispmodule_util.F90
│ │ └── putstrmodule.F90
├── ElasticNitscheMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── ElasticNitscheMatrix_Method.F90
├── ElemshapeData
│ ├── CMakeLists.txt
│ └── src
│ │ ├── ElemshapeData_ConstructorMethods.F90
│ │ ├── ElemshapeData_DGHermitMethods.F90
│ │ ├── ElemshapeData_DGHierarchyMethods.F90
│ │ ├── ElemshapeData_DGLagrangeMethods.F90
│ │ ├── ElemshapeData_DGMethods.F90
│ │ ├── ElemshapeData_DGSerendipityMethods.F90
│ │ ├── ElemshapeData_DivergenceMethods.F90
│ │ ├── ElemshapeData_GetMethods.F90
│ │ ├── ElemshapeData_GradientMethods.F90
│ │ ├── ElemshapeData_H1Methods.F90
│ │ ├── ElemshapeData_HCurlMethods.F90
│ │ ├── ElemshapeData_HDivMethods.F90
│ │ ├── ElemshapeData_HRGNParamMethods.F90
│ │ ├── ElemshapeData_HRQIParamMethods.F90
│ │ ├── ElemshapeData_HminHmaxMethods.F90
│ │ ├── ElemshapeData_IOMethods.F90
│ │ ├── ElemshapeData_InterpolMethods.F90
│ │ ├── ElemshapeData_LocalDivergenceMethods.F90
│ │ ├── ElemshapeData_LocalGradientMethods.F90
│ │ ├── ElemshapeData_Method.F90
│ │ ├── ElemshapeData_ProjectionMethods.F90
│ │ ├── ElemshapeData_SetMethods.F90
│ │ ├── ElemshapeData_StabilizationParamMethods.F90
│ │ └── ElemshapeData_UnitNormalMethods.F90
├── ErrorHandling
│ ├── CMakeLists.txt
│ └── src
│ │ └── ErrorHandling.F90
├── FACE
│ ├── CMakeLists.txt
│ └── src
│ │ └── face.F90
├── FEMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── FEMatrix_Method.F90
├── FEVariable
│ ├── CMakeLists.txt
│ └── src
│ │ └── FEVariable_Method.F90
├── FEVector
│ ├── CMakeLists.txt
│ └── src
│ │ └── FEVector_Method.F90
├── FFTW
│ ├── CMakeLists.txt
│ └── src
│ │ └── FFTW3.F90
├── FPL
│ ├── CMakeLists.txt
│ ├── LICENSE
│ └── src
│ │ ├── ErrorMessages.F90
│ │ ├── FPL.F90
│ │ ├── FPL_utils.F90
│ │ ├── ParameterEntry.F90
│ │ ├── ParameterEntryDictionary.F90
│ │ ├── ParameterList.F90
│ │ ├── ParameterRootEntry.F90
│ │ └── Wrapper
│ │ ├── DimensionsWrapper.F90
│ │ ├── DimensionsWrapper0D
│ │ ├── DimensionsWrapper0D.F90
│ │ ├── DimensionsWrapper0D_DLCA.F90
│ │ ├── DimensionsWrapper0D_I1P.F90
│ │ ├── DimensionsWrapper0D_I2P.F90
│ │ ├── DimensionsWrapper0D_I4P.F90
│ │ ├── DimensionsWrapper0D_I8P.F90
│ │ ├── DimensionsWrapper0D_L.F90
│ │ ├── DimensionsWrapper0D_R4P.F90
│ │ └── DimensionsWrapper0D_R8P.F90
│ │ ├── DimensionsWrapper1D
│ │ ├── DimensionsWrapper1D.F90
│ │ ├── DimensionsWrapper1D_DLCA.F90
│ │ ├── DimensionsWrapper1D_I1P.F90
│ │ ├── DimensionsWrapper1D_I2P.F90
│ │ ├── DimensionsWrapper1D_I4P.F90
│ │ ├── DimensionsWrapper1D_I8P.F90
│ │ ├── DimensionsWrapper1D_L.F90
│ │ ├── DimensionsWrapper1D_R4P.F90
│ │ └── DimensionsWrapper1D_R8P.F90
│ │ ├── DimensionsWrapper2D
│ │ ├── DimensionsWrapper2D.F90
│ │ ├── DimensionsWrapper2D_DLCA.F90
│ │ ├── DimensionsWrapper2D_I1P.F90
│ │ ├── DimensionsWrapper2D_I2P.F90
│ │ ├── DimensionsWrapper2D_I4P.F90
│ │ ├── DimensionsWrapper2D_I8P.F90
│ │ ├── DimensionsWrapper2D_L.F90
│ │ ├── DimensionsWrapper2D_R4P.F90
│ │ └── DimensionsWrapper2D_R8P.F90
│ │ ├── DimensionsWrapper3D
│ │ ├── DimensionsWrapper3D.F90
│ │ ├── DimensionsWrapper3D_DLCA.F90
│ │ ├── DimensionsWrapper3D_I1P.F90
│ │ ├── DimensionsWrapper3D_I2P.F90
│ │ ├── DimensionsWrapper3D_I4P.F90
│ │ ├── DimensionsWrapper3D_I8P.F90
│ │ ├── DimensionsWrapper3D_L.F90
│ │ ├── DimensionsWrapper3D_R4P.F90
│ │ └── DimensionsWrapper3D_R8P.F90
│ │ ├── DimensionsWrapper4D
│ │ ├── DimensionsWrapper4D.F90
│ │ ├── DimensionsWrapper4D_DLCA.F90
│ │ ├── DimensionsWrapper4D_I1P.F90
│ │ ├── DimensionsWrapper4D_I2P.F90
│ │ ├── DimensionsWrapper4D_I4P.F90
│ │ ├── DimensionsWrapper4D_I8P.F90
│ │ ├── DimensionsWrapper4D_L.F90
│ │ ├── DimensionsWrapper4D_R4P.F90
│ │ └── DimensionsWrapper4D_R8P.F90
│ │ ├── DimensionsWrapper5D
│ │ ├── DimensionsWrapper5D.F90
│ │ ├── DimensionsWrapper5D_DLCA.F90
│ │ ├── DimensionsWrapper5D_I1P.F90
│ │ ├── DimensionsWrapper5D_I2P.F90
│ │ ├── DimensionsWrapper5D_I4P.F90
│ │ ├── DimensionsWrapper5D_I8P.F90
│ │ ├── DimensionsWrapper5D_L.F90
│ │ ├── DimensionsWrapper5D_R4P.F90
│ │ └── DimensionsWrapper5D_R8P.F90
│ │ ├── DimensionsWrapper6D
│ │ ├── DimensionsWrapper6D.F90
│ │ ├── DimensionsWrapper6D_DLCA.F90
│ │ ├── DimensionsWrapper6D_I1P.F90
│ │ ├── DimensionsWrapper6D_I2P.F90
│ │ ├── DimensionsWrapper6D_I4P.F90
│ │ ├── DimensionsWrapper6D_I8P.F90
│ │ ├── DimensionsWrapper6D_L.F90
│ │ ├── DimensionsWrapper6D_R4P.F90
│ │ └── DimensionsWrapper6D_R8P.F90
│ │ ├── DimensionsWrapper7D
│ │ ├── DimensionsWrapper7D.F90
│ │ ├── DimensionsWrapper7D_DLCA.F90
│ │ ├── DimensionsWrapper7D_I1P.F90
│ │ ├── DimensionsWrapper7D_I2P.F90
│ │ ├── DimensionsWrapper7D_I4P.F90
│ │ ├── DimensionsWrapper7D_I8P.F90
│ │ ├── DimensionsWrapper7D_L.F90
│ │ ├── DimensionsWrapper7D_R4P.F90
│ │ └── DimensionsWrapper7D_R8P.F90
│ │ ├── WrapperFactory
│ │ ├── DLACWrapperFactory.F90
│ │ ├── I1PWrapperFactory.F90
│ │ ├── I2PWrapperFactory.F90
│ │ ├── I4PWrapperFactory.F90
│ │ ├── I8PWrapperFactory.F90
│ │ ├── LWrapperFactory.F90
│ │ ├── R4PWrapperFactory.F90
│ │ ├── R8PWrapperFactory.F90
│ │ └── WrapperFactory.F90
│ │ ├── WrapperFactoryList.F90
│ │ └── WrapperFactoryListSingleton.F90
├── FacetMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ ├── FacetMatrix1.inc
│ │ ├── FacetMatrix11.inc
│ │ ├── FacetMatrix12.inc
│ │ ├── FacetMatrix13.inc
│ │ ├── FacetMatrix14.inc
│ │ ├── FacetMatrix15.inc
│ │ ├── FacetMatrix2.inc
│ │ ├── FacetMatrix21.inc
│ │ ├── FacetMatrix22.inc
│ │ ├── FacetMatrix3.inc
│ │ ├── FacetMatrix4.inc
│ │ ├── FacetMatrix5.inc
│ │ └── FacetMatrix_Method.F90
├── ForceVector
│ ├── CMakeLists.txt
│ └── src
│ │ └── ForceVector_Method.F90
├── Geometry
│ ├── CMakeLists.txt
│ └── src
│ │ ├── Geometry_Method.F90
│ │ ├── Line_Method.F90
│ │ ├── Plane_Method.F90
│ │ ├── ReferenceElement_Method.F90
│ │ ├── ReferenceHexahedron_Method.F90
│ │ ├── ReferenceLine_Method.F90
│ │ ├── ReferencePoint_Method.F90
│ │ ├── ReferencePrism_Method.F90
│ │ ├── ReferencePyramid_Method.F90
│ │ ├── ReferenceQuadrangle_Method.F90
│ │ ├── ReferenceTetrahedron_Method.F90
│ │ ├── ReferenceTriangle_Method.F90
│ │ ├── Triangle_Method.F90
│ │ └── assets
│ │ ├── geometry_burkardt_line.inc
│ │ ├── geometry_burkardt_triangle.inc
│ │ └── geometry_by_burkardt.inc
├── GlobalData
│ ├── CMakeLists.txt
│ └── src
│ │ ├── ElementNames.txt
│ │ └── GlobalData.F90
├── Gnuplot
│ ├── CMakeLists.txt
│ └── src
│ │ └── ogpf.F90
├── Hashing
│ ├── CMakeLists.txt
│ └── src
│ │ └── Hashing32.F90
├── IndexValue
│ ├── CMakeLists.txt
│ └── src
│ │ └── IndexValue_Method.F90
├── IntVector
│ ├── CMakeLists.txt
│ └── src
│ │ ├── IntVector_AppendMethod.F90
│ │ ├── IntVector_ConstructorMethod.F90
│ │ ├── IntVector_EnquireMethod.F90
│ │ ├── IntVector_GetMethod.F90
│ │ ├── IntVector_IOMethod.F90
│ │ ├── IntVector_Method.F90
│ │ └── IntVector_SetMethod.F90
├── IterationData
│ ├── CMakeLists.txt
│ └── src
│ │ └── IterationData_Method.F90
├── Kdtree2
│ ├── CMakeLists.txt
│ └── src
│ │ ├── Kd2PQueue_Module.F90
│ │ └── Kdtree2_Module.F90
├── KeyValue
│ ├── CMakeLists.txt
│ └── src
│ │ └── KeyValue_Method.F90
├── LISInterface
│ ├── CMakeLists.txt
│ └── src
│ │ ├── LISBasic.F90
│ │ ├── LISInterface.F90
│ │ ├── LISParam.F90
│ │ └── LISVector.F90
├── Lapack
│ ├── CMakeLists.txt
│ └── src
│ │ ├── GE_CompRoutineMethods.F90
│ │ ├── GE_EigenValueMethods.F90
│ │ ├── GE_LUMethods.F90
│ │ ├── GE_Lapack_Method.F90
│ │ ├── GE_LinearSolveMethods.F90
│ │ ├── GE_SingularValueMethods.F90
│ │ ├── Lapack_Method.F90
│ │ ├── Sym_CompRoutineMethods.F90
│ │ ├── Sym_EigenValueMethods.F90
│ │ ├── Sym_LUMethods.F90
│ │ ├── Sym_Lapack_Method.F90
│ │ ├── Sym_LinearSolveMethods.F90
│ │ └── Sym_SingularValueMethods.F90
├── LuaInterface
│ ├── CMakeLists.txt
│ └── src
│ │ ├── LuaInterface.F90
│ │ └── No_LuaInterface.F90
├── Macro
│ └── vectorclass.inc
├── MassMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── MassMatrix_Method.F90
├── MdEncode
│ ├── CMakeLists.txt
│ └── src
│ │ └── MdEncode_Method.F90
├── MetisInterface
│ ├── CMakeLists.txt
│ └── src
│ │ ├── MetisInterface.F90
│ │ └── MetisInterface.inc
├── MultiIndices
│ ├── CMakeLists.txt
│ └── src
│ │ └── MultiIndices_Method.F90
├── OpenMP
│ ├── CMakeLists.txt
│ └── src
│ │ └── OpenMP_Method.F90
├── PENF
│ ├── CMakeLists.txt
│ ├── LICENSE.gpl3.md
│ └── src
│ │ ├── BCTON.inc
│ │ ├── BSTR.inc
│ │ ├── COMPACT_REAL_STRING.inc
│ │ ├── CTOA.inc
│ │ ├── STR.inc
│ │ ├── STRZ.inc
│ │ ├── STR_ASCII.inc
│ │ ├── STR_UCS4.inc
│ │ ├── penf.F90
│ │ ├── penf_b_size.F90
│ │ ├── penf_global_parameters_variables.F90
│ │ └── penf_stringify.F90
├── Polynomial
│ ├── CMakeLists.txt
│ └── src
│ │ ├── Chebyshev1PolynomialUtility.F90
│ │ ├── HexahedronInterpolationUtility.F90
│ │ ├── InterpolationUtility.F90
│ │ ├── JacobiPolynomialUtility.F90
│ │ ├── LagrangePolynomialUtility.F90
│ │ ├── LegendrePolynomialUtility.F90
│ │ ├── LineInterpolationUtility.F90
│ │ ├── LobattoPolynomialUtility.F90
│ │ ├── OrthogonalPolynomialUtility.F90
│ │ ├── PolynomialUtility.F90
│ │ ├── PrismInterpolationUtility.F90
│ │ ├── PyramidInterpolationUtility.F90
│ │ ├── QuadrangleInterpolationUtility.F90
│ │ ├── RecursiveNodesUtility.F90
│ │ ├── TetrahedronInterpolationUtility.F90
│ │ ├── TriangleInterpolationUtility.F90
│ │ ├── UltrasphericalPolynomialUtility.F90
│ │ └── UnscaledLobattoPolynomialUtility.F90
├── QuadraturePoint
│ ├── CMakeLists.txt
│ └── src
│ │ └── QuadraturePoint_Method.F90
├── Random
│ ├── CMakeLists.txt
│ └── src
│ │ └── Random_Method.F90
├── Rank2Tensor
│ ├── CMakeLists.txt
│ └── src
│ │ └── Rank2Tensor_Method.F90
├── RaylibInterface
│ ├── CMakeLists.txt
│ └── src
│ │ ├── Raylib.F90
│ │ ├── RaylibCamera.F90
│ │ ├── RaylibCheckMethods.F90
│ │ ├── RaylibDrawMethods.F90
│ │ ├── RaylibEnums.F90
│ │ ├── RaylibGenMethods.F90
│ │ ├── RaylibGetMethods.F90
│ │ ├── RaylibImageMethods.F90
│ │ ├── RaylibIsMethods.F90
│ │ ├── RaylibLoadMethods.F90
│ │ ├── RaylibMath.F90
│ │ ├── RaylibMethods.F90
│ │ ├── RaylibSetMethods.F90
│ │ ├── RaylibTypes.F90
│ │ ├── RaylibUnloadMethods.F90
│ │ ├── RaylibUtil.F90
│ │ └── __Raylib.F90
├── RealMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── RealMatrix_Method.F90
├── RealVector
│ ├── CMakeLists.txt
│ └── src
│ │ ├── RealVector_AddMethods.F90
│ │ ├── RealVector_AppendMethods.F90
│ │ ├── RealVector_AssignMethods.F90
│ │ ├── RealVector_Blas1Methods.F90
│ │ ├── RealVector_ComparisonMethods.F90
│ │ ├── RealVector_ConstructorMethods.F90
│ │ ├── RealVector_GetMethods.F90
│ │ ├── RealVector_GetValueMethods.F90
│ │ ├── RealVector_IOMethods.F90
│ │ ├── RealVector_Method.F90
│ │ ├── RealVector_Norm2ErrorMethods.F90
│ │ ├── RealVector_Norm2Methods.F90
│ │ ├── RealVector_SetMethods.F90
│ │ └── RealVector_ShallowCopyMethods.F90
├── STConvectiveMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ ├── STConvectiveMatrix_Method.F90
│ │ └── del.inc
├── STDiffusionMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── STDiffusionMatrix_Method.F90
├── STForceVector
│ ├── CMakeLists.txt
│ └── src
│ │ └── STForceVector_Method.F90
├── STMassMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── STMassMatrix_Method.F90
├── StiffnessMatrix
│ ├── CMakeLists.txt
│ └── src
│ │ └── StiffnessMatrix_Method.F90
├── String
│ ├── CMakeLists.txt
│ └── src
│ │ ├── String_Class.F90
│ │ └── String_Method.F90
├── SuperLUInterface
│ ├── CMakeLists.txt
│ └── src
│ │ ├── SuperLUInterface.F90
│ │ ├── SuperLU_Enums.F90
│ │ ├── SuperLU_Types.F90
│ │ ├── SuperLU_Util_Methods.F90
│ │ ├── SuperLU_dUtil_Methods.F90
│ │ ├── SuperLU_dgscon_Methods.F90
│ │ ├── SuperLU_dgsequ_Methods.F90
│ │ ├── SuperLU_dgsisx_Methods.F90
│ │ ├── SuperLU_dgsitrf_Methods.F90
│ │ ├── SuperLU_dgsrfs_Methods.F90
│ │ ├── SuperLU_dgssv_Methods.F90
│ │ ├── SuperLU_dgssvx_Methods.F90
│ │ ├── SuperLU_dgstrf_Methods.F90
│ │ ├── SuperLU_dgstrs_Methods.F90
│ │ ├── SuperLU_dlaqgs_Methods.F90
│ │ └── include
│ │ └── macros.inc
├── System
│ ├── CMakeLists.txt
│ └── src
│ │ ├── System_Method.F90
│ │ └── System_Method.c
├── Test
│ ├── CMakeLists.txt
│ └── src
│ │ ├── README.txt
│ │ ├── Test_Base.F90
│ │ ├── Test_Is.F90
│ │ ├── Test_Method.F90
│ │ ├── Test_More.F90
│ │ ├── Test_Planning.F90
│ │ ├── is_i.inc
│ │ └── is_r.inc
├── TriangleInterface
│ ├── CMakeLists.txt
│ └── src
│ │ ├── TriangleInterface.F90
│ │ ├── report.c
│ │ ├── triangle.c
│ │ └── triangle.h
├── Utility
│ ├── CMakeLists.txt
│ └── src
│ │ ├── AppendUtility.F90
│ │ ├── ApproxUtility.F90
│ │ ├── ArangeUtility.F90
│ │ ├── AssertUtility.F90
│ │ ├── BinomUtility.F90
│ │ ├── ContractionUtility.F90
│ │ ├── ConvertUtility.F90
│ │ ├── DiagUtility.F90
│ │ ├── EigenUtility.F90
│ │ ├── EyeUtility.F90
│ │ ├── GridPointUtility.F90
│ │ ├── HashingUtility.F90
│ │ ├── HeadUtility.F90
│ │ ├── InputUtility.F90
│ │ ├── IntegerUtility.F90
│ │ ├── InvUtility.F90
│ │ ├── LinearAlgebraUtility.F90
│ │ ├── MappingUtility.F90
│ │ ├── MatmulUtility.F90
│ │ ├── MedianUtility.F90
│ │ ├── MiscUtility.F90
│ │ ├── OnesUtility.F90
│ │ ├── PartitionUtility.F90
│ │ ├── ProductUtility.F90
│ │ ├── PushPopUtility.F90
│ │ ├── ReallocateUtility.F90
│ │ ├── SafeSizeUtility.F90
│ │ ├── SortUtility.F90
│ │ ├── SplitUtility.F90
│ │ ├── StringUtility.F90
│ │ ├── SwapUtility.F90
│ │ ├── SymUtility.F90
│ │ ├── TailUtility.F90
│ │ ├── TriagUtility.F90
│ │ ├── Utility.F90
│ │ ├── ZerosUtility.F90
│ │ └── refs
│ │ └── mathPlantFEM.inc
├── Vector3D
│ ├── CMakeLists.txt
│ └── src
│ │ └── Vector3D_Method.F90
├── VoigtRank2Tensor
│ ├── CMakeLists.txt
│ └── src
│ │ └── VoigtRank2Tensor_Method.F90
└── easifemBase
│ ├── CMakeLists.txt
│ └── src
│ └── easifemBase.F90
└── submodules
├── ARPACK
├── CMakeLists.txt
└── src
│ └── ARPACK_SAUPD@Methods.F90
├── BoundingBox
├── CMakeLists.txt
└── src
│ ├── BoundingBox_Method@ConstructorMethods.F90
│ ├── BoundingBox_Method@GetMethods.F90
│ ├── BoundingBox_Method@IOMethods.F90
│ ├── BoundingBox_Method@SetMethods.F90
│ └── BoundingBox_Method@TomlMethods.F90
├── CMakeLists.txt
├── CSRMatrix
├── CMakeLists.txt
└── src
│ ├── CSRMatrix_AddMethods@Methods.F90
│ ├── CSRMatrix_ConstructorMethods@Methods.F90
│ ├── CSRMatrix_DBCMethods@Methods.F90
│ ├── CSRMatrix_DiagonalScalingMethods@Methods.F90
│ ├── CSRMatrix_GetBlockColMethods@Methods.F90
│ ├── CSRMatrix_GetBlockRowMethods@Methods.F90
│ ├── CSRMatrix_GetColMethods@Methods.F90
│ ├── CSRMatrix_GetMethods@Methods.F90
│ ├── CSRMatrix_GetRowMethods@Methods.F90
│ ├── CSRMatrix_GetSubMatrixMethods@Methods.F90
│ ├── CSRMatrix_ILUMethods@Methods.F90
│ ├── CSRMatrix_IOMethods@Methods.F90
│ ├── CSRMatrix_LUSolveMethods@Methods.F90
│ ├── CSRMatrix_LinSolveMethods@Methods.F90
│ ├── CSRMatrix_MatVecMethods@Methods.F90
│ ├── CSRMatrix_MatrixMarketIO@Methods.F90
│ ├── CSRMatrix_ReorderingMethods@Methods.F90
│ ├── CSRMatrix_SchurMethods@Methods.F90
│ ├── CSRMatrix_SetBlockColMethods@Methods.F90
│ ├── CSRMatrix_SetBlockRowMethods@Methods.F90
│ ├── CSRMatrix_SetColMethods@Methods.F90
│ ├── CSRMatrix_SetMethods@Methods.F90
│ ├── CSRMatrix_SetRowMethods@Methods.F90
│ ├── CSRMatrix_SparsityMethods@Methods.F90
│ ├── CSRMatrix_SpectralMethods@Methods.F90
│ ├── CSRMatrix_SuperLU@Methods.F90
│ ├── CSRMatrix_SymMatmulMethods@Methods.F90
│ └── CSRMatrix_UnaryMethods@Methods.F90
├── CSRSparsity
├── CMakeLists.txt
└── src
│ ├── CSRSparsity_Method@ConstructorMethods.F90
│ ├── CSRSparsity_Method@GetMethods.F90
│ ├── CSRSparsity_Method@IOMethods.F90
│ ├── CSRSparsity_Method@SetMethods.F90
│ └── CSRSparsity_Method@SymMethods.F90
├── ConvectiveMatrix
├── CMakeLists.txt
├── ConvectiveMatrix-old
│ ├── Constructor.part
│ ├── ConvectiveMatrix_10.part
│ ├── ConvectiveMatrix_11.part
│ ├── ConvectiveMatrix_12.part
│ ├── ConvectiveMatrix_9.part
│ ├── ConvectiveMatrix_Class.f90
│ ├── MdFiles
│ │ └── ConvectiveMatrix_Class.md
│ └── MethodNames.part
└── src
│ ├── CM_1.inc
│ ├── CM_10.inc
│ ├── CM_2.inc
│ ├── CM_3.inc
│ ├── CM_4.inc
│ ├── CM_5.inc
│ ├── CM_6.inc
│ ├── CM_7.inc
│ ├── CM_8.inc
│ ├── CM_9.inc
│ └── ConvectiveMatrix_Method@Methods.F90
├── DOF
├── CMakeLists.txt
└── src
│ ├── DOF_AddMethods@Methods.F90
│ ├── DOF_ConstructorMethods@Methods.F90
│ ├── DOF_GetMethods@Methods.F90
│ ├── DOF_GetValueMethods@Methods.F90
│ ├── DOF_IOMethods@Methods.F90
│ └── DOF_SetMethods@Methods.F90
├── DiffusionMatrix
├── CMakeLists.txt
└── src
│ ├── DM_1.inc
│ ├── DM_10.inc
│ ├── DM_2.inc
│ ├── DM_3.inc
│ ├── DM_4.inc
│ ├── DM_5.inc
│ ├── DM_6.inc
│ ├── DM_7.inc
│ ├── DM_8.inc
│ ├── DM_9.inc
│ └── DiffusionMatrix_Method@Methods.F90
├── ElasticNitscheMatrix
├── CMakeLists.txt
└── src
│ ├── ElasticNitscheMatrix_Method@Matrix1.F90
│ ├── ElasticNitscheMatrix_Method@Matrix2.F90
│ ├── ElasticNitscheMatrix_Method@Matrix3.F90
│ ├── ElasticNitscheMatrix_Method@MatrixNormal.F90
│ └── ElasticNitscheMatrix_Method@MatrixTangent.F90
├── ElemshapeData
├── CMakeLists.txt
└── src
│ ├── DG
│ ├── ElemshapeData_DGMethods@HermitMethods.F90
│ ├── ElemshapeData_DGMethods@HierarchyMethods.F90
│ ├── ElemshapeData_DGMethods@LagrangeMethods.F90
│ ├── ElemshapeData_DGMethods@OrthogonalMethods.F90
│ └── ElemshapeData_DGMethods@SerendipityMethods.F90
│ ├── ElemshapeData_ConstructorMethods@Methods.F90
│ ├── ElemshapeData_DivergenceMethods@Methods.F90
│ ├── ElemshapeData_GetMethods@Methods.F90
│ ├── ElemshapeData_GradientMethods@Methods.F90
│ ├── ElemshapeData_HRGNParamMethods@Methods.F90
│ ├── ElemshapeData_HRQIParamMethods@Methods.F90
│ ├── ElemshapeData_HminHmaxMethods@Methods.F90
│ ├── ElemshapeData_IOMethods@Methods.F90
│ ├── ElemshapeData_InterpolMethods@Methods.F90
│ ├── ElemshapeData_LocalDivergenceMethods@Methods.F90
│ ├── ElemshapeData_LocalGradientMethods@Methods.F90
│ ├── ElemshapeData_ProjectionMethods@Methods.F90
│ ├── ElemshapeData_SetMethods@Methods.F90
│ ├── ElemshapeData_StabilizationParamMethods@SUGN3.F90
│ ├── ElemshapeData_StabilizationParamMethods@SUPG.F90
│ ├── ElemshapeData_StabilizationParamMethods@Takizawa2018.F90
│ ├── ElemshapeData_UnitNormalMethods@Methods.F90
│ ├── H1
│ ├── ElemshapeData_H1Methods@HermitMethods.F90
│ ├── ElemshapeData_H1Methods@HierarchyMethods.F90
│ ├── ElemshapeData_H1Methods@LagrangeMethods.F90
│ ├── ElemshapeData_H1Methods@OrthogonalMethods.F90
│ └── ElemshapeData_H1Methods@SerendipityMethods.F90
│ ├── HCurl
│ ├── ElemshapeData_HCurlMethods@HermitMethods.F90
│ ├── ElemshapeData_HCurlMethods@HierarchyMethods.F90
│ ├── ElemshapeData_HCurlMethods@LagrangeMethods.F90
│ ├── ElemshapeData_HCurlMethods@OrthogonalMethods.F90
│ └── ElemshapeData_HCurlMethods@SerendipityMethods.F90
│ └── HDiv
│ ├── ElemshapeData_HDivMethods@HermitMethods.F90
│ ├── ElemshapeData_HDivMethods@HierarchyMethods.F90
│ ├── ElemshapeData_HDivMethods@LagrangeMethods.F90
│ ├── ElemshapeData_HDivMethods@OrthogonalMethods.F90
│ └── ElemshapeData_HDivMethods@SerendipityMethods.F90
├── FEMatrix
└── src
│ └── STCM
│ └── STCM_1.inc
├── FEVariable
├── CMakeLists.txt
└── src
│ ├── FEVariable_Method@AbsMethods.F90
│ ├── FEVariable_Method@AdditionMethods.F90
│ ├── FEVariable_Method@ConstructorMethods.F90
│ ├── FEVariable_Method@DivisionMethods.F90
│ ├── FEVariable_Method@DotProductMethods.F90
│ ├── FEVariable_Method@EqualMethods.F90
│ ├── FEVariable_Method@GetMethods.F90
│ ├── FEVariable_Method@IOMethods.F90
│ ├── FEVariable_Method@MeanMethods.F90
│ ├── FEVariable_Method@MultiplicationMethods.F90
│ ├── FEVariable_Method@Norm2Methods.F90
│ ├── FEVariable_Method@PowerMethods.F90
│ ├── FEVariable_Method@SqrtMethods.F90
│ ├── FEVariable_Method@SubtractionMethods.F90
│ ├── MatrixElemMethod.inc
│ ├── MatrixOperatorMatrix.inc
│ ├── MatrixOperatorReal.inc
│ ├── MatrixOperatorScalar.inc
│ ├── MatrixPower.inc
│ ├── RealOperatorMatrix.inc
│ ├── RealOperatorScalar.inc
│ ├── RealOperatorVector.inc
│ ├── ScalarElemMethod.inc
│ ├── ScalarOperatorMatrix.inc
│ ├── ScalarOperatorReal.inc
│ ├── ScalarOperatorScalar.inc
│ ├── ScalarOperatorVector.inc
│ ├── ScalarPower.inc
│ ├── VectorElemMethod.inc
│ ├── VectorOperatorReal.inc
│ ├── VectorOperatorScalar.inc
│ ├── VectorOperatorVector.inc
│ └── VectorPower.inc
├── FacetMatrix
├── CMakeLists.txt
└── src
│ ├── FacetMatrix_Method@FacetMatrix11Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix12Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix13Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix14Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix15Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix1Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix21Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix22Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix2Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix3Methods.F90
│ ├── FacetMatrix_Method@FacetMatrix4Methods.F90
│ └── FacetMatrix_Method@FacetMatrix5Methods.F90
├── ForceVector
├── CMakeLists.txt
└── src
│ └── ForceVector_Method@Methods.F90
├── Geometry
├── CMakeLists.txt
└── src
│ ├── Line_Method@Methods.F90
│ ├── Plane_Method@Methods.F90
│ ├── ReferenceElement_Method@ConstructorMethods.F90
│ ├── ReferenceElement_Method@ElementNameMethods.F90
│ ├── ReferenceElement_Method@EnquireMethods.F90
│ ├── ReferenceElement_Method@FacetElementMethods.F90
│ ├── ReferenceElement_Method@GeometryMethods.F90
│ ├── ReferenceElement_Method@IOMethods.F90
│ ├── ReferenceElement_Method@LocalNodeCoordsMethods.F90
│ ├── ReferenceElement_Method@VTKMethods.F90
│ ├── ReferenceHexahedron_Method@Methods.F90
│ ├── ReferenceLine_Method@Methods.F90
│ ├── ReferencePoint_Method@Methods.F90
│ ├── ReferencePrism_Method@Methods.F90
│ ├── ReferencePyramid_Method@Methods.F90
│ ├── ReferenceQuadrangle_Method@Methods.F90
│ ├── ReferenceTetrahedron_Method@Methods.F90
│ ├── ReferenceTriangle_Method@Methods.F90
│ ├── Triangle_Method@Methods.F90
│ ├── inc
│ └── aux.inc
│ └── modified_burkardt.inc
├── Hashing
├── CMakeLists.txt
└── src
│ ├── Hashing32@fnvMethods.F90
│ ├── Hashing32@nmMethods.F90
│ ├── Hashing32@waterMethods.F90
│ └── delme.F90
├── IndexValue
├── CMakeLists.txt
└── src
│ └── IndexValue_Method@Constructor.F90
├── IntVector
├── CMakeLists.txt
└── src
│ ├── IntVector_AppendMethod@Methods.F90
│ ├── IntVector_ConstructorMethod@Methods.F90
│ ├── IntVector_EnquireMethod@Methods.F90
│ ├── IntVector_GetMethod@Methods.F90
│ ├── IntVector_IOMethod@Methods.F90
│ ├── IntVector_SetMethod@Methods.F90
│ └── include
│ ├── intvec_get_10.inc
│ ├── intvec_get_11.inc
│ ├── intvec_get_12.inc
│ └── intvec_get_13.inc
├── IterationData
├── CMakeLists.txt
└── src
│ ├── IterationData_Method@ConstructorMethods.F90
│ └── IterationData_Method@IOMethods.F90
├── KeyValue
├── CMakeLists.txt
└── src
│ ├── KeyValue_Method@Constructor.F90
│ ├── KeyValue_Method@getMethod.F90
│ └── KeyValue_Method@setMethod.F90
├── Lapack
├── CMakeLists.txt
└── src
│ ├── GE_CompRoutineMethods@Methods.F90
│ ├── GE_EigenValueMethods@Methods.F90
│ ├── GE_LUMethods@Methods.F90
│ ├── GE_Lapack_Method@CompRoutineMethods.F90
│ ├── GE_Lapack_Method@EigenvalueMethods.F90
│ ├── GE_Lapack_Method@LUMethods.F90
│ ├── GE_Lapack_Method@LinearSolveMethods.F90
│ ├── GE_LinearSolveMethods@Methods.F90
│ ├── GE_SingularValueMethods@Methods.F90
│ ├── Sym_CompRoutineMethods@Methods.F90
│ ├── Sym_EigenValueMethods@Methods.F90
│ ├── Sym_LUMethods@Methods.F90
│ ├── Sym_Lapack_Method@LUMethods.F90
│ ├── Sym_Lapack_Method@LinearSolveMethods.F90
│ ├── Sym_LinearSolveMethods@Methods.F90
│ └── Sym_SingularValueMethods@Methods.F90
├── MassMatrix
├── CMakeLists.txt
└── src
│ ├── MM_1.inc
│ ├── MM_2a.inc
│ ├── MM_2b.inc
│ ├── MM_2c.inc
│ ├── MM_2d.inc
│ ├── MM_3.inc
│ └── MassMatrix_Method@Methods.F90
├── MdEncode
├── CMakeLists.txt
└── src
│ ├── MdEncode_Method@Methods.F90
│ └── inc
│ ├── MdEncode_2.inc
│ ├── MdEncode_3.inc
│ ├── MdEncode_3b.inc
│ ├── MdEncode_6.inc
│ └── MdEncode_7.inc
├── MultiIndices
├── CMakeLists.txt
└── src
│ └── MultiIndices_Method@Methods.F90
├── OpenMP
├── CMakeLists.txt
└── src
│ └── OpenMP_Method@Constructor.F90
├── Polynomial
├── CMakeLists.txt
└── src
│ ├── Chebyshev1PolynomialUtility@Methods.F90
│ ├── EquidistanceLIP_Tetrahedron.inc
│ ├── EquidistanceLIP_Triangle.inc
│ ├── HexahedronInterpolationUtility@Methods.F90
│ ├── InterpolationUtility@Methods.F90
│ ├── JacobiPolynomialUtility@Methods.F90
│ ├── LagrangePolynomialUtility@Methods.F90
│ ├── LegendrePolynomialUtility@Methods.F90
│ ├── LineInterpolationUtility@Methods.F90
│ ├── LobattoPolynomialUtility@Methods.F90
│ ├── OrthogonalPolynomialUtility@Methods.F90
│ ├── PrismInterpolationUtility@Methods.F90
│ ├── PyramidInterpolationUtility@Methods.F90
│ ├── QuadrangleInterpolationUtility@Methods.F90
│ ├── QuadraturePoint_Tetrahedron_Solin.F90
│ ├── QuadraturePoint_Triangle_InternalUseOnly.F90
│ ├── QuadraturePoint_Triangle_Solin.F90
│ ├── RecursiveNodesUtility@Methods.F90
│ ├── TetrahedronInterpolationUtility@Methods.F90
│ ├── TriangleInterpolationUtility@HeirarchicalBasisMethods.F90
│ ├── TriangleInterpolationUtility@LagrangeBasisMethods.F90
│ ├── TriangleInterpolationUtility@Methods.F90
│ ├── TriangleInterpolationUtility@OrthogonalBasisMethods.F90
│ ├── TriangleInterpolationUtility@QuadratureMethods.F90
│ ├── UltrasphericalPolynomialUtility@Methods.F90
│ ├── UnscaledLobattoPolynomialUtility@Methods.F90
│ ├── deprecated
│ └── TriangleInterpolationUtility@Methods.F90
│ └── include
│ └── Quadrangle
│ ├── edge_12.inc
│ ├── edge_14.inc
│ ├── edge_21.inc
│ ├── edge_23.inc
│ ├── edge_32.inc
│ ├── edge_34.inc
│ ├── edge_41.inc
│ ├── edge_43.inc
│ ├── vertex_1.inc
│ ├── vertex_2.inc
│ ├── vertex_3.inc
│ └── vertex_4.inc
├── QuadraturePoint
├── CMakeLists.txt
└── src
│ ├── QuadraturePoint_Method@ConstructorMethods.F90
│ ├── QuadraturePoint_Method@GetMethods.F90
│ └── QuadraturePoint_Method@IOMethods.F90
├── Random
├── CMakeLists.txt
└── src
│ └── Random_Method@Methods.F90
├── Rank2Tensor
├── CMakeLists.txt
└── src
│ ├── Rank2Tensor_Method@ConstructorMethods.F90
│ ├── Rank2Tensor_Method@ContractionMethods.F90
│ ├── Rank2Tensor_Method@IOMethods.F90
│ ├── Rank2Tensor_Method@InvarMethods.F90
│ ├── Rank2Tensor_Method@OperatorMethods.F90
│ ├── Rank2Tensor_Method@PullbackMethods.F90
│ ├── Rank2Tensor_Method@PushForwardMethods.F90
│ ├── matrix_exponential.F90
│ └── old data
│ ├── ContinuumSpin
│ └── ContinuumSpin_Class.F90
│ ├── DeformationGradient
│ ├── DeformationGradient_Class.F90
│ ├── DeformationTensor.part
│ ├── Display.part
│ ├── MdFiles
│ │ └── DeformationGradient_Class.md
│ └── StrainTensor.part
│ ├── Interface.part
│ ├── LeftCauchyGreen
│ └── LeftCauchyGreen_Class.F90
│ ├── MaterialJacobian
│ ├── Display.part
│ ├── Initiate.part
│ ├── MaterialJacobian.part
│ ├── MaterialJacobian_Class.F90
│ ├── MaterialJacobian_Pointer.part
│ ├── MdFiles
│ │ └── MaterialJacobian_Class.md
│ ├── Names.part
│ ├── OperatorOverloading
│ │ ├── Addition.part
│ │ ├── Asterics.part
│ │ ├── Cijkl.part
│ │ ├── Contraction.part
│ │ ├── Matmul.part
│ │ └── Subtraction.part
│ └── getCijkl.part
│ ├── MdFiles
│ └── Tensor_Class.md
│ ├── Old_Rank4Tensors.part
│ ├── Old_StrainMeasures.part
│ ├── Old_getCDash.part
│ ├── Old_getCSigmaTruesdell.part
│ ├── OperatorInterface.part
│ ├── OperatorOverloading
│ ├── Addition.part
│ ├── Asterics.part
│ ├── Determinant.part
│ ├── Inverse.part
│ ├── MatMul.part
│ ├── Otimes.part
│ └── Transpose.part
│ ├── RightCauchyGreen
│ └── RightCauchyGreen_Class.F90
│ ├── Strain
│ ├── AlmansiStrain_Class.F90
│ ├── GreenStrain_Class.F90
│ ├── SmallStrain_Class.F90
│ └── Strain_Class.F90
│ ├── StrainRate
│ └── StrainRate_Class.F90
│ ├── Stress
│ ├── CauchyStress.part
│ ├── Constructor.part
│ ├── Display.part
│ ├── EshelbyStress.part
│ ├── Interface.part
│ ├── KirchhoffStress.part
│ ├── MdFiles
│ │ └── Stress_Class.md
│ ├── OperatorOverloading
│ │ ├── Addition.part
│ │ ├── Assignment.part
│ │ ├── Asterics.part
│ │ ├── Invariant.part
│ │ ├── Matmul.part
│ │ ├── Otimes.part
│ │ └── Shape.part
│ ├── Pk1Stress.part
│ ├── Pk2Stress.part
│ ├── SpectralDecomposition.part
│ ├── StressType.part
│ ├── Stress_Class.F90
│ ├── TensorDecomposition.part
│ └── getStress.part
│ ├── Stress_Old
│ ├── Initiate.part
│ ├── Invariants.part
│ ├── StressDecomposition.part
│ ├── StressDerivatives.part
│ ├── Stress_Class.F90
│ ├── getHillTensor.part
│ ├── getLength.part
│ ├── getSigma.part
│ └── setSigma.part
│ ├── Tensor.F90
│ └── VelocityGradient
│ └── VelocityGradient_Class.F90
├── RealMatrix
├── CMakeLists.txt
└── src
│ ├── RealMatrix_Method@BLASMethods.F90
│ ├── RealMatrix_Method@ConstructorMethods.F90
│ ├── RealMatrix_Method@GetValuesMethods.F90
│ ├── RealMatrix_Method@IOMethods.F90
│ ├── RealMatrix_Method@IterativeSolverMethods.F90
│ ├── RealMatrix_Method@LAPACKMethods.F90
│ ├── RealMatrix_Method@MatmulMethods.F90
│ └── RealMatrix_Method@SetValuesMethods.F90
├── RealVector
├── CMakeLists.txt
└── src
│ ├── RealVector_AddMethods@Methods.F90
│ ├── RealVector_AppendMethods@Methods.F90
│ ├── RealVector_AssignMethods@Methods.F90
│ ├── RealVector_Blas1Methods@Methods.F90
│ ├── RealVector_ComparisonMethods@Methods.F90
│ ├── RealVector_ConstructorMethods@Methods.F90
│ ├── RealVector_GetMethods@Methods.F90
│ ├── RealVector_GetValueMethods@Methods.F90
│ ├── RealVector_IOMethods@Methods.F90
│ ├── RealVector_Norm2ErrorMethods@Methods.F90
│ ├── RealVector_Norm2Methods@Methods.F90
│ ├── RealVector_SetMethods@Methods.F90
│ ├── RealVector_ShallowCopyMethods@Methods.F90
│ └── Save_hdf5.F90
├── STConvectiveMatrix
├── CMakeLists.txt
├── STConvectiveMatrix-old
│ ├── Constructor.part
│ ├── ConvectiveMatrix_10.part
│ ├── ConvectiveMatrix_11.part
│ ├── ConvectiveMatrix_12.part
│ ├── ConvectiveMatrix_13.part
│ ├── ConvectiveMatrix_14.part
│ ├── ConvectiveMatrix_15.part
│ ├── ConvectiveMatrix_16.part
│ ├── ConvectiveMatrix_17.part
│ ├── ConvectiveMatrix_18.part
│ ├── ConvectiveMatrix_19.part
│ ├── ConvectiveMatrix_20.part
│ ├── ConvectiveMatrix_21.part
│ ├── ConvectiveMatrix_22.part
│ ├── ConvectiveMatrix_23.part
│ ├── ConvectiveMatrix_24.part
│ ├── ConvectiveMatrix_25.part
│ ├── ConvectiveMatrix_26.part
│ ├── ConvectiveMatrix_27.part
│ ├── ConvectiveMatrix_28.part
│ ├── ConvectiveMatrix_29.part
│ ├── ConvectiveMatrix_30.part
│ ├── ConvectiveMatrix_31.part
│ ├── ConvectiveMatrix_32.part
│ ├── ConvectiveMatrix_33.part
│ ├── ConvectiveMatrix_34.part
│ ├── ConvectiveMatrix_35.part
│ ├── ConvectiveMatrix_36.part
│ ├── ConvectiveMatrix_37.part
│ ├── ConvectiveMatrix_38.part
│ ├── ConvectiveMatrix_39.part
│ ├── ConvectiveMatrix_9.part
│ ├── MdFiles
│ │ └── STConvectiveMatrix_Class.md
│ ├── MethodNames.part
│ └── STConvectiveMatrix_Class.f90
└── src
│ ├── STCM_1.inc
│ ├── STCM_10.inc
│ ├── STCM_11.inc
│ ├── STCM_12.inc
│ ├── STCM_13.inc
│ ├── STCM_14.inc
│ ├── STCM_15.inc
│ ├── STCM_16.inc
│ ├── STCM_17.inc
│ ├── STCM_2.inc
│ ├── STCM_3.inc
│ ├── STCM_4.inc
│ ├── STCM_5.inc
│ ├── STCM_6.inc
│ ├── STCM_7.inc
│ ├── STCM_8.inc
│ ├── STCM_9.inc
│ └── STConvectiveMatrix_Method@Methods.F90
├── STDiffusionMatrix
├── CMakeLists.txt
├── STDiffusionMatrix-old
│ ├── Constructor.part
│ ├── DiffusionMatrix_1.part
│ ├── DiffusionMatrix_10.part
│ ├── DiffusionMatrix_11.part
│ ├── DiffusionMatrix_12.part
│ ├── DiffusionMatrix_13.part
│ ├── DiffusionMatrix_14.part
│ ├── DiffusionMatrix_15.part
│ ├── DiffusionMatrix_16.part
│ ├── DiffusionMatrix_17.part
│ ├── DiffusionMatrix_18.part
│ ├── DiffusionMatrix_19.part
│ ├── DiffusionMatrix_2.part
│ ├── DiffusionMatrix_20.part
│ ├── DiffusionMatrix_21.part
│ ├── DiffusionMatrix_22.part
│ ├── DiffusionMatrix_23.part
│ ├── DiffusionMatrix_24.part
│ ├── DiffusionMatrix_25.part
│ ├── DiffusionMatrix_26.part
│ ├── DiffusionMatrix_27.part
│ ├── DiffusionMatrix_28.part
│ ├── DiffusionMatrix_29.part
│ ├── DiffusionMatrix_3.part
│ ├── DiffusionMatrix_30.part
│ ├── DiffusionMatrix_31.part
│ ├── DiffusionMatrix_4.part
│ ├── DiffusionMatrix_5.part
│ ├── DiffusionMatrix_6.part
│ ├── DiffusionMatrix_7.part
│ ├── DiffusionMatrix_8.part
│ ├── DiffusionMatrix_9.part
│ ├── MethodNames.part
│ ├── STDiffusionMatrix_Class.f90
│ └── STDiffusionMatrix_Class.md
└── src
│ ├── STDM_1.inc
│ ├── STDM_11.inc
│ ├── STDM_12.inc
│ ├── STDM_13.inc
│ ├── STDM_14.inc
│ ├── STDM_2.inc
│ ├── STDM_3.inc
│ ├── STDM_4.inc
│ ├── STDM_5.inc
│ ├── STDM_6.inc
│ ├── STDM_7.inc
│ ├── STDM_8.inc
│ └── STDiffusionMatrix_Method@Methods.F90
├── STFextVector
├── Constructor.part
├── FextVector_1.part
├── FextVector_10.part
├── FextVector_11.part
├── FextVector_12.part
├── FextVector_13.part
├── FextVector_14.part
├── FextVector_15.part
├── FextVector_16.part
├── FextVector_17.part
├── FextVector_18.part
├── FextVector_19.part
├── FextVector_2.part
├── FextVector_20.part
├── FextVector_21.part
├── FextVector_22.part
├── FextVector_23.part
├── FextVector_24.part
├── FextVector_25.part
├── FextVector_26.part
├── FextVector_3.part
├── FextVector_4.part
├── FextVector_5.part
├── FextVector_6.part
├── FextVector_7.part
├── FextVector_8.part
├── FextVector_9.part
├── MdFiles
│ └── STFextVector_Class.md
├── MethodNames.part
├── STFextVector_Class.f90
└── delme.f90
├── STFintVector
├── Constructor.part
├── FintVector_1.part
├── FintVector_2.part
├── FintVector_3.part
├── FintVector_4.part
├── FintVector_5.part
├── FintVector_6.part
├── FintVector_7.part
├── FintVector_8.part
├── MdFiles
│ └── STFintVector_Class.md
├── MethodNames.part
└── STFintVector_Class.f90
├── STForceVector
├── CMakeLists.txt
└── src
│ ├── STFV_1.inc
│ ├── STFV_10.inc
│ ├── STFV_11.inc
│ ├── STFV_12.inc
│ ├── STFV_13.inc
│ ├── STFV_14.inc
│ ├── STFV_15.inc
│ ├── STFV_16.inc
│ ├── STFV_17.inc
│ ├── STFV_18.inc
│ ├── STFV_19.inc
│ ├── STFV_2.inc
│ ├── STFV_20.inc
│ ├── STFV_21.inc
│ ├── STFV_3.inc
│ ├── STFV_4.inc
│ ├── STFV_5.inc
│ ├── STFV_6.inc
│ ├── STFV_7.inc
│ ├── STFV_8.inc
│ ├── STFV_9.inc
│ └── STForceVector_Method@Methods.F90
├── STMassMatrix
├── CMakeLists.txt
├── STMassMatrix-old
│ ├── Constructor.part
│ ├── MassMatrix_15.part
│ ├── MassMatrix_16.part
│ ├── MassMatrix_17.part
│ ├── MassMatrix_18.part
│ ├── MassMatrix_3.part
│ └── STMassMatrix_Class.md
└── src
│ ├── STMM_1.inc
│ ├── STMM_10.inc
│ ├── STMM_10a.inc
│ ├── STMM_10b.inc
│ ├── STMM_10c.inc
│ ├── STMM_10d.inc
│ ├── STMM_11.inc
│ ├── STMM_11a.inc
│ ├── STMM_11b.inc
│ ├── STMM_11c.inc
│ ├── STMM_11d.inc
│ ├── STMM_12.inc
│ ├── STMM_12a.inc
│ ├── STMM_12b.inc
│ ├── STMM_12c.inc
│ ├── STMM_12d.inc
│ ├── STMM_13.inc
│ ├── STMM_14.inc
│ ├── STMM_15.inc
│ ├── STMM_16.inc
│ ├── STMM_17.inc
│ ├── STMM_17_20.inc
│ ├── STMM_18.inc
│ ├── STMM_19.inc
│ ├── STMM_2.inc
│ ├── STMM_20.inc
│ ├── STMM_21.inc
│ ├── STMM_21a.inc
│ ├── STMM_21b.inc
│ ├── STMM_21c.inc
│ ├── STMM_21d.inc
│ ├── STMM_22.inc
│ ├── STMM_22a.inc
│ ├── STMM_22b.inc
│ ├── STMM_22c.inc
│ ├── STMM_22d.inc
│ ├── STMM_23.inc
│ ├── STMM_23a.inc
│ ├── STMM_23b.inc
│ ├── STMM_23c.inc
│ ├── STMM_23d.inc
│ ├── STMM_24.inc
│ ├── STMM_24a.inc
│ ├── STMM_24b.inc
│ ├── STMM_24c.inc
│ ├── STMM_24d.inc
│ ├── STMM_25.inc
│ ├── STMM_26.inc
│ ├── STMM_27.inc
│ ├── STMM_28.inc
│ ├── STMM_3.inc
│ ├── STMM_4.inc
│ ├── STMM_5.inc
│ ├── STMM_6.inc
│ ├── STMM_7.inc
│ ├── STMM_8.inc
│ ├── STMM_9.inc
│ ├── STMM_9a.inc
│ ├── STMM_9b.inc
│ ├── STMM_9c.inc
│ ├── STMM_9d.inc
│ └── STMassMatrix_Method@Methods.F90
├── STStiffnessMatrix
├── Constructor.part
├── MdFiles
│ └── STStiffnessMatrix_Class.md
├── MethodNames.part
├── STStiffnessMatrix_Class.f90
├── StiffnessMatrix_1.part
├── StiffnessMatrix_10.part
├── StiffnessMatrix_11.part
├── StiffnessMatrix_12.part
├── StiffnessMatrix_13.part
├── StiffnessMatrix_14.part
├── StiffnessMatrix_2.part
├── StiffnessMatrix_3.part
├── StiffnessMatrix_4.part
├── StiffnessMatrix_5.part
├── StiffnessMatrix_6.part
├── StiffnessMatrix_7.part
├── StiffnessMatrix_8.part
└── StiffnessMatrix_9.part
├── ST_Tau_SUPG_RGN
├── Constructor.part
├── MdFiles
│ ├── ._ST_TAU_SUPG_RGN_Class.md
│ └── ST_TAU_SUPG_RGN_Class.md
├── MethodNamesForScalar.part
├── MethodNamesForVector.part
├── ST_Tau_SUPG_RGN_Class.f90
├── SUPG_Scalar_1.part
├── SUPG_Scalar_10.part
├── SUPG_Scalar_11.part
├── SUPG_Scalar_12.part
├── SUPG_Scalar_2.bk
├── SUPG_Scalar_2.part
├── SUPG_Scalar_3.part
├── SUPG_Scalar_4.part
├── SUPG_Scalar_5.part
├── SUPG_Scalar_6.part
├── SUPG_Scalar_7.part
├── SUPG_Scalar_8.part
├── SUPG_Scalar_9.part
├── SUPG_Vector_1.part
├── SUPG_Vector_10.part
├── SUPG_Vector_11.part
├── SUPG_Vector_12.part
├── SUPG_Vector_2.part
├── SUPG_Vector_3.part
├── SUPG_Vector_4.part
├── SUPG_Vector_5.part
├── SUPG_Vector_6.part
├── SUPG_Vector_7.part
├── SUPG_Vector_8.part
└── SUPG_Vector_9.part
├── StiffnessMatrix
├── CMakeLists.txt
└── src
│ └── StiffnessMatrix_Method@Methods.F90
├── TriangleInterface
├── CMakeLists.txt
└── src
│ ├── TriangleInterface@Methods.F90
│ ├── definemacro.h
│ └── undefinemacro.h
├── Utility
├── CMakeLists.txt
└── src
│ ├── Append
│ ├── Append_1.inc
│ ├── Append_1cd.inc
│ ├── Append_2.inc
│ ├── Append_2abcd.inc
│ ├── Append_2cd.inc
│ ├── Append_3.inc
│ ├── Append_3cd.inc
│ ├── Append_4.inc
│ └── Append_4cd.inc
│ ├── AppendUtility@Methods.F90
│ ├── ApproxUtility@Methods.F90
│ ├── ArangeUtility@Methods.F90
│ ├── AssertUtility@Methods.F90
│ ├── BinomUtility@Methods.F90
│ ├── ColConcat
│ ├── ColConcat_1.inc
│ ├── ColConcat_2.inc
│ ├── ColConcat_3.inc
│ └── ColConcat_4.inc
│ ├── ContractionUtility@Methods.F90
│ ├── ConvertUtility@Methods.F90
│ ├── Diag
│ ├── SetDiag.inc
│ ├── SetTriDiag.inc
│ └── Tridiag.inc
│ ├── DiagUtility@Methods.F90
│ ├── EigenUtility@Methods.F90
│ ├── Expand
│ ├── Expand.inc
│ └── ExpandMatrix.inc
│ ├── EyeUtility@Methods.F90
│ ├── GridPointUtility@Methods.F90
│ ├── HashingUtility@Methods.F90
│ ├── HeadUtility@Methods.F90
│ ├── HeapSort
│ ├── ArgHeapSort.inc
│ └── HeapSort.inc
│ ├── In
│ ├── In_1.inc
│ └── IsIn_1.inc
│ ├── Input
│ └── Input1.inc
│ ├── InputUtility@Methods.F90
│ ├── InsertionSort
│ ├── ArgInsertionSort.inc
│ └── InsertionSort.inc
│ ├── IntegerUtility@Methods.F90
│ ├── Intersection
│ └── Intersection.inc
│ ├── IntroSort
│ ├── ArgIntroSort.inc
│ ├── IntroSort.inc
│ ├── Recursive_ArgIntroSort.inc
│ └── Recursive_IntroSort.inc
│ ├── InvUtility@Methods.F90
│ ├── LinearAlgebraUtility@Methods.F90
│ ├── MappingUtility@Methods.F90
│ ├── MatmulUtility@Methods.F90
│ ├── Median
│ ├── ArgMedian.inc
│ └── Median.inc
│ ├── MedianUtility@Methods.F90
│ ├── MiscUtility@Methods.F90
│ ├── OnesUtility@Methods.F90
│ ├── Partition
│ ├── ArgPartition.inc
│ └── Partition.inc
│ ├── PartitionUtility@Methods.F90
│ ├── ProductUtility@Methods.F90
│ ├── PushPop
│ ├── Pop_Scalar.inc
│ └── Push_Scalar.inc
│ ├── PushPopUtility@Methods.F90
│ ├── QuickSort
│ ├── QuickSort1Vec.inc
│ ├── QuickSort2Vec.inc
│ ├── QuickSort3Vec.inc
│ └── QuickSort4Vec.inc
│ ├── ReallocateUtility@Methods.F90
│ ├── RemoveDuplicates
│ ├── RemoveDuplicates_1.inc
│ └── RemoveDuplicates_2.inc
│ ├── Repeat
│ └── Repeat_1.inc
│ ├── RowConcat
│ ├── RowConcat_1.inc
│ ├── RowConcat_2.inc
│ ├── RowConcat_3.inc
│ └── RowConcat_4.inc
│ ├── SafeSizeUtility@Methods.F90
│ ├── Sort
│ ├── ArgSort.inc
│ └── Sort.inc
│ ├── SortUtility@Methods.F90
│ ├── SplitUtility@Methods.F90
│ ├── StringUtility@Methods.F90
│ ├── SwapUtility@Methods.F90
│ ├── Sym
│ ├── GetSym.inc
│ └── Sym.inc
│ ├── SymUtility@Methods.F90
│ ├── TailUtility@Methods.F90
│ ├── Triag
│ ├── GetTril1.inc
│ ├── GetTril2.inc
│ ├── GetTriu1.inc
│ ├── GetTriu2.inc
│ ├── SetTril1.inc
│ ├── SetTril2.inc
│ ├── SetTril3.inc
│ ├── SetTriu1.inc
│ ├── SetTriu2.inc
│ ├── SetTriu3.inc
│ ├── Tril1.inc
│ ├── Tril2.inc
│ ├── Triu1.inc
│ └── Triu2.inc
│ ├── TriagUtility@Methods.F90
│ ├── ZerosUtility@Methods.F90
│ └── inc
│ ├── EquidistanceLIP_Tetrahedron.inc
│ └── EquidistanceLIP_Triangle.inc
├── Vector
└── ToDo
│ └── VectorOperations.part
├── Vector3D
├── CMakeLists.txt
├── Vector3D_Method@Misc.F90
└── src
│ ├── Vector3D_Method@Constructor.F90
│ └── Vector3D_Method@Misc.F90
└── VoigtRank2Tensor
├── CMakeLists.txt
└── src
├── VoigtRank2Tensor_Method@Constructor.F90
└── VoigtRank2Tensor_Method@IO.F90
/.fortls:
--------------------------------------------------------------------------------
1 | {
2 | "source_dirs": [
3 | "src/**"
4 | ],
5 | "excl_suffixes": [
6 | "_skip.F90",
7 | ".bk",
8 | ".ignore"
9 | ],
10 | "pp_suffixes": [
11 | ".F90",
12 | ".inc",
13 | ".part",
14 | ".f90"
15 | ],
16 | "pp_defs": {},
17 | "include_dirs": [],
18 | "ext_source_dirs": [],
19 | "lowercase_intrinsics": false,
20 | "debug_log": false,
21 | "disable_diagnostics": false,
22 | "sort_keywords": false,
23 | "use_signature_help": true,
24 | "hover_signature": true,
25 | "hover_language": "fortran",
26 | "enable_code_actions": false,
27 | "symbol_skip_mem": false
28 | }
29 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitconfig:
--------------------------------------------------------------------------------
1 | # This is Git's per-user configuration file.
2 | [user]
3 | # Please adapt and uncomment the following lines:
4 | name = Vikas Sharma
5 | email = vickysharma0812@gmail.com
6 |
--------------------------------------------------------------------------------
/.github/.pr-labeler.yml:
--------------------------------------------------------------------------------
1 | utility: utility/*
2 | sparsematrix: sparsematrix/*
3 | working: ['working/*', 'work/*']
4 | linalg: ['sparsematrix/*', 'sparse/*', 'monolish/*', 'blas/*', 'lapack/*']
5 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: 'wishlist'
6 | 'inspiration'
7 | assignees: ''
8 |
9 | ---
10 |
11 | **Describe the bug**
12 | A clear and concise description of what the bug is.
13 |
14 | **To Reproduce**
15 | Steps to reproduce the behavior:
16 | 1. Go to '...'
17 | 2. Click on '....'
18 | 3. Scroll down to '....'
19 | 4. See error
20 |
21 | **Expected behavior**
22 | A clear and concise description of what you expected to happen.
23 |
24 | **Screenshots**
25 | If applicable, add screenshots to help explain your problem.
26 |
27 | **Desktop (please complete the following information):**
28 | - OS: [e.g. iOS]
29 | - Browser [e.g. chrome, safari]
30 | - Version [e.g. 22]
31 |
32 | **Smartphone (please complete the following information):**
33 | - Device: [e.g. iPhone6]
34 | - OS: [e.g. iOS8.1]
35 | - Browser [e.g. stock browser, safari]
36 | - Version [e.g. 22]
37 |
38 | **Additional context**
39 | Add any other context about the problem here.
40 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: 'wishlist'
6 | 'inspiration'
7 | assignees: ''
8 |
9 | ---
10 |
11 | **Is your feature request related to a problem? Please describe.**
12 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
13 |
14 | **Describe the solution you'd like**
15 | A clear and concise description of what you want to happen.
16 |
17 | **Describe alternatives you've considered**
18 | A clear and concise description of any alternative solutions or features you've considered.
19 |
20 | **Additional context**
21 | Add any other context or screenshots about the feature request here.
22 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/inspiration.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Inspiration
3 | about: Tell us about other projects so that we can use it in easifemBase
4 | title: "[Inspiration]"
5 | labels: 'Inspiration'
6 | 'wishlist'
7 | assignees: vickysharma0812
8 |
9 | ---
10 |
11 | # EASIFEM-INSPIRATION
12 |
13 | ## Project name
14 |
15 | ### Developer
16 |
17 | ### Age
18 |
19 | ### Field of application
20 |
21 | ### Activity status
22 |
23 | ## Why should it be covered in easifemBase
24 |
--------------------------------------------------------------------------------
/.github/workflows/pr-labeler.yml:
--------------------------------------------------------------------------------
1 | name: PR Labeler
2 | on:
3 | pull_request:
4 | types: [opened]
5 |
6 | jobs:
7 | pr-labeler:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: TimonVS/pr-labeler-action@v3
11 | with:
12 | configuration-path: .github/pr-labeler.yml # optional, .github/pr-labeler.yml is the default value
13 | env:
14 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15 |
16 |
17 | # Reference
18 | # https://github.com/marketplace/actions/pr-labeler
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # ignore following extesions
2 | # added by vikas
3 | # 2-Dec-2018
4 | *.a
5 | *.mod
6 | *.smod
7 | *.o
8 | *.out
9 | *.i90
10 | *.if90
11 | *.DS_Store
12 | *.cache
13 | *.prj
14 | *.drawio
15 | *.log
16 | *.pdf
17 | vscode-settings
18 | docs/
19 | media/
20 | */build/
21 | build/
22 | src/build/
23 | src/modules/build/
24 | src/submodules/build/
25 | _packages/
26 | compile_commands.json
27 | compile_commands.json
28 | neovim.json
29 | selected
30 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
3 | "cmake.buildDirectory": "/home/vikassharma/temp/easifem-base/build",
4 | "cmake.generator": "",
5 | "cmake.installPrefix": "/home/vikassharma/.easifem/base",
6 | "cmake.configureOnOpen": false
7 | }
--------------------------------------------------------------------------------
/Workspaces/BLAS.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "../src/modules/BLAS"
5 | },
6 | {
7 | "path": "../src/submodules/BLAS"
8 | },
9 | {
10 | "path": "../tests/BLAS"
11 | }
12 | ]
13 | }
--------------------------------------------------------------------------------
/Workspaces/OpenMP.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "../src/modules/BLAS"
5 | },
6 | {
7 | "path": "../src/submodules/BLAS"
8 | },
9 | {
10 | "path": "../tests/BLAS"
11 | }
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/Workspaces/Polynomial:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/Workspaces/Polynomial
--------------------------------------------------------------------------------
/Workspaces/SparseMatrix.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "../src/modules/CSRMatrix"
5 | },
6 | {
7 | "path": "../src/modules/CSRSparsity"
8 | },
9 | {
10 | "path": "../src/submodules/CSRMatrix"
11 | },
12 | {
13 | "path": "../src/submodules/CSRSparsity"
14 | }
15 | ]
16 | }
--------------------------------------------------------------------------------
/Workspaces/Tensor.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "../src/modules/Rank2Tensor"
5 | },
6 | {
7 | "path": "../src/submodules/Rank2Tensor"
8 | }
9 | ]
10 | }
--------------------------------------------------------------------------------
/Workspaces/Utility.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "../src/modules/Utility"
5 | },
6 | {
7 | "path": "../src/submodules/Utility"
8 | }
9 | ]
10 | }
--------------------------------------------------------------------------------
/Workspaces/refelem.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "../src/modules/ElemshapeData"
5 | },
6 | {
7 | "path": "../src/modules/Geometry"
8 | },
9 | {
10 | "path": "../src/modules/QuadraturePoint"
11 | },
12 | {
13 | "path": "../src/modules/ReferenceElement"
14 | },
15 | {
16 | "path": "../src/submodules/ElemshapeData"
17 | },
18 | {
19 | "path": "../src/submodules/QuadraturePoint"
20 | },
21 | {
22 | "path": "../src/submodules/ReferenceElement"
23 | }
24 | ]
25 | }
--------------------------------------------------------------------------------
/base.code-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "folders": [
3 | {
4 | "path": "."
5 | }
6 | ],
7 | "settings": {
8 | "cmake.installPrefix": "~/.easifem/base"
9 | }
10 | }
--------------------------------------------------------------------------------
/cmake/addFFTW.cmake:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | option(USE_FFTW OFF)
20 | if(USE_FFTW)
21 |
22 | list(APPEND TARGET_COMPILE_DEF "-DUSE_FFTW")
23 |
24 | find_library(FFTW_LIBRARIES NAMES fftw fftw3 REQUIRED)
25 |
26 | target_link_libraries(${PROJECT_NAME} PUBLIC ${FFTW_LIBRARIES})
27 | message(STATUS "FFTW_LIBRARY : ${FFTW_LIBRARIES}")
28 |
29 | else()
30 |
31 | message(STATUS "NOT USING FFTW LIBRARIES")
32 |
33 | endif()
34 |
--------------------------------------------------------------------------------
/cmake/addLapack95.cmake:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | if(USE_LAPACK95)
20 |
21 | find_package(LAPACK95 REQUIRED)
22 |
23 | if(LAPACK95_FOUND)
24 | message(STATUS "[INFO] :: FOUND LAPACK95")
25 | target_link_libraries(${PROJECT_NAME} PUBLIC LAPACK95::LAPACK95)
26 | list(APPEND TARGET_COMPILE_DEF "-DUSE_LAPACK95")
27 |
28 | else()
29 | message(ERROR "[ERROR] :: NOT FOUND LAPACK95")
30 |
31 | endif()
32 |
33 | endif()
34 |
--------------------------------------------------------------------------------
/cmake/addMetis.cmake:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | option(USE_METIS ON)
20 | if(USE_METIS)
21 | find_library(METIS_LIB metis)
22 | list(APPEND TARGET_COMPILE_DEF "-DUSE_METIS")
23 | message(STATUS "FOUND ${METIS_LIB}")
24 | message(STATUS "METIS_LIB = ${METIS_LIB}")
25 | target_link_libraries(${PROJECT_NAME} PUBLIC ${METIS_LIB})
26 | else()
27 | message(STATUS "NOT USING METIS")
28 | endif()
29 |
--------------------------------------------------------------------------------
/cmake/addSparsekit.cmake:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | find_package(Sparsekit REQUIRED)
20 |
21 | if(Sparsekit_FOUND)
22 | message(STATUS "[INFO] :: FOUND Sparsekit")
23 | target_link_libraries(${PROJECT_NAME} PUBLIC Sparsekit::Sparsekit)
24 |
25 | else()
26 | message(ERROR "[ERROR] :: NOT FOUND Sparsekit")
27 |
28 | endif()
29 |
--------------------------------------------------------------------------------
/cmake/addSuperLU.cmake:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | option(USE_SUPERLU ON)
20 | if(USE_SUPERLU)
21 | find_library(SuperLU_Libs superlu)
22 | list(APPEND TARGET_COMPILE_DEF "-DUSE_SuperLU")
23 | message(STATUS "[INFO] :: SuperLU_Libs = ${SuperLU_Libs}")
24 | endif()
25 | target_link_libraries(${PROJECT_NAME} PUBLIC ${SuperLU_Libs})
26 |
--------------------------------------------------------------------------------
/cmake/addToml.cmake:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | find_package(toml-f REQUIRED)
20 |
21 | if(Sparsekit_FOUND)
22 | message(STATUS "[INFO] :: FOUND toml-f")
23 | target_link_libraries(${PROJECT_NAME} PUBLIC toml-f::toml-f)
24 |
25 | else()
26 | message(ERROR "[ERROR] :: NOT FOUND toml-f")
27 |
28 | endif()
29 |
--------------------------------------------------------------------------------
/easifemBase.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/easifemBase.py
--------------------------------------------------------------------------------
/easifemvar.sh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/easifemvar.sh
--------------------------------------------------------------------------------
/figures/banner.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/figures/banner.jpeg
--------------------------------------------------------------------------------
/neovim.json:
--------------------------------------------------------------------------------
1 | {"cargo":{"dap_name":"lldb"},"cmake":{"build_type":"Debug","dap_name":"lldb","args":{"configure":["-D","CMAKE_EXPORT_COMPILE_COMMANDS=1","-G","Ninja","-D","USE_OPENMP=ON"]},"env":{"configure":[]},"build_dir":"{cwd}\/build\/{os}-{build_type}","cmd":"cmake"}}
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "shiki": "^0.11.1"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/pages/Install_MacOSX.md:
--------------------------------------------------------------------------------
1 | # Install easifemBase on MacOSX
2 |
3 | ## System requirements
4 |
5 | ```bash
6 | brew install gcc
7 | brew install gfortran
8 | brew install libomp
9 | brew install curl
10 | brew install git
11 | brew install python3
12 | brew install cmake
13 | brew install ninja
14 | brew install lapack
15 | brew install openblas
16 | brew install hdf5
17 | brew install plplot
18 | brew install gnuplot
19 | brew install doxygen
20 | brew install gtk4
21 | ```
22 |
--------------------------------------------------------------------------------
/pages/Install_Windows.md:
--------------------------------------------------------------------------------
1 | # Installation of easifemBase on Windows
2 |
3 | Coming soon.
4 |
--------------------------------------------------------------------------------
/selected:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/selected
--------------------------------------------------------------------------------
/setup/requirements.txt:
--------------------------------------------------------------------------------
1 | numpy
2 | scipy
3 | matplotlib
4 | jupyter
5 | jupyterlab
6 | plotly
7 | dash
8 | seaborn
9 | pillow
10 | opencv-python
11 | pandas
--------------------------------------------------------------------------------
/setup/set_envvar_CentOS.sh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/setup/set_envvar_CentOS.sh
--------------------------------------------------------------------------------
/src/modules/ARPACK/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/EASIFEM_F77_ARPACK.F90
22 | ${src_path}/ARPACK_SAUPD.F90
23 | ${src_path}/EASIFEM_ARPACK.F90
24 | )
--------------------------------------------------------------------------------
/src/modules/ARPACK/src/EASIFEM_ARPACK.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | !> author: Vikas Sharma, Ph. D.
19 | ! date: 2022-12-09
20 | ! summary: This module contains interface to ARPACK lib.
21 |
22 | MODULE EASIFEM_ARPACK
23 | USE EASIFEM_F77_ARPACK
24 | USE ARPACK_SAUPD
25 | END MODULE EASIFEM_ARPACK
26 |
--------------------------------------------------------------------------------
/src/modules/BLAS95/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | IF( USE_BLAS95 )
19 | LIST( APPEND TARGET_COMPILE_DEF "-DUSE_BLAS95" )
20 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
21 | TARGET_SOURCES(
22 | ${PROJECT_NAME} PRIVATE
23 | ${src_path}/F77_BLAS.F90
24 | ${src_path}/F95_BLAS.F90
25 | )
26 | ENDIF()
27 |
--------------------------------------------------------------------------------
/src/modules/BLAS95/aux/test.F90:
--------------------------------------------------------------------------------
1 | program main
2 | implicit none
3 |
4 | integer :: in, out, iostat, len
5 | character( len = 1000 ) temp
6 |
7 | open( newunit = in, file = '../src/blas95.lst', status="old", &
8 | & action="read" )
9 |
10 | open( newunit = out, file = './EASIFEM_BLAS.F90', status="replace", &
11 | & action="write" )
12 |
13 | DO
14 | read( in, *, IOSTAT=iostat) temp
15 | len = LEN_TRIM(temp)
16 | if(temp(1:1) .eq. '#') cycle
17 | write( out, "(A)" ) '#include "./' // temp(1:len) // '"'
18 | if( iostat .LT. 0 ) exit
19 | END DO
20 |
21 | end program main
--------------------------------------------------------------------------------
/src/modules/BaseContinuity/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/BaseContinuity_Method.F90
22 | )
23 |
24 |
--------------------------------------------------------------------------------
/src/modules/BaseInterpolation/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/BaseInterpolation_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/BaseMethod/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/BaseMethod.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/BaseType/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/BaseType.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/BoundingBox/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/BoundingBox_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/CInterface/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/CInterface.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/CSRSparsity/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/CSRSparsity_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/ConvectiveMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/ConvectiveMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/DOF/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
18 | TARGET_SOURCES(
19 | ${PROJECT_NAME} PRIVATE
20 | ${src_path}/DOF_Method.F90
21 | ${src_path}/DOF_ConstructorMethods.F90
22 | ${src_path}/DOF_IOMethods.F90
23 | ${src_path}/DOF_GetMethods.F90
24 | ${src_path}/DOF_GetValueMethods.F90
25 | ${src_path}/DOF_SetMethods.F90
26 | ${src_path}/DOF_AddMethods.F90
27 | )
28 |
--------------------------------------------------------------------------------
/src/modules/DOF/src/DOF_Method.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | !> author: Vikas Sharma, Ph. D.
19 | ! date: 23 Feb 2021
20 | ! summary: This module contains methods of [[DOF_]] object
21 | !
22 | !{!pages/docs-api/DOF/DOF_.md!}
23 |
24 | MODULE DOF_Method
25 | USE DOF_ConstructorMethods
26 | USE DOF_IOMethods
27 | USE DOF_GetMethods
28 | USE DOF_GetValueMethods
29 | USE DOF_SetMethods
30 | USE DOF_AddMethods
31 | END MODULE DOF_Method
32 |
--------------------------------------------------------------------------------
/src/modules/DiffusionMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/DiffusionMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/Display/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 |
11 | TARGET_SOURCES(
12 | ${PROJECT_NAME} PRIVATE
13 | ${src_path}/disp/disp_i1mod.F90
14 | ${src_path}/disp/disp_i2mod.F90
15 | ${src_path}/disp/disp_i4mod.F90
16 | ${src_path}/disp/disp_i8mod.F90
17 | ${src_path}/disp/disp_l1mod.F90
18 | ${src_path}/disp/disp_r4mod.F90
19 | ${src_path}/disp/disp_r8mod.F90
20 | ${src_path}/disp/disp_r16mod.F90
21 | ${src_path}/disp/disp_charmod.F90
22 | ${src_path}/disp/dispmodule_util.F90
23 | ${src_path}/disp/dispmodule.F90
24 | ${src_path}/disp/putstrmodule.F90
25 | ${src_path}/Display_Method.F90
26 | )
--------------------------------------------------------------------------------
/src/modules/Display/src/Display_Mat3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | ! Define internal variables
19 | INTEGER(I4B) :: J
20 | DO J = 1, SIZE(Val, 3)
21 | CALL Display(val=Val(:, :, J), &
22 | & msg=TRIM(msg)//"( :, :, "//TRIM(Int2Str(J))//" ) = ", &
23 | & unitNo=unitNo, full=full, advance=advance)
24 | END DO
25 |
--------------------------------------------------------------------------------
/src/modules/Display/src/Display_Mat4.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | ! Define internal variables
19 | INTEGER(I4B) :: J, K
20 | DO K = 1, SIZE(Val, 4)
21 | DO J = 1, SIZE(Val, 3)
22 | CALL Display(Val=Val(:, :, J, K), &
23 | & msg=TRIM(msg) &
24 | & //"( :, :, " &
25 | & //TRIM(Int2Str(J)) &
26 | & //", " &
27 | & //TRIM(Int2Str(K)) &
28 | & //" ) = " &
29 | & , unitNo=unitNo, full=full, advance=advance)
30 | END DO
31 | END DO
32 |
--------------------------------------------------------------------------------
/src/modules/Display/src/Display_Scalar.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | ! Define internal variables
19 | INTEGER(I4B) :: I
20 | CALL setDefaultSettings
21 | I = stdout; IF (PRESENT(unitNo)) I = unitNo
22 | #ifdef COLOR_DISP
23 | CALL DISP( &
24 | & title=TRIM(colorize(msg, color_fg=COLOR_FG, color_bg=COLOR_BG, &
25 | & style=COLOR_STYLE)), &
26 | & x=val, unit=I, style='left', advance=advance)
27 | #else
28 | CALL DISP(title=msg, x=val, unit=I, style='left', advance=advance)
29 | #endif
30 |
--------------------------------------------------------------------------------
/src/modules/Display/src/References/dispmodule-userman.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/src/modules/Display/src/References/dispmodule-userman.pdf
--------------------------------------------------------------------------------
/src/modules/Display/src/disp/putstrmodule.F90:
--------------------------------------------------------------------------------
1 | MODULE PUTSTRMODULE ! DUMMY VERSION
2 | ! An auxilliary module that accompanies DISPMODULE. This module contains dummy versions of the
3 | ! subroutines putstr and putnl that do nothing. It is needed to avoid an "undefined symbol" link
4 | ! error for these. In addition it defines the named constant (or parameter) DEFAULT_UNIT = -3,
5 | ! which makes the asterisk unit (usually the screen) the default to display on.
6 | !
7 | ! The purpose of having this module is to make displaying possible in situations where ordinary
8 | ! print- and write-statements do not work. Then this module should be replaced by one defining
9 | ! functional versions of putstr and putnl. An example is given by the commented out PUTSTRMODULE
10 | ! for Matlab mex files below.
11 | !
12 | integer, parameter :: DEFAULT_UNIT = -3
13 | !
14 | CONTAINS
15 | subroutine putstr(s)
16 | character(*), intent(in) :: s
17 | integer ldummy, ldummy1 ! these variables exist to avoid unused variable warnings
18 | ldummy = len(s)
19 | ldummy1 = ldummy
20 | ldummy = ldummy1
21 | end subroutine putstr
22 |
23 | subroutine putnl()
24 | end subroutine putnl
25 | END MODULE PUTSTRMODULE
26 |
--------------------------------------------------------------------------------
/src/modules/ElasticNitscheMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/ElasticNitscheMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/ErrorHandling/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/ErrorHandling.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/FEMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/FEMatrix_Method.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/modules/FEMatrix/src/FEMatrix_Method.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE FEMatrix_Method
19 | USE MassMatrix_Method
20 | USE STMassMatrix_Method
21 | USE DiffusionMatrix_Method
22 | USE STDiffusionMatrix_Method
23 | USE ConvectiveMatrix_Method
24 | USE STConvectiveMatrix_Method
25 | USE StiffnessMatrix_Method
26 | USE ElasticNitscheMatrix_Method
27 | USE FacetMatrix_Method
28 | END MODULE FEMatrix_Method
29 |
--------------------------------------------------------------------------------
/src/modules/FEVariable/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/FEVariable_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/FEVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/FEVector_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/FEVector/src/FEVector_Method.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE FEVector_Method
19 | USE ForceVector_Method
20 | USE STForceVector_Method
21 | END MODULE FEVector_Method
--------------------------------------------------------------------------------
/src/modules/FFTW/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/FFTW3.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/FPL/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | #################################################################
2 | # Search F90 files recursively in all subdirs
3 | #################################################################
4 |
5 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
6 | FILE(GLOB_RECURSE WRAPPER_LIB_SRC ${src_path}/Wrapper/*.F90)
7 | TARGET_SOURCES(
8 | ${PROJECT_NAME} PRIVATE
9 | ${WRAPPER_LIB_SRC}
10 | ${src_path}/ErrorMessages.F90
11 | ${src_path}/FPL_utils.F90
12 | ${src_path}/FPL.F90
13 | ${src_path}/ParameterEntry.F90
14 | ${src_path}/ParameterEntryDictionary.F90
15 | ${src_path}/ParameterList.F90
16 | ${src_path}/ParameterRootEntry.F90
17 | )
--------------------------------------------------------------------------------
/src/modules/FacetMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/FacetMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/ForceVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/ForceVector_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/Geometry/src/Geometry_Method.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE Geometry_Method
19 | USE ReferenceElement_Method
20 | USE ReferencePoint_Method
21 | USE ReferenceLine_Method
22 | USE ReferenceTriangle_Method
23 | USE ReferenceQuadrangle_Method
24 | USE ReferenceTetrahedron_Method
25 | USE ReferenceHexahedron_Method
26 | USE ReferencePrism_Method
27 | USE ReferencePyramid_Method
28 | USE Line_Method
29 | USE Triangle_Method
30 | USE Plane_Method
31 | END MODULE Geometry_Method
32 |
--------------------------------------------------------------------------------
/src/modules/GlobalData/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 |
20 | TARGET_SOURCES(
21 | ${PROJECT_NAME} PRIVATE
22 | "${src_path}/GlobalData.F90"
23 | )
--------------------------------------------------------------------------------
/src/modules/Gnuplot/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/ogpf.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/Hashing/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 |
20 | TARGET_SOURCES(
21 | ${PROJECT_NAME} PRIVATE
22 | "${src_path}/Hashing32.F90"
23 | )
--------------------------------------------------------------------------------
/src/modules/IndexValue/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/IndexValue_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/IntVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 |
19 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
20 | TARGET_SOURCES(
21 | ${PROJECT_NAME} PRIVATE
22 | ${src_path}/IntVector_ConstructorMethod.F90
23 | ${src_path}/IntVector_IOMethod.F90
24 | ${src_path}/IntVector_GetMethod.F90
25 | ${src_path}/IntVector_SetMethod.F90
26 | ${src_path}/IntVector_AppendMethod.F90
27 | ${src_path}/IntVector_EnquireMethod.F90
28 | ${src_path}/IntVector_Method.F90
29 | )
30 |
--------------------------------------------------------------------------------
/src/modules/IterationData/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/IterationData_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/Kdtree2/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | set(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
20 | target_sources(
21 | ${PROJECT_NAME}
22 | PRIVATE ${src_path}/Kdtree2_Module.F90
23 | PRIVATE ${src_path}/Kd2PQueue_Module.F90)
24 |
--------------------------------------------------------------------------------
/src/modules/KeyValue/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/KeyValue_Method.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/modules/LISInterface/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | # IF( USE_LIS )
19 | # SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
20 | # TARGET_SOURCES(
21 | # ${PROJECT_NAME} PRIVATE
22 | # ${src_path}/LISParam.F90
23 | # ${src_path}/LISBasic.F90
24 | # ${src_path}/LISVector.F90
25 | # ${src_path}/LISInterface.F90
26 | # )
27 | # ENDIF( )
28 |
--------------------------------------------------------------------------------
/src/modules/LISInterface/src/LISInterface.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE LISInterface
19 | ! USE LISParam
20 | ! USE LISBasic
21 | ! USE LISVector
22 | END MODULE LISInterface
23 |
--------------------------------------------------------------------------------
/src/modules/Lapack/src/GE_SingularValueMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE GE_SingularValueMethods
19 | USE GlobalData, ONLY: DFP, I4B, LGT
20 | IMPLICIT NONE
21 | PRIVATE
22 | END MODULE GE_SingularValueMethods
23 |
--------------------------------------------------------------------------------
/src/modules/Lapack/src/Lapack_Method.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE Lapack_Method
19 | USE GE_Lapack_Method
20 | USE Sym_Lapack_Method
21 | END MODULE Lapack_Method
--------------------------------------------------------------------------------
/src/modules/Lapack/src/Sym_CompRoutineMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE Sym_CompRoutineMethods
19 |
20 | END MODULE Sym_CompRoutineMethods
21 |
--------------------------------------------------------------------------------
/src/modules/Lapack/src/Sym_EigenValueMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE Sym_EigenValueMethods
19 |
20 | END MODULE Sym_EigenValueMethods
21 |
--------------------------------------------------------------------------------
/src/modules/Lapack/src/Sym_SingularValueMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE Sym_SingularValueMethods
19 |
20 | END MODULE Sym_SingularValueMethods
21 |
--------------------------------------------------------------------------------
/src/modules/LuaInterface/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | IF(USE_LUA)
19 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
20 | TARGET_SOURCES(
21 | ${PROJECT_NAME} PRIVATE
22 | ${src_path}/LuaInterface.F90
23 | )
24 | ELSE()
25 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
26 | TARGET_SOURCES(
27 | ${PROJECT_NAME} PRIVATE
28 | ${src_path}/No_LuaInterface.F90
29 | )
30 | ENDIF()
31 |
--------------------------------------------------------------------------------
/src/modules/LuaInterface/src/No_LuaInterface.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | ! This module is used when we are not using Lua
19 |
20 | MODULE LuaInterface
21 | END MODULE LuaInterface
22 |
--------------------------------------------------------------------------------
/src/modules/MassMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/MassMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/MdEncode/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/MdEncode_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/MetisInterface/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 |
19 | IF(USE_METIS)
20 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
21 | TARGET_SOURCES(
22 | ${PROJECT_NAME} PRIVATE
23 | ${src_path}/MetisInterface.F90
24 | )
25 | ENDIF()
26 |
--------------------------------------------------------------------------------
/src/modules/MultiIndices/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/MultiIndices_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/OpenMP/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 7/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/OpenMP_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/QuadraturePoint/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/QuadraturePoint_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/Random/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/Random_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/Rank2Tensor/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/Rank2Tensor_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/RaylibInterface/src/Raylib.F90:
--------------------------------------------------------------------------------
1 | ! raylib.f90
2 | !
3 | ! A collection of auto-generated Fortran 2018 interface bindings to
4 | ! raylib 5.1.
5 | !
6 | ! Author: Philipp Engel
7 | ! Licence: ISC
8 |
9 | MODULE Raylib
10 | USE RaylibTypes
11 | USE RaylibEnums
12 | USE RaylibDrawMethods
13 | USE RaylibGetMethods
14 | USE RaylibSetMethods
15 | USE RaylibImageMethods
16 | USE RaylibUnloadMethods
17 | USE RaylibLoadMethods
18 | USE RaylibGenMethods
19 | USE RaylibIsMethods
20 | USE RaylibCheckMethods
21 | USE RaylibMethods
22 | END MODULE Raylib
23 |
--------------------------------------------------------------------------------
/src/modules/RealMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/RealMatrix_Method.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/modules/STConvectiveMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/STConvectiveMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/STDiffusionMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/STDiffusionMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/STForceVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/STForceVector_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/STMassMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/STMassMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/StiffnessMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/StiffnessMatrix_Method.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/modules/SuperLUInterface/src/include/macros.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | ! #define SUPERLU_CPTR_ONLY
19 |
--------------------------------------------------------------------------------
/src/modules/Test/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Expandable And Scalable
2 | # Infrastructure for Finite Element Methods htttps://www.easifem.com Vikas
3 | # Sharma, Ph.D., vickysharma0812@gmail.com
4 | #
5 | # This program is free software: you can redistribute it and/or modify it under
6 | # the terms of the GNU General Public License as published by the Free Software
7 | # Foundation, either version 3 of the License, or (at your option) any later
8 | # version.
9 | #
10 | # This program is distributed in the hope that it will be useful, but WITHOUT
11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 | # details.
14 | #
15 | # You should have received a copy of the GNU General Public License along with
16 | # this program. If not, see
17 | #
18 |
19 | set(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
20 |
21 | target_sources(
22 | ${PROJECT_NAME}
23 | PRIVATE ${src_path}/Test_Base.F90 ${src_path}/Test_Planning.F90
24 | ${src_path}/Test_Is.F90 ${src_path}/Test_More.F90
25 | ${src_path}/Test_Method.F90)
26 |
27 |
--------------------------------------------------------------------------------
/src/modules/Test/src/Test_Method.F90:
--------------------------------------------------------------------------------
1 | ! Copyright 2015 Dennis Decker Jensen
2 | ! See and
3 | ! Tectonics: gfortran -g -Wall -Wextra -std=f2008ts -c test.f08
4 | !
5 | ! This program is a part of EASIFEM library
6 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
7 | !
8 | ! This program is free software: you can redistribute it and/or modify
9 | ! it under the terms of the GNU General Public License as published by
10 | ! the Free Software Foundation, either version 3 of the License, or
11 | ! (at your option) any later version.
12 | !
13 | ! This program is distributed in the hope that it will be useful,
14 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | ! GNU General Public License for more details.
17 | !
18 | ! You should have received a copy of the GNU General Public License
19 | ! along with this program. If not, see
20 | !
21 |
22 | MODULE Test_Method
23 | USE Test_Base, ONLY: test_unit, diago_unit, &
24 | & ok, diago, note, PASS, fail, todo
25 | USE Test_Planning, ONLY: plan, done_testing, skip_all, bail_out
26 | USE Test_More, ONLY: is, isabs, isrel, isnear, skip
27 | END MODULE Test_Method
28 |
--------------------------------------------------------------------------------
/src/modules/Test/src/is_i.inc:
--------------------------------------------------------------------------------
1 | ! Template parameter: wp (working precision)
2 | ! Template free identifiers: testline, tests
3 | subroutine is(got, expected, msg)
4 | integer(kind=wp), intent(in) :: got, expected
5 | character(len=*), intent(in), optional :: msg
6 | character(len=:), allocatable :: testmsg, idmsg
7 | character(len=120) gotmsg, expectedmsg
8 | logical good
9 |
10 | if (present(msg)) then
11 | allocate(character(len=len_trim(msg)+20) :: testmsg, idmsg)
12 | write (unit=idmsg, fmt='(A,A,A)') 'Failed test: "', trim(msg), '"'
13 | testmsg = trim(msg)
14 | else
15 | allocate(character(len=30) :: testmsg, idmsg)
16 | write (unit=idmsg, fmt='(A,I0)') 'Failed test no. ', tests + 1
17 | testmsg = ""
18 | end if
19 | write (unit=gotmsg, fmt='(A,I0)') ' got: ', got
20 | write (unit=expectedmsg, fmt='(A,I0)') 'expected: ', expected
21 |
22 | good = got == expected
23 | call testline(good, testmsg, idmsg, gotmsg, expectedmsg)
24 | end
25 |
--------------------------------------------------------------------------------
/src/modules/Vector3D/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/Vector3D_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/VoigtRank2Tensor/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/VoigtRank2Tensor_Method.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/easifemBase/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 16/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/easifemBase.F90
13 | )
--------------------------------------------------------------------------------
/src/modules/easifemBase/src/easifemBase.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | MODULE easifemBase
19 | USE BaseType
20 | USE BaseMethod
21 | END MODULE easifemBase
--------------------------------------------------------------------------------
/src/submodules/ARPACK/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/ARPACK_SAUPD@Methods.F90
22 | )
--------------------------------------------------------------------------------
/src/submodules/BoundingBox/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/BoundingBox_Method@ConstructorMethods.F90
22 | ${src_path}/BoundingBox_Method@SetMethods.F90
23 | ${src_path}/BoundingBox_Method@GetMethods.F90
24 | ${src_path}/BoundingBox_Method@IOMethods.F90
25 | ${src_path}/BoundingBox_Method@TomlMethods.F90
26 | )
27 |
--------------------------------------------------------------------------------
/src/submodules/CSRSparsity/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Copyright (C) 2020-2023 Vikas
2 | # Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify it under
5 | # the terms of the GNU General Public License as published by the Free Software
6 | # Foundation, either version 3 of the License, or (at your option) any later
7 | # version.
8 | #
9 | # This program is distributed in the hope that it will be useful, but WITHOUT
10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12 | # details.
13 | #
14 | # You should have received a copy of the GNU General Public License along with
15 | # this program. If not, see
16 | #
17 |
18 | set(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | target_sources(
20 | ${PROJECT_NAME}
21 | PRIVATE ${src_path}/CSRSparsity_Method@ConstructorMethods.F90
22 | ${src_path}/CSRSparsity_Method@IOMethods.F90
23 | ${src_path}/CSRSparsity_Method@SetMethods.F90
24 | ${src_path}/CSRSparsity_Method@GetMethods.F90
25 | ${src_path}/CSRSparsity_Method@SymMethods.F90)
26 |
--------------------------------------------------------------------------------
/src/submodules/ConvectiveMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/ConvectiveMatrix_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/ConvectiveMatrix/ConvectiveMatrix-old/MethodNames.part:
--------------------------------------------------------------------------------
1 | getConvectiveMatrix_1, &
2 | getConvectiveMatrix_2, &
3 | getConvectiveMatrix_3, &
4 | getConvectiveMatrix_4, &
5 | getConvectiveMatrix_5, &
6 | getConvectiveMatrix_6, &
7 | getConvectiveMatrix_7, &
8 | getConvectiveMatrix_8, &
9 | getConvectiveMatrix_9, &
10 | getConvectiveMatrix_10, &
11 | getConvectiveMatrix_11, &
12 | getConvectiveMatrix_12
--------------------------------------------------------------------------------
/src/submodules/DiffusionMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/DiffusionMatrix_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/ElasticNitscheMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/ElasticNitscheMatrix_Method@Matrix1.F90
22 | ${src_path}/ElasticNitscheMatrix_Method@Matrix2.F90
23 | ${src_path}/ElasticNitscheMatrix_Method@Matrix3.F90
24 | ${src_path}/ElasticNitscheMatrix_Method@MatrixNormal.F90
25 | ${src_path}/ElasticNitscheMatrix_Method@MatrixTangent.F90
26 | )
27 |
--------------------------------------------------------------------------------
/src/submodules/ForceVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/ForceVector_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/Hashing/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/Hashing32@fnvMethods.F90
22 | ${src_path}/Hashing32@nmMethods.F90
23 | ${src_path}/Hashing32@waterMethods.F90
24 | )
25 |
--------------------------------------------------------------------------------
/src/submodules/Hashing/src/delme.F90:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/src/submodules/Hashing/src/delme.F90
--------------------------------------------------------------------------------
/src/submodules/IndexValue/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/IndexValue_Method@Constructor.F90
13 | )
--------------------------------------------------------------------------------
/src/submodules/IntVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/IntVector_ConstructorMethod@Methods.F90
22 | ${src_path}/IntVector_IOMethod@Methods.F90
23 | ${src_path}/IntVector_SetMethod@Methods.F90
24 | ${src_path}/IntVector_AppendMethod@Methods.F90
25 | ${src_path}/IntVector_GetMethod@Methods.F90
26 | ${src_path}/IntVector_EnquireMethod@Methods.F90
27 | )
28 |
--------------------------------------------------------------------------------
/src/submodules/IntVector/src/include/intvec_get_10.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 | !
18 | INTEGER(I4B) :: N, i, tNodes, r1, r2
19 | N = SIZE(obj)
20 | tNodes = 0
21 | DO i = 1, N
22 | tNodes = tNodes + SIZE(obj(i)%Val)
23 | END DO
24 | !!
25 | ALLOCATE (Val(tNodes))
26 | !!
27 | tNodes = 0; r1 = 0; r2 = 0
28 | DO i = 1, N
29 | r1 = r2 + 1; r2 = r2 + SIZE(obj(i)%Val)
30 | Val(r1:r2) = obj(i)%Val
31 | END DO
32 | !!
--------------------------------------------------------------------------------
/src/submodules/IntVector/src/include/intvec_get_11.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: N, i, M
19 | !!
20 | N = SIZE(obj)
21 | M = SIZE(Indx)
22 | !!
23 | ALLOCATE (Val(N * M))
24 | !!
25 | DO i = 1, N
26 | Val((i - 1) * M + 1:i * M) = obj(i)%Val(Indx)
27 | END DO
28 | !!
--------------------------------------------------------------------------------
/src/submodules/IntVector/src/include/intvec_get_12.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: N, i, M
19 | !!
20 | N = SIZE(obj)
21 | M = 1 + (iEnd - iStart) / Stride
22 | !!
23 | ALLOCATE (Val(M * N))
24 | !!
25 | DO i = 1, N
26 | Val((i - 1) * M + 1:i * M) = obj(i)%Val(iStart:iEnd:Stride)
27 | END DO
28 | !!
--------------------------------------------------------------------------------
/src/submodules/IntVector/src/include/intvec_get_13.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | val = obj%val(indx)
--------------------------------------------------------------------------------
/src/submodules/IterationData/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/IterationData_Method@ConstructorMethods.F90
22 | ${src_path}/IterationData_Method@IOMethods.F90
23 | )
--------------------------------------------------------------------------------
/src/submodules/KeyValue/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/KeyValue_Method@Constructor.F90
13 | ${src_path}/KeyValue_Method@getMethod.F90
14 | ${src_path}/KeyValue_Method@setMethod.F90
15 | )
--------------------------------------------------------------------------------
/src/submodules/Lapack/src/GE_Lapack_Method@EigenvalueMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | SUBMODULE(GE_Lapack_Method) EigenValueMethods
19 | USE BaseMethod
20 | IMPLICIT NONE
21 | CONTAINS
22 |
23 | !----------------------------------------------------------------------------
24 | ! DGEES
25 | !----------------------------------------------------------------------------
26 |
27 | MODULE PROCEDURE dgees_1
28 | END PROCEDURE dgees_1
29 | END SUBMODULE EigenValueMethods
--------------------------------------------------------------------------------
/src/submodules/Lapack/src/Sym_CompRoutineMethods@Methods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
--------------------------------------------------------------------------------
/src/submodules/Lapack/src/Sym_EigenValueMethods@Methods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
--------------------------------------------------------------------------------
/src/submodules/Lapack/src/Sym_SingularValueMethods@Methods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
--------------------------------------------------------------------------------
/src/submodules/MassMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/MassMatrix_Method@Methods.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/submodules/MdEncode/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/MdEncode_Method@Methods.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/submodules/MdEncode/src/inc/MdEncode_2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: ii, n
19 | n = SIZE(val)
20 | ans = "| "
21 | DO ii = 1, n
22 | ans = ans//" | "
23 | END DO
24 | ans = ans//CHAR_LF
25 | ans = ans//"| "
26 | DO ii = 1, n
27 | ans = ans//" --- | "
28 | END DO
29 | ans = ans//CHAR_LF
30 |
31 | ans = ans//"| "
32 | DO ii = 1, n
33 | ans = ans//MdEncode(val(ii))//" | "
34 | END DO
35 | ans = ans//CHAR_LF
36 |
--------------------------------------------------------------------------------
/src/submodules/MdEncode/src/inc/MdEncode_3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: ii, jj, m, n
19 | m = SIZE(val, 1)
20 | n = SIZE(val, 2)
21 | ans = "| "
22 | DO ii = 1, n
23 | ans = ans//" | "
24 | END DO
25 | ans = ans//CHAR_LF
26 |
27 | ans = ans//"| "
28 | DO ii = 1, n
29 | ans = ans//" --- | "
30 | END DO
31 | ans = ans//CHAR_LF
32 |
33 | DO ii = 1, m
34 | ans = ans // "| "
35 | DO jj = 1, n
36 | ans = ans // MdEncode( val( ii, jj ) ) // " | "
37 | END DO
38 | ans = ans // CHAR_LF
39 | END DO
40 |
--------------------------------------------------------------------------------
/src/submodules/MdEncode/src/inc/MdEncode_3b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 |
19 | DO ii = 1, m
20 | ans = ans // " | "
21 | DO jj = 1, n
22 | ans = ans // TRIM( val( ii, jj ) ) // " | "
23 | END DO
24 | ans = ans // CHAR_LF
25 | END DO
--------------------------------------------------------------------------------
/src/submodules/MultiIndices/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/MultiIndices_Method@Methods.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/submodules/OpenMP/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 9/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/OpenMP_Method@Constructor.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_12.inc:
--------------------------------------------------------------------------------
1 |
2 | ! nodes on edge 12
3 | jj = ll + 1
4 | IF (cnt .LT. N) THEN
5 | DO ii = 2 + ll, p - ll
6 | cnt = cnt + 1
7 | temp(1, cnt) = xi(ii, jj)
8 | temp(2, cnt) = eta(ii, jj)
9 | END DO
10 | END IF
11 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_14.inc:
--------------------------------------------------------------------------------
1 |
2 | ii = ll + 1
3 | IF (cnt .LT. N) THEN
4 | DO jj = 2 + ll, q - ll, 1
5 | cnt = cnt + 1
6 | temp(1, cnt) = xi(ii, jj)
7 | temp(2, cnt) = eta(ii, jj)
8 | END DO
9 | END IF
10 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_21.inc:
--------------------------------------------------------------------------------
1 | ! nodes on edge 21
2 | jj = ll + 1
3 | IF (cnt .LT. N) THEN
4 | DO ii = p - ll, 2 + ll, -1
5 | cnt = cnt + 1
6 | temp(1, cnt) = xi(ii, jj)
7 | temp(2, cnt) = eta(ii, jj)
8 | END DO
9 | END IF
10 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_23.inc:
--------------------------------------------------------------------------------
1 |
2 | ! nodes on edge 23
3 | ii = p + 1 - ll
4 | IF (cnt .LT. N) THEN
5 | DO jj = 2 + ll, q - ll
6 | cnt = cnt + 1
7 | temp(1, cnt) = xi(ii, jj)
8 | temp(2, cnt) = eta(ii, jj)
9 | END DO
10 | END IF
11 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_32.inc:
--------------------------------------------------------------------------------
1 |
2 | ! nodes on edge 32
3 | ii = p + 1 - ll
4 | IF (cnt .LT. N) THEN
5 | DO jj = q - ll, 2 + ll, -1
6 | cnt = cnt + 1
7 | temp(1, cnt) = xi(ii, jj)
8 | temp(2, cnt) = eta(ii, jj)
9 | END DO
10 | END IF
11 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_34.inc:
--------------------------------------------------------------------------------
1 |
2 | ! nodes on edge 34
3 | jj = q + 1 - ll
4 | IF (cnt .LT. N) THEN
5 | DO ii = p - ll, 2 + ll, -1
6 | cnt = cnt + 1
7 | temp(1, cnt) = xi(ii, jj)
8 | temp(2, cnt) = eta(ii, jj)
9 | END DO
10 | END IF
11 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_41.inc:
--------------------------------------------------------------------------------
1 |
2 | ! nodes on edge 41
3 | ii = ll + 1
4 | IF (cnt .LT. N) THEN
5 | DO jj = q - ll, 2 + ll, -1
6 | cnt = cnt + 1
7 | temp(1, cnt) = xi(ii, jj)
8 | temp(2, cnt) = eta(ii, jj)
9 | END DO
10 | END IF
11 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/edge_43.inc:
--------------------------------------------------------------------------------
1 |
2 | ! nodes on edge 43
3 | jj = q + 1 - ll
4 | IF (cnt .LT. N) THEN
5 | DO ii = 2 + ll, p - ll, +1
6 | cnt = cnt + 1
7 | temp(1, cnt) = xi(ii, jj)
8 | temp(2, cnt) = eta(ii, jj)
9 | END DO
10 | END IF
11 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/vertex_1.inc:
--------------------------------------------------------------------------------
1 | ! v1
2 | ii = 1 + ll
3 | jj = 1 + ll
4 | IF (cnt .LT. N) THEN
5 | cnt = cnt + 1
6 | temp(1, cnt) = xi(ii, jj)
7 | temp(2, cnt) = eta(ii, jj)
8 | END IF
9 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/vertex_2.inc:
--------------------------------------------------------------------------------
1 | ! v2
2 | ii = p + 1 - ll
3 | jj = 1 + ll
4 | IF (cnt .LT. N) THEN
5 | cnt = cnt + 1
6 | temp(1, cnt) = xi(ii, jj)
7 | temp(2, cnt) = eta(ii, jj)
8 | END IF
9 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/vertex_3.inc:
--------------------------------------------------------------------------------
1 | ! v3
2 | ii = p + 1 - ll
3 | jj = q + 1 - ll
4 | IF (cnt .LT. N) THEN
5 | cnt = cnt + 1
6 | temp(1, cnt) = xi(ii, jj)
7 | temp(2, cnt) = eta(ii, jj)
8 | END IF
9 |
--------------------------------------------------------------------------------
/src/submodules/Polynomial/src/include/Quadrangle/vertex_4.inc:
--------------------------------------------------------------------------------
1 | ! v4
2 | ii = 1 + ll
3 | jj = q + 1 - ll
4 | IF (cnt .LT. N) THEN
5 | cnt = cnt + 1
6 | temp(1, cnt) = xi(ii, jj)
7 | temp(2, cnt) = eta(ii, jj)
8 | END IF
9 |
--------------------------------------------------------------------------------
/src/submodules/QuadraturePoint/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/QuadraturePoint_Method@IOMethods.F90
22 | ${src_path}/QuadraturePoint_Method@GetMethods.F90
23 | ${src_path}/QuadraturePoint_Method@ConstructorMethods.F90
24 | )
25 |
26 |
--------------------------------------------------------------------------------
/src/submodules/Random/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library
2 | # Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify
5 | # it under the terms of the GNU General Public License as published by
6 | # the Free Software Foundation, either version 3 of the License, or
7 | # (at your option) any later version.
8 | #
9 | # This program is distributed in the hope that it will be useful,
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | # GNU General Public License for more details.
13 | #
14 | # You should have received a copy of the GNU General Public License
15 | # along with this program. If not, see
16 | #
17 |
18 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | TARGET_SOURCES(
20 | ${PROJECT_NAME} PRIVATE
21 | ${src_path}/Random_Method@Methods.F90
22 | )
23 |
--------------------------------------------------------------------------------
/src/submodules/Rank2Tensor/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 4/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/Rank2Tensor_Method@ConstructorMethods.F90
13 | ${src_path}/Rank2Tensor_Method@IOMethods.F90
14 | ${src_path}/Rank2Tensor_Method@ContractionMethods.F90
15 | ${src_path}/Rank2Tensor_Method@InvarMethods.F90
16 | ${src_path}/Rank2Tensor_Method@OperatorMethods.F90
17 | ${src_path}/Rank2Tensor_Method@PullbackMethods.F90
18 | ${src_path}/Rank2Tensor_Method@PushForwardMethods.F90
19 | )
20 |
--------------------------------------------------------------------------------
/src/submodules/Rank2Tensor/src/old data/Stress/Interface.part:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/src/submodules/Rank2Tensor/src/old data/Stress/Interface.part
--------------------------------------------------------------------------------
/src/submodules/RealMatrix/src/RealMatrix_Method@BLASMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 |
--------------------------------------------------------------------------------
/src/submodules/RealMatrix/src/RealMatrix_Method@LAPACKMethods.F90:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | SUBMODULE(RealMatrix_Method) LAPACKMethods
19 | USE BaseMethod
20 | IMPLICIT NONE
21 | CONTAINS
22 | END SUBMODULE LAPACKMethods
23 |
--------------------------------------------------------------------------------
/src/submodules/STConvectiveMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/STConvectiveMatrix_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/STConvectiveMatrix/STConvectiveMatrix-old/MethodNames.part:
--------------------------------------------------------------------------------
1 | getConvectiveMatrix_1, &
2 | getConvectiveMatrix_2, &
3 | getConvectiveMatrix_3, &
4 | getConvectiveMatrix_4, &
5 | getConvectiveMatrix_5, &
6 | getConvectiveMatrix_6, &
7 | getConvectiveMatrix_7, &
8 | getConvectiveMatrix_8, &
9 | getConvectiveMatrix_9, &
10 | getConvectiveMatrix_10, &
11 | getConvectiveMatrix_11, &
12 | getConvectiveMatrix_12, &
13 | getConvectiveMatrix_13, &
14 | getConvectiveMatrix_14, &
15 | getConvectiveMatrix_15, &
16 | getConvectiveMatrix_16, &
17 | getConvectiveMatrix_17, &
18 | getConvectiveMatrix_18, &
19 | getConvectiveMatrix_19, &
20 | getConvectiveMatrix_20, &
21 | getConvectiveMatrix_21, &
22 | getConvectiveMatrix_22, &
23 | getConvectiveMatrix_23, &
24 | getConvectiveMatrix_24, &
25 | getConvectiveMatrix_25, &
26 | getConvectiveMatrix_26, &
27 | getConvectiveMatrix_27, &
28 | getConvectiveMatrix_28, &
29 | getConvectiveMatrix_29, &
30 | getConvectiveMatrix_30, &
31 | getConvectiveMatrix_31, &
32 | getConvectiveMatrix_32, &
33 | getConvectiveMatrix_33, &
34 | getConvectiveMatrix_34, &
35 | getConvectiveMatrix_35, &
36 | getConvectiveMatrix_36, &
37 | getConvectiveMatrix_37, &
38 | getConvectiveMatrix_38, &
39 | getConvectiveMatrix_39
40 |
--------------------------------------------------------------------------------
/src/submodules/STDiffusionMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/STDiffusionMatrix_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/STDiffusionMatrix/STDiffusionMatrix-old/MethodNames.part:
--------------------------------------------------------------------------------
1 | getDiffusionMatrix_1, &
2 | getDiffusionMatrix_2 , &
3 | getDiffusionMatrix_3 , &
4 | getDiffusionMatrix_4 , &
5 | getDiffusionMatrix_5 , &
6 | getDiffusionMatrix_6 , &
7 | getDiffusionMatrix_7 , &
8 | getDiffusionMatrix_8 , &
9 | getDiffusionMatrix_9 , &
10 | getDiffusionMatrix_10 , &
11 | getDiffusionMatrix_11 , &
12 | getDiffusionMatrix_12 , &
13 | getDiffusionMatrix_13 , &
14 | getDiffusionMatrix_14 , &
15 | getDiffusionMatrix_15 , &
16 | getDiffusionMatrix_16 , &
17 | getDiffusionMatrix_17 , &
18 | getDiffusionMatrix_18 , &
19 | getDiffusionMatrix_19 , &
20 | getDiffusionMatrix_20 , &
21 | getDiffusionMatrix_21 , &
22 | getDiffusionMatrix_22 , &
23 | getDiffusionMatrix_23 , &
24 | getDiffusionMatrix_24 , &
25 | getDiffusionMatrix_25 , &
26 | getDiffusionMatrix_26 , &
27 | getDiffusionMatrix_27 , &
28 | getDiffusionMatrix_28 , &
29 | getDiffusionMatrix_29 , &
30 | getDiffusionMatrix_30 , &
31 | getDiffusionMatrix_31
--------------------------------------------------------------------------------
/src/submodules/STFextVector/MethodNames.part:
--------------------------------------------------------------------------------
1 | getFextVector_1, &
2 | getFextVector_2, &
3 | getFextVector_3, &
4 | getFextVector_4, &
5 | getFextVector_5, &
6 | getFextVector_6, &
7 | getFextVector_7, &
8 | getFextVector_8, &
9 | getFextVector_9, &
10 | getFextVector_10, &
11 | getFextVector_11, &
12 | getFextVector_12, &
13 | getFextVector_13, &
14 | getFextVector_14, &
15 | getFextVector_15, &
16 | getFextVector_16, &
17 | getFextVector_17, &
18 | getFextVector_18, &
19 | getFextVector_19, &
20 | getFextVector_20, &
21 | getFextVector_21, &
22 | getFextVector_22, &
23 | getFextVector_23, &
24 | getFextVector_24, &
25 | getFextVector_25, &
26 | getFextVector_26
27 |
--------------------------------------------------------------------------------
/src/submodules/STFintVector/MethodNames.part:
--------------------------------------------------------------------------------
1 | getFintVector_1, &
2 | getFintVector_2, &
3 | getFintVector_3, &
4 | getFintVector_4, &
5 | getFintVector_5, &
6 | getFintVector_6, &
7 | getFintVector_7, &
8 | getFintVector_8
--------------------------------------------------------------------------------
/src/submodules/STForceVector/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/STForceVector_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/STMassMatrix_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_10a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | !----------------------------------------------------------------------------
19 | !
20 | !----------------------------------------------------------------------------
21 |
22 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
23 | #define _DIM1_ SIZE(vbar, 1)
24 | #define _DIM2_ 1
25 |
26 | PURE SUBROUTINE STMM_10a(ans, test, trial, term1, term2, rho)
27 | #include "./STMM_10.inc"
28 | END SUBROUTINE STMM_10a
29 |
30 | #undef _DIM1_
31 | #undef _DIM2_
32 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_10b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | !----------------------------------------------------------------------------
19 | !
20 | !----------------------------------------------------------------------------
21 |
22 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
23 | #define _DIM1_ 1
24 | #define _DIM2_ SIZE(vbar, 1)
25 |
26 | PURE SUBROUTINE STMM_10b(ans, test, trial, term1, term2, rho)
27 | #include "./STMM_10.inc"
28 | END SUBROUTINE STMM_10b
29 |
30 | #undef _DIM1_
31 | #undef _DIM2_
32 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_10c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | !----------------------------------------------------------------------------
19 | !
20 | !----------------------------------------------------------------------------
21 |
22 | #define _KIJ_ diag(vbar(:,ips, ipt))
23 | #define _DIM1_ SIZE(vbar, 1)
24 | #define _DIM2_ SIZE(vbar, 1)
25 |
26 | PURE SUBROUTINE STMM_10c(ans, test, trial, term1, term2, rho)
27 | #include "./STMM_10.inc"
28 | END SUBROUTINE STMM_10c
29 |
30 | #undef _DIM1_
31 | #undef _DIM2_
32 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_11a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ 1
24 |
25 | PURE SUBROUTINE STMM_11a(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_11.inc"
27 | END SUBROUTINE STMM_11a
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_11b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
22 | #define _DIM1_ 1
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_11b(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_11.inc"
27 | END SUBROUTINE STMM_11b
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_11c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ diag(vbar(:,ips, ipt))
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_11c(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_11.inc"
27 | END SUBROUTINE STMM_11c
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_12a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ 1
24 |
25 | PURE SUBROUTINE STMM_12a(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_12.inc"
27 | END SUBROUTINE STMM_12a
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_12b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
22 | #define _DIM1_ 1
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_12b(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_12.inc"
27 | END SUBROUTINE STMM_12b
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_12c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ diag(vbar(:,ips, ipt))
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_12c(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_12.inc"
27 | END SUBROUTINE STMM_12c
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_17.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | #define _NT1_ OUTERPROD(test(ipt)%N(:,ips), test(ipt)%T)
19 | #define _NT2_ OUTERPROD(trial(ipt)%N(:,ips), trial(ipt)%T)
20 | PURE SUBROUTINE STMM_17(ans, test, trial, term1, term2, c1, c2, opt)
21 | #include "./STMM_17_20.inc"
22 | END SUBROUTINE STMM_17
23 | #undef _NT1_
24 | #undef _NT2_
25 |
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_18.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | #define _NT1_ test(ipt)%dNTdt(:,:,ips)
19 | #define _NT2_ OUTERPROD(trial(ipt)%N(:,ips), trial(ipt)%T)
20 | PURE SUBROUTINE STMM_18(ans, test, trial, term1, term2, c1, c2, opt)
21 | #include "./STMM_17_20.inc"
22 | END SUBROUTINE STMM_18
23 | #undef _NT1_
24 | #undef _NT2_
25 |
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_19.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | #define _NT1_ OUTERPROD(test(ipt)%N(:,ips), test(ipt)%T)
19 | #define _NT2_ trial(ipt)%dNTdt(:,:,ips)
20 | PURE SUBROUTINE STMM_19(ans, test, trial, term1, term2, c1, c2, opt)
21 | #include "./STMM_17_20.inc"
22 | END SUBROUTINE STMM_19
23 | #undef _NT1_
24 | #undef _NT2_
25 |
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_20.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | #define _NT1_ test(ipt)%dNTdt(:,:,ips)
19 | #define _NT2_ trial(ipt)%dNTdt(:,:,ips)
20 | PURE SUBROUTINE STMM_20(ans, test, trial, term1, term2, c1, c2, opt)
21 | #include "./STMM_17_20.inc"
22 | END SUBROUTINE STMM_20
23 | #undef _NT1_
24 | #undef _NT2_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_21a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ 1
24 |
25 | PURE SUBROUTINE STMM_21a(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_21.inc"
27 | END SUBROUTINE STMM_21a
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_21b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
22 | #define _DIM1_ 1
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_21b(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_21.inc"
27 | END SUBROUTINE STMM_21b
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_21c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ diag(vbar(:,ips, ipt))
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_21c(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_21.inc"
27 | END SUBROUTINE STMM_21c
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_23a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ 1
24 |
25 | PURE SUBROUTINE STMM_23a(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_23.inc"
27 | END SUBROUTINE STMM_23a
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_23b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
22 | #define _DIM1_ 1
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_23b(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_23.inc"
27 | END SUBROUTINE STMM_23b
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_23c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ diag(vbar(:,ips, ipt))
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_23c(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_23.inc"
27 | END SUBROUTINE STMM_23c
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_24a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ 1
24 |
25 | PURE SUBROUTINE STMM_24a(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_24.inc"
27 | END SUBROUTINE STMM_24a
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_24b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
22 | #define _DIM1_ 1
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_24b(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_24.inc"
27 | END SUBROUTINE STMM_24b
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_24c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ diag(vbar(:,ips, ipt))
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_24c(ans, test, trial, term1, term2, c1, c2)
26 | #include "./STMM_24.inc"
27 | END SUBROUTINE STMM_24c
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_9a.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod(vbar(:,ips, ipt), [1.0_DFP])
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ 1
24 |
25 | PURE SUBROUTINE STMM_9a(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_9.inc"
27 | END SUBROUTINE STMM_9a
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
32 |
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_9b.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ outerprod([1.0_DFP], vbar(:,ips, ipt))
22 | #define _DIM1_ 1
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_9b(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_9.inc"
27 | END SUBROUTINE STMM_9b
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
--------------------------------------------------------------------------------
/src/submodules/STMassMatrix/src/STMM_9c.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | !----------------------------------------------------------------------------
18 | !
19 | !----------------------------------------------------------------------------
20 |
21 | #define _KIJ_ diag(vbar(:,ips, ipt))
22 | #define _DIM1_ SIZE(vbar, 1)
23 | #define _DIM2_ SIZE(vbar, 1)
24 |
25 | PURE SUBROUTINE STMM_9c(ans, test, trial, term1, term2, rho)
26 | #include "./STMM_9.inc"
27 | END SUBROUTINE STMM_9c
28 |
29 | #undef _DIM1_
30 | #undef _DIM2_
31 | #undef _KIJ_
32 |
--------------------------------------------------------------------------------
/src/submodules/STStiffnessMatrix/MethodNames.part:
--------------------------------------------------------------------------------
1 | getStiffnessMatrix_1, &
2 | getStiffnessMatrix_2, &
3 | getStiffnessMatrix_3, &
4 | getStiffnessMatrix_4, &
5 | getStiffnessMatrix_5, &
6 | getStiffnessMatrix_6, &
7 | getStiffnessMatrix_7, &
8 | getStiffnessMatrix_8, &
9 | getStiffnessMatrix_9, &
10 | getStiffnessMatrix_10, &
11 | getStiffnessMatrix_11, &
12 | getStiffnessMatrix_12, &
13 | getStiffnessMatrix_13, &
14 | getStiffnessMatrix_14
15 |
--------------------------------------------------------------------------------
/src/submodules/ST_Tau_SUPG_RGN/MdFiles/._ST_TAU_SUPG_RGN_Class.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/src/submodules/ST_Tau_SUPG_RGN/MdFiles/._ST_TAU_SUPG_RGN_Class.md
--------------------------------------------------------------------------------
/src/submodules/ST_Tau_SUPG_RGN/MethodNamesForScalar.part:
--------------------------------------------------------------------------------
1 | getSUPG_For_Scalar_1, &
2 | getSUPG_For_Scalar_2, &
3 | getSUPG_For_Scalar_3, &
4 | getSUPG_For_Scalar_4, &
5 | getSUPG_For_Scalar_5, &
6 | getSUPG_For_Scalar_6, &
7 | getSUPG_For_Scalar_7, &
8 | getSUPG_For_Scalar_8, &
9 | getSUPG_For_Scalar_9, &
10 | getSUPG_For_Scalar_10, &
11 | getSUPG_For_Scalar_11, &
12 | getSUPG_For_Scalar_12
13 |
--------------------------------------------------------------------------------
/src/submodules/ST_Tau_SUPG_RGN/MethodNamesForVector.part:
--------------------------------------------------------------------------------
1 | getSUPG_For_Vector_1, &
2 | getSUPG_For_Vector_2, &
3 | getSUPG_For_Vector_3, &
4 | getSUPG_For_Vector_4, &
5 | getSUPG_For_Vector_5, &
6 | getSUPG_For_Vector_6, &
7 | getSUPG_For_Vector_7, &
8 | getSUPG_For_Vector_8, &
9 | getSUPG_For_Vector_9, &
10 | getSUPG_For_Vector_10, &
11 | getSUPG_For_Vector_11, &
12 | getSUPG_For_Vector_12
--------------------------------------------------------------------------------
/src/submodules/StiffnessMatrix/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 1/03/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/StiffnessMatrix_Method@Methods.F90
13 | )
14 |
--------------------------------------------------------------------------------
/src/submodules/TriangleInterface/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This program is a part of EASIFEM library Copyright (C) 2020-2021 Vikas
2 | # Sharma, Ph.D
3 | #
4 | # This program is free software: you can redistribute it and/or modify it under
5 | # the terms of the GNU General Public License as published by the Free Software
6 | # Foundation, either version 3 of the License, or (at your option) any later
7 | # version.
8 | #
9 | # This program is distributed in the hope that it will be useful, but WITHOUT
10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12 | # details.
13 | #
14 | # You should have received a copy of the GNU General Public License along with
15 | # this program. If not, see
16 | #
17 |
18 | set(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
19 | target_sources(
20 | ${PROJECT_NAME}
21 | PRIVATE ${src_path}/TriangleInterface@Methods.F90)
22 |
--------------------------------------------------------------------------------
/src/submodules/TriangleInterface/src/definemacro.h:
--------------------------------------------------------------------------------
1 | #define C2F(a, c) IF(PRESENT(a)) CALL C_F_POINTER(obj % a, a, [c])
2 | #define MyNullify(a) obj % a = C_NULL_PTR
3 | #define SimpleSet(a) IF(PRESENT(a)) a = obj % a
4 | #define SimpleNull(a) obj % a = 0
5 |
--------------------------------------------------------------------------------
/src/submodules/TriangleInterface/src/undefinemacro.h:
--------------------------------------------------------------------------------
1 | #undef C2F
2 | #undef SimpleSet
3 | #undef SimpleNull
4 | #undef MyNullify
5 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Append/Append_1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | IF (.NOT. ALLOCATED(A)) THEN
18 | A = [Entry]
19 | ELSE
20 | n = SIZE(A); ALLOCATE (Dummy(n + 1))
21 | Dummy(1:n) = A; Dummy(1 + n) = Entry
22 | CALL MOVE_ALLOC(From=Dummy, TO=A)
23 | END IF
24 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Append/Append_1cd.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 | INTEGER(I4B) :: n
18 | !!
19 | n = SIZE(A)
20 | !!
21 | IF( n .NE. 0 ) THEN
22 | CALL Reallocate( C, n+1 )
23 | C(1:n) = A; C(1 + n) = B
24 | ELSE
25 | C = [B]
26 | END IF
27 | !!
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Append/Append_2abcd.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: na, nb, nc
19 |
20 | na = SIZE( A )
21 | nb = SIZE( B )
22 | nc = SIZE( C )
23 |
24 | CALL Reallocate( D, na+nb+nc )
25 | IF(na .gt. 0) D(1:na) = A
26 | IF(nb .gt. 0) D(na + 1: na+nb) = B
27 | IF(nc .gt. 0) D(na + nb + 1:) = C
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Append/Append_3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 |
17 | IF( mask ) THEN
18 | IF (.NOT. ALLOCATED(A)) THEN
19 | A = [Entry]
20 | ELSE
21 | n = SIZE(A); ALLOCATE (Dummy(n + 1))
22 | Dummy(1:n) = A; Dummy(1 + n) = Entry
23 | CALL MOVE_ALLOC(From=Dummy, TO=A)
24 | END IF
25 | ELSE
26 | IF (.NOT. ALLOCATED(A)) ALLOCATE( A( 0 ) )
27 | END IF
28 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Append/Append_3cd.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: n
19 | !!
20 | n = SIZE(A)
21 | !!
22 | IF( n .NE. 0 ) THEN
23 | !!
24 | IF( mask ) THEN
25 | CALL Reallocate( C, n+1 )
26 | C(1:n) = A; C(1 + n) = B
27 | ELSE
28 | CALL Reallocate( C, n )
29 | C = A
30 | END IF
31 | ELSE
32 | IF( mask ) THEN
33 | C = [B]
34 | ELSE
35 | CALL Reallocate( C, 0 )
36 | END IF
37 | END IF
38 | !!
--------------------------------------------------------------------------------
/src/submodules/Utility/src/ColConcat/ColConcat_1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: n
19 | n = MAX(SIZE(a), SIZE(b))
20 | CALL reallocate(ans, n, 2)
21 | ans(1:SIZE(a), 1) = a
22 | ans(1:SIZE(b), 2) = b
23 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/ColConcat/ColConcat_2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: nrow, ncol
19 |
20 | nrow = MAX(SIZE(a,1), SIZE(b))
21 | ncol = SIZE(a,2) + 1
22 | CALL reallocate(ans, nrow, ncol)
23 | ans(1:SIZE(a,1), 1:size(a,2) ) = a
24 | ans(1:SIZE(b), ncol) = b
25 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/ColConcat/ColConcat_3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: nrow, ncol
19 |
20 | nrow = MAX(SIZE(b,1), SIZE(a))
21 | ncol = SIZE(b,2) + 1
22 | CALL reallocate(ans, nrow, ncol)
23 | ans(1:SIZE(a), 1) = a
24 | ans(1:SIZE(b,1), 2:) = b
25 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/ColConcat/ColConcat_4.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: nrow, ncol
19 |
20 | nrow = MAX(SIZE(a, 1), SIZE(b, 1))
21 | ncol = SIZE(a, 2) + SIZE(b, 2)
22 |
23 | CALL reallocate(ans, nrow, ncol)
24 |
25 | ans(1:SIZE(a, 1), 1:SIZE(a, 2)) = a
26 |
27 | ans(1:SIZE(b, 1), SIZE(a, 2) + 1:) = b
28 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Diag/Tridiag.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: da_No, db_No
19 | ans = Diag(d)
20 | da_No = ABS(INPUT(option=diagNo, default=1))
21 | db_No = -da_No
22 | CALL SetDiag(mat=ans, d=da, diagNo=da_No)
23 | CALL SetDiag(mat=ans, d=db, diagNo=db_No)
24 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/In/In_1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 |
19 | INTEGER(I4B) :: ii
20 |
21 | ans = .TRUE.
22 | IF (SIZE(a) .GT. SIZE(b)) THEN
23 | ans = .FALSE.
24 | RETURN
25 | END IF
26 |
27 | DO ii = 1, SIZE(a)
28 | IF (.NOT. ANY(a(ii) .EQ. b)) THEN
29 | ans = .FALSE.
30 | EXIT
31 | END IF
32 | END DO
33 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/In/IsIn_1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | !!
19 | INTEGER(I4B) :: ii
20 | !!
21 | DO ii = 1, SIZE(a)
22 | ans( ii ) = ANY(a(ii) .EQ. b)
23 | END DO
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Input/Input1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | IF(PRESENT(option) )THEN
19 | ans=option
20 | ELSE
21 | ans=default
22 | ENDIF
--------------------------------------------------------------------------------
/src/submodules/Utility/src/InsertionSort/ArgInsertionSort.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: ii, jj
19 |
20 | DO ii = low, high
21 | DO jj = ii, low + 1, -1
22 | IF (array(arg(jj)) < array(arg(jj - 1))) THEN
23 | CALL SWAP(arg(jj), arg(jj - 1))
24 | ELSE
25 | EXIT
26 | END IF
27 | END DO
28 | END DO
29 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/InsertionSort/InsertionSort.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: ii, jj
19 |
20 | DO ii = low, high
21 | DO jj = ii, low + 1, -1
22 | IF (array(jj) < array(jj - 1)) THEN
23 | CALL SWAP(array(jj), array(jj - 1))
24 | ELSE
25 | EXIT
26 | END IF
27 | END DO
28 | END DO
29 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Intersection/Intersection.inc:
--------------------------------------------------------------------------------
1 | INTEGER(I4B) :: tsize1, tsize2, ii
2 |
3 | tsize1 = SIZE(a)
4 | tsize2 = SIZE(b)
5 | tsize = 0
6 |
7 | IF (tsize1 .LE. tsize2) THEN
8 | DO ii = 1, tsize1
9 | IF (ANY(a(ii) .EQ. b)) THEN
10 | tsize = tsize + 1
11 | c(tsize) = a(ii)
12 | END IF
13 | END DO
14 | RETURN
15 | END IF
16 |
17 | DO ii = 1, tsize2
18 | IF (ANY(b(ii) .EQ. a)) THEN
19 | tsize = tsize + 1
20 | c(tsize) = b(ii)
21 | END IF
22 | END DO
23 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/IntroSort/ArgIntroSort.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/IntroSort/IntroSort.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Median/ArgMedian.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | IF (this(indx(right)) < this(indx(left))) CALL swap(indx(left), indx(right))
19 | IF (this(indx(mid)) < this(indx(left))) CALL swap(indx(mid), indx(left))
20 | IF (this(indx(right)) < this(indx(mid))) CALL swap(indx(right), indx(mid))
21 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Median/Median.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | if (this(right) < this(left)) call swap(this(left), this(right))
19 | if (this(mid) < this(left)) call swap(this(mid), this(left))
20 | if (this(right) < this(mid)) call swap(this(right), this(mid))
21 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Partition/ArgPartition.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 |
19 | pivot = this(idx(left))
20 | lo = left + 1; hi = right
21 | DO WHILE (lo <= hi)
22 | DO WHILE (this(idx(hi)) > pivot)
23 | hi = hi - 1
24 | END DO
25 | DO WHILE (lo <= hi .AND. this(idx(lo)) <= pivot)
26 | lo = lo + 1
27 | END DO
28 | IF (lo <= hi) THEN
29 | CALL swap(idx(lo), idx(hi))
30 | lo = lo + 1; hi = hi - 1
31 | END IF
32 | END DO
33 | CALL swap(idx(left), idx(hi))
34 | i = hi
35 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Partition/Partition.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 |
19 | pivot = this(left)
20 | lo = left; hi = right
21 | DO WHILE (lo <= hi)
22 | DO WHILE (this(hi) > pivot)
23 | hi = hi - 1
24 | END DO
25 |
26 | DO WHILE (lo <= hi .AND. this(lo) <= pivot)
27 | lo = lo + 1
28 | END DO
29 | IF (lo <= hi) THEN
30 | CALL swap(this(lo), this(hi))
31 | lo = lo + 1; hi = hi - 1
32 | END IF
33 | END DO
34 | CALL swap(this(left), this(hi))
35 | iPivot = hi
36 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/PushPop/Pop_Scalar.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: n, ii
19 | !!
20 | n = SIZE(vec)
21 | !!
22 | IF (n .EQ. 1) RETURN
23 | !!
24 | IF (pos .GT. n) THEN
25 | ans = vec(1:n - 1)
26 | RETURN
27 | END IF
28 | !!
29 | IF (pos .LT. 1_I4B) THEN
30 | ans = vec(2:n)
31 | RETURN
32 | END IF
33 | !!
34 | DO ii = 1, pos - 1
35 | ans(ii) = vec(ii)
36 | END DO
37 |
38 | DO ii = pos, n - 1
39 | ans(ii) = vec(ii + 1)
40 | END DO
41 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/PushPop/Push_Scalar.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: n, ii
19 | !!
20 | n = SIZE(vec)
21 | !!
22 | IF (pos .GT. n) THEN
23 | ans(1:n) = vec
24 | ans(n + 1) = value
25 | RETURN
26 | END IF
27 | !!
28 | IF (pos .LT. 1_I4B) THEN
29 | ans(1) = value
30 | ans(2:n + 1) = vec
31 | RETURN
32 | END IF
33 | !!
34 | ans(pos) = value
35 | DO ii = 1, pos - 1
36 | ans(ii) = vec(ii)
37 | END DO
38 |
39 | DO ii = pos, n
40 | ans(ii + 1) = vec(ii)
41 | END DO
42 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/QuickSort/QuickSort1Vec.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) i, iPivot
19 |
20 | iPivot = high
21 | i = low
22 | DO WHILE (iPivot > i)
23 | IF (vect1(i) > vect1(iPivot)) THEN
24 | CALL Swap(vect1(i), vect1(iPivot - 1))
25 | CALL Swap(vect1(iPivot - 1), vect1(iPivot))
26 | iPivot = iPivot - 1
27 | ELSE
28 | i = i + 1
29 | END IF
30 | END DO
31 | IF (low < high) THEN
32 | CALL QuickSort(vect1, low, iPivot - 1)
33 | CALL QuickSort(vect1, iPivot + 1, high)
34 | END IF
35 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/RemoveDuplicates/RemoveDuplicates_2.inc:
--------------------------------------------------------------------------------
1 | ! Define internal variables
2 | INTEGER(I4B) :: ii, n
3 |
4 | tsize = SIZE(obj)
5 | IF (tsize .LE. 1) RETURN
6 |
7 | IF (.NOT. isSorted) CALL QUICKSORT(obj, 1_I4B, tsize)
8 |
9 | DO CONCURRENT(ii=1:tsize)
10 | temp(ii) = obj(ii)
11 | obj(ii) = 0
12 | END DO
13 |
14 | obj(1) = temp(1)
15 |
16 | n = 1
17 | DO ii = 2, tsize
18 | IF (temp(ii) .NE. temp(ii - 1)) THEN
19 | n = n + 1
20 | obj(n) = temp(ii)
21 | END IF
22 | END DO
23 |
24 | tsize = n
25 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Repeat/Repeat_1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: n, i
19 | n = SIZE(Val)
20 | Ans(1:n) = Val
21 | DO i = 1, rtimes - 1
22 | Ans(i * n + 1:(i + 1) * n) = Val
23 | END DO
24 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/RowConcat/RowConcat_1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: ncol, nrow
19 |
20 | nrow = 2
21 | ncol = MAX(SIZE(a), SIZE(b))
22 |
23 | CALL reallocate(ans, nrow, ncol)
24 |
25 | ans(1, 1:SIZE(a)) = a
26 |
27 | ans(2, 1:SIZE(b)) = b
28 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/RowConcat/RowConcat_2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: nrow, ncol
19 |
20 | nrow = SIZE(a,1) + 1
21 |
22 | ncol = MAX(SIZE(a,2), SIZE(b))
23 |
24 | CALL reallocate(ans, nrow, ncol)
25 |
26 | ans(1:SIZE(a,1), 1:size(a,2) ) = a
27 |
28 | ans(nrow, 1:SIZE(b) ) = b
29 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/RowConcat/RowConcat_3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: nrow, ncol
19 |
20 | nrow = SIZE(b,1) + 1
21 | ncol = MAX(SIZE(b,2), SIZE(a))
22 |
23 | CALL reallocate(ans, nrow, ncol)
24 |
25 | ans(1, 1:SIZE(a)) = a
26 |
27 | ans(2:, 1:SIZE(b,2)) = b
28 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/RowConcat/RowConcat_4.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: nrow, ncol
19 |
20 | ncol = MAX(SIZE(a, 2), SIZE(b, 2))
21 |
22 | nrow = SIZE(a, 1) + SIZE(b, 1)
23 |
24 | CALL reallocate(ans, nrow, ncol)
25 |
26 | ans(1:SIZE(a, 1), 1:SIZE(a, 2)) = a
27 |
28 | ans(SIZE(a, 1) + 1:, 1:SIZE(b, 2)) = b
29 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Sym/GetSym.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B) :: ii, jj
19 | SELECT CASE (from)
20 | CASE ("L", "l")
21 | DO CONCURRENT(ii=1:SIZE(mat, 1), jj=1:SIZE(mat, 2))
22 | IF (ii .GE. jj) mat(jj, ii) = mat(ii, jj)
23 | END DO
24 | CASE ("u", "U")
25 | DO CONCURRENT(ii=1:SIZE(mat, 1), jj=1:SIZE(mat, 2))
26 | IF (ii .GE. jj) mat(ii, jj) = mat(jj, ii)
27 | END DO
28 | END SELECT
29 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/GetTril1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | lu = 0.0_DFP
22 | indx = TrilIndx(A, diagNo)
23 | DO CONCURRENT(ii=1:SIZE(indx, 1))
24 | lu(indx(ii, 1), indx(ii, 2)) = A(indx(ii, 1), indx(ii, 2))
25 | END DO
26 | DEALLOCATE (indx)
27 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/GetTril2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: tsize, ii, jj
20 | !
21 | indx = TrilIndx(A, diagNo)
22 | tsize = SIZE(indx, 1)
23 | !
24 | CALL Reallocate(lu, tsize)
25 | !
26 | jj = 0
27 | !
28 | DO ii = 1, tsize
29 | jj = jj + 1
30 | lu(jj) = A(indx(ii, 1), indx(ii, 2))
31 | END DO
32 | !
33 | DEALLOCATE (indx)
34 |
35 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/GetTriu1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | lu = 0.0_DFP
22 | indx = TriuIndx(A, diagNo)
23 | DO CONCURRENT(ii=1:SIZE(indx, 1))
24 | lu(indx(ii, 1), indx(ii, 2)) = A(indx(ii, 1), indx(ii, 2))
25 | END DO
26 | DEALLOCATE (indx)
27 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/GetTriu2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: tsize, ii, jj
20 | !
21 | indx = TriuIndx(A, diagNo)
22 | tsize = SIZE(indx, 1)
23 | !
24 | CALL REALLOCATE(lu, tsize)
25 | !
26 | jj = 0
27 | !
28 | DO ii = 1, tsize
29 | jj = jj + 1
30 | lu(jj) = A(indx(ii, 1), indx(ii, 2))
31 | END DO
32 | !
33 | DEALLOCATE (indx)
34 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/SetTril1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | indx = TrilIndx(A, diagNo)
22 | DO CONCURRENT(ii=1:SIZE(indx, 1))
23 | A(indx(ii, 1), indx(ii, 2)) = lu(indx(ii, 1), indx(ii, 2))
24 | END DO
25 | DEALLOCATE (indx)
26 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/SetTril2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: tsize, ii, jj
20 | !
21 | indx = TrilIndx(A, diagNo)
22 | tsize = SIZE(indx, 1)
23 | !
24 | jj = 0
25 | !
26 | DO ii = 1, tsize
27 | jj = jj + 1
28 | A(indx(ii, 1), indx(ii, 2)) = lu(jj)
29 | END DO
30 | !
31 | DEALLOCATE (indx)
32 |
33 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/SetTril3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | indx = TrilIndx(A, diagNo)
22 | DO CONCURRENT(ii=1:SIZE(indx, 1))
23 | A(indx(ii, 1), indx(ii, 2)) = val
24 | END DO
25 | DEALLOCATE (indx)
26 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/SetTriu1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | indx = TriuIndx(A, diagNo)
22 | DO CONCURRENT(ii=1:SIZE(indx, 1))
23 | A(indx(ii, 1), indx(ii, 2)) = lu(indx(ii, 1), indx(ii, 2))
24 | END DO
25 | DEALLOCATE (indx)
26 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/SetTriu2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: tsize, ii, jj
20 | !
21 | indx = TriuIndx(A, diagNo)
22 | tsize = SIZE(indx, 1)
23 | !
24 | jj = 0
25 | !
26 | DO ii = 1, tsize
27 | jj = jj + 1
28 | A(indx(ii, 1), indx(ii, 2)) = lu(jj)
29 | END DO
30 | !
31 | DEALLOCATE (indx)
32 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/SetTriu3.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | indx = TriuIndx(A, diagNo)
22 | DO CONCURRENT(ii=1:SIZE(indx, 1))
23 | A(indx(ii, 1), indx(ii, 2)) = val
24 | END DO
25 | DEALLOCATE (indx)
26 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/Tril1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | ans = 0.0_DFP
22 | indx = TrilIndx(A, diagNo)
23 | DO CONCURRENT(ii=1:SIZE(indx, 1))
24 | ans(indx(ii, 1), indx(ii, 2)) = A(indx(ii, 1), indx(ii, 2))
25 | END DO
26 | DEALLOCATE (indx)
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/Tril2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: tsize, ii, jj
20 | !
21 | indx = TrilIndx(A, diagNo)
22 | tsize = SIZE(indx, 1)
23 | !
24 | ALLOCATE (ans(tsize))
25 | !
26 | jj = 0
27 | !
28 | DO ii = 1, tsize
29 | jj = jj + 1
30 | ans(jj) = A(indx(ii, 1), indx(ii, 2))
31 | END DO
32 | !
33 | DEALLOCATE (indx)
34 |
35 |
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/Triu1.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: ii
20 | !
21 | ans = 0.0_DFP
22 | indx = TriuIndx(A, diagNo)
23 | DO CONCURRENT(ii=1:SIZE(indx, 1))
24 | ans(indx(ii, 1), indx(ii, 2)) = A(indx(ii, 1), indx(ii, 2))
25 | END DO
26 | DEALLOCATE (indx)
--------------------------------------------------------------------------------
/src/submodules/Utility/src/Triag/Triu2.inc:
--------------------------------------------------------------------------------
1 | ! This program is a part of EASIFEM library
2 | ! Copyright (C) 2020-2021 Vikas Sharma, Ph.D
3 | !
4 | ! This program is free software: you can redistribute it and/or modify
5 | ! it under the terms of the GNU General Public License as published by
6 | ! the Free Software Foundation, either version 3 of the License, or
7 | ! (at your option) any later version.
8 | !
9 | ! This program is distributed in the hope that it will be useful,
10 | ! but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | ! GNU General Public License for more details.
13 | !
14 | ! You should have received a copy of the GNU General Public License
15 | ! along with this program. If not, see
16 | !
17 |
18 | INTEGER(I4B), ALLOCATABLE :: indx(:, :)
19 | INTEGER(I4B) :: tsize, ii, jj
20 | !
21 | indx = TriuIndx(A, diagNo)
22 | tsize = SIZE(indx, 1)
23 | !
24 | ALLOCATE (ans(tsize))
25 | !
26 | jj = 0
27 | !
28 | DO ii = 1, tsize
29 | jj = jj + 1
30 | ans(jj) = A(indx(ii, 1), indx(ii, 2))
31 | END DO
32 | !
33 | DEALLOCATE (indx)
34 |
--------------------------------------------------------------------------------
/src/submodules/Vector3D/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 23/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/Vector3D_Method@Constructor.F90
13 | ${src_path}/Vector3D_Method@Misc.F90
14 | )
--------------------------------------------------------------------------------
/src/submodules/Vector3D/Vector3D_Method@Misc.F90:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easifem/base/ed1acf98b678aef38192a76f1461fb57e79c113e/src/submodules/Vector3D/Vector3D_Method@Misc.F90
--------------------------------------------------------------------------------
/src/submodules/VoigtRank2Tensor/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # This file is a part of easifem-base
2 | # (c) 2021, Vikas Sharma, Ph.D.
3 | # All right reserved
4 | #
5 | # log
6 | # 23/02/2021 this file was created
7 | #-----------------------------------------------------------------------
8 |
9 | SET(src_path "${CMAKE_CURRENT_LIST_DIR}/src/")
10 | TARGET_SOURCES(
11 | ${PROJECT_NAME} PRIVATE
12 | ${src_path}/VoigtRank2Tensor_Method@Constructor.F90
13 | ${src_path}/VoigtRank2Tensor_Method@IO.F90
14 | )
15 |
--------------------------------------------------------------------------------