Coder Social home page Coder Social logo

easifem / classes Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 14.79 MB

Expandable And Scalable Infrastructure for Finite Element Methods, EASIFEM, is [Modern Fortran](https://fortran-lang.org) framework for solving partial differential equations (PDEs) using finite element methods. EASIFEM "eases" the efforts to develop scientific programs in Fortran.

Home Page: https://www.easifem.com

License: Other

Fortran 86.52% C++ 7.19% Makefile 0.18% Shell 0.01% CMake 3.24% Python 0.09% C 2.08% Pascal 0.01% HTML 0.69%
finite-element-analysis finite-element-methods fortran freesoftware open-source geomechanics modern-fortran soil-mechanics solid-mechanics fluid-mechanics

classes's Introduction

EASIFEM

Introduction

About

EASIFEM stands for Expandable And Scalable infrastructure for Finite Element Method. It is a framework for developing code for finite element method by using modern fortran. The framework has been developed in Modern-Fortran programming language. The library is still in the development stage. EASIFEM is written both in OOP and Multiple dispatch approach.

Capabilities

The goal of EASIFEM is to ease the coding of FEM by using fortran language. The library is developed for developing code for complex problems related to multiphysics and multiphase problems. EASIFEM will facilitate an environment where new FEM can be implemented easily while decreasing the time required for writing the code.

Dr Vikas Sharma, the creator EASIFEM conducts his research in the area of computational geomechanics. Therefore, so far, easifem has been used to develop applications related to dam-reservoir-soil interactions, seismic cracking of dams, nonlinear seismic behavior of earthdams, high-order accurate solvers for transient problems, space-time finite element methods for moving boundary problems, simulation of freezing and thawing in frozen soils, among others.

EASIFEM describes all types of datatype required for coding FEM, such as string, file, vector, array, degrees of freedom, indices, mesh, nodes, finite elements, domain, shape functions, quadrature rules, linear solver, sparse and dense matrix, iterative and non iterative solvers, among others. EASIFEM also have a strong interface with the GMSH for pre- and post- processing. In addition, it provides great interface with PARAVIEW for visualization of results.

In future, EASIFEM, will also act as a platform to use exisiting finite element libraries in effortless manner. The vision of EASIFEM will always be to keep FEM programming easy and ellegant.

Bug Reporting

ChangeLog

License

ToDo

Installation

Installing

Usage

Structure

Base

BoundingBox Buffer DOF
ElemShapeData FEMatrix FEVariable
File IndexValue IterationData
KeyValue QuadraturePoint Random
Tensor ReferenceElement RealMatrix
SparseMatrix IntVector RealVector
AbstractArray AbstractMatrix AbstractVector
BaseMethod BaseType BlasInterface
ErrorHandling GlobalData IO
Utility

Dependencies

Contributing

Credits

classes's People

Contributors

shishiousan avatar vickysharma0812 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

mfkiwl

classes's Issues

Mesh operators

We need to add following new methods to operate on meshes.

  • Add and subtract two meshes
  • Take union, intersection of two meshes
  • Define search algorithm
  • Nearest element search algorithm

Regards
Vikas

HDF5_Methods

Currently, Import methods in the HDF5_Method module do not check the existence of a path.

Also, Both export and import methods should have an exception handler as an argument, so that errors can be captured easily.

Regards
Vikas

Setting size of local_nptrs

Local_Nptrs used in Mesh_ and Domain_ should start from minNptrs to maxNptrs instead to 1 to maxNptrs
While exporting data, also export the lower and upper bound. And while importing use them.

If in the hdf5file these bounds are absent then you can start from 1 to maxNptrs.

Regards
Vikas

`MeshSelection_` Enhancement

We need following enhancement in MeshSelection_

  • Add facility to select the mesh by using the BoundingBox
  • Add facility to select the mesh by using element numbers
  • Add facility to select the mesh by using the nodal coordinates
  • Add facility to select the mesh by using the element numbers
  • Add facility to select the mesh using graphic user interface.

Regards
Vikas

Types of Domain

We need to specify following type of relation between two domains

  1. p-type

  2. h-type

  3. r-type

  4. overset

  5. p-type

  • Same Geometry
  • Same number of elements
  • CellToCell is identity
  • Different number of nodes
  • Different order
  1. h-type
  • Same Geometry
  • Different number of elements
  • Different number of nodes
  • Same order
  • Same element topology for a given mesh pair
  • CellToCell(iel1) will be given be a collection of elements in domain 2
  1. r-type
  • Same geometry
  • Same number of nodes
  • Same number of elements
  • CellToCell is the identity
  • NodeToNode is also an identity
  • However, sizes of element may change, position of internal coordinate would be different
  • Position of nodes at the boundary may change.

HDFFile Write and Read Attributes

Currently HDFFile_ contains four methods to write and read attributes to data set.
Currently, scalar char, string, int, and real can be read and write as attributes.

To do

  • WriteAttribute and ReadAttribute for 1D/2D char, string, logical, and real and int

CMake ๐Ÿ› Ninja ๐Ÿž Warning

CMake with Ninja Generator produces following ๐Ÿž Warnings ๐Ÿข

-- Build files have been written to: /home/vikassharma/temp/easifem-classes/build
[172/344] Building Fortran object CMakeFile...ionHandler/src/ExceptionHandler_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/ExceptionHandler/src/ExceptionHandler_Class.f90:26:59:

   26 | ! - FAILURE: this exception is for reporting a failure. It's exact purpose
      |                                                           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/ExceptionHandler/src/ExceptionHandler_Class.f90:224:54:

  224 | ! summary:  Returns a pointer to an exception handler's surrogate
      |                                                      1
Warning: missing terminating ' character
[175/344] Building Fortran object CMakeFile...s/AbstractFile/src/AbstractFile_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/AbstractFile/src/AbstractFile_Class.f90:35:12:

   35 | ! one of it's extended types for examples on how it should be used.
      |            1
Warning: missing terminating ' character
[180/344] Building Fortran object CMakeFile...c/modules/HDF5File/src/HDF5File_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/HDF5File/src/HDF5File_Class.f90:596:77:

  596 | ! This way of choosing the chunk size ONLY considers the memory overhead. It's
      |                                                                             1
Warning: missing terminating ' character
[187/344] Building Fortran object CMakeFile.../modules/GmshAPI/src/GmshOnelab_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshOnelab_Class.f90:83:81:

   83 | ! summary: Set one or more parameters in the ONELAB database, encoded in `format'.
      |                                                                                 1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshOnelab_Class.f90:87:72:

   87 | ! Set one or more parameters in the ONELAB database, encoded in `format'.
      |                                                                        1
Warning: missing terminating ' character
[188/344] Building Fortran object CMakeFile...rc/modules/GmshAPI/src/GmshFLTK_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:125:75:

  125 | ! initialized. Can only be called in the main thread: use `awake("update")'
      |                                                                           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:142:59:

  142 | ! optionally perform an action (currently the only `action' allowed is
      |                                                           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:194:10:

  194 | ! `wait()'. First automatically create the user interface if it has not yet
      |          1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:232:49:

  232 | ! Select entities in the user interface. If `dim' is >= 0, return only the
      |                                                 1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:233:59:

  233 | ! entities of the specified dimension (e.g. points if `dim' == 0). */
      |                                                           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:301:49:

  301 | ! Split the current window horizontally (if `how' = "h") or vertically (if
      |                                                 1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:302:45:

  302 | ! `how' = "v"), using ratio `ratio'. If `how' = "u", restore a single window.
      |                                             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:345:59:

  345 | ! Set a status message in the current window. If `graphics' is set, display
      |                                                           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:389:17:

  389 | ! Open the `name' item in the menu tree. */
      |                 1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/GmshFLTK_Class.f90:410:18:

  410 | ! Close the `name' item in the menu tree. */
      |                  1
Warning: missing terminating ' character
[195/344] Building Fortran object CMakeFile...r/src/modules/MSH/src/mshFormat_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/MSH/src/mshFormat_Class.f90:23:8:

   23 | !  Gmsh's msh4 file format contains mesh format in $MeshFormat section. The class mshFormat_ handles this section. An example is given below.
      |        1
Warning: missing terminating ' character
[196/344] Building Fortran object CMakeFile...odules/MSH/src/mshPhysicalNames_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/MSH/src/mshPhysicalNames_Class.f90:89:24:

   89 |       !! Enquire about "volume, surface, curve, point'
      |                        1
Warning: missing terminating " character
[211/344] Building Fortran object 'CMakeFil...r/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/ExceptionHandler/src/[email protected]:94:71:

   94 |     !Since the state of the log file can change (e.g. closed) check it's
      |                                                                       1
Warning: missing terminating ' character
[215/344] Building Fortran object CMakeFile...ir/src/modules/GmshAPI/src/Gmsh_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/Gmsh_Class.f90:178:9:

  178 |       & "Gmsh is already initiated; hint: You can run finalize(), &
      |         1
Warning: missing terminating " character
/home/vikassharma/Dropbox/easifem-classes/src/modules/GmshAPI/src/Gmsh_Class.f90:179:25:

  179 |       & the initialize()")
      |                         1
Warning: missing terminating " character
[224/344] Building Fortran object 'CMakeFil...rc/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/HDF5File/src/[email protected]:104:30:

  104 |       ! Creating it so we don't keep truncating it repeatedly.
      |                              1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/HDF5File/src/[email protected]:174:57:

  174 |     !So, HDF5 is special in that the unitno assigned isn't used in the
      |                                                         1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/HDF5File/src/[email protected]:860:33:

  860 |     !Create the path if it doesn't exist
      |                                 1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/HDF5File/src/[email protected]:907:13:

  907 |           & ' - Size of new data is greater than size of pre-existing data &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/HDF5File/src/[email protected]:908:18:

  908 |           & type:'//path)
      |                  1
Warning: missing terminating ' character
[256/344] Building Fortran object 'CMakeFil...s/XMLFile/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/XMLFile/src/[email protected]:270:9:

  270 |       & ' - Error has occured while writing header info in VTKFile &
      |         1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/XMLFile/src/[email protected]:271:67:

  271 |       & iostat = ' // trim(str(iostat, .true.)) // ' error msg :: ' // &
      |                                                                   1
Warning: missing terminating ' character
[260/344] Building Fortran object 'CMakeFil.../XMLFile/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/XMLFile/src/[email protected]:316:27:

  316 |               & supported!')
      |                           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/XMLFile/src/[email protected]:337:31:

  337 |                   & supported!')
      |                               1
Warning: missing terminating ' character
[264/344] Building Fortran object CMakeFile...modules/LinSolver/src/LinSolver_Class.f90.o
/home/vikassharma/Dropbox/easifem-classes/src/modules/LinSolver/src/LinSolver_Class.f90:51:60:

   51 | ! [[LinSolver_]] data type is a container around Yusef Saad's LinSolver
      |                                                            1
Warning: missing terminating ' character
[271/344] Building Fortran object 'CMakeFil.../VTKFile/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/VTKFile/src/[email protected]:61:9:

   61 |       & ' - Error has occured while writing header info in VTKFile &
      |         1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/VTKFile/src/[email protected]:62:65:

   62 |       & iostat = ' // trim(str(ierr, .true.)) // ' error msg :: ' // &
      |                                                                 1
Warning: missing terminating ' character
[284/344] Building Fortran object 'CMakeFil...H/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MSH/src/[email protected]:180:27:

  180 |         WRITE( I, "(A)" ) "| Sr.No. |  NSD  | Physical Tag | Physical Name |&
      |                           1
Warning: missing terminating " character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MSH/src/[email protected]:181:33:

  181 |           & NumElem | NumNodes |"
      |                                 1
Warning: missing terminating " character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MSH/src/[email protected]:182:27:

  182 |         WRITE( I, "(A)" ) "| :---   | :---: | :---:        | :---:          | &
      |                           1
Warning: missing terminating " character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MSH/src/[email protected]:183:27:

  183 |           & :---: | ---: |"
      |                           1
Warning: missing terminating " character
[299/344] Building Fortran object 'CMakeFil...n/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MeshSelection/src/[email protected]:65:7:

   65 |     & 'Currently mesh selection is possible through (xidim, meshID), &
      |       1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MeshSelection/src/[email protected]:66:49:

   66 |     & and (xidim, elemNum). We are working on it' )
      |                                                 1
Warning: missing terminating ' character
[330/344] Building Fortran object 'CMakeFil...src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MatrixField/src/[email protected]:42:7:

   42 |     & 'obj%Pmat is not associted/ allocated. LUSOLVE needs LU &
      |       1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/MatrixField/src/[email protected]:44:63:

   44 |     & setPrecondition() method to build LU matrix in obj%Pmat.')
      |                                                               1
Warning: missing terminating ' character
[335/344] Building Fortran object 'CMakeFil...ver/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/LinSolver/src/[email protected]:217:9:

  217 |       & "The values of `fpar(1)` and `fpar(2)` are both <= 0, the valid &
      |         1
Warning: missing terminating " character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/LinSolver/src/[email protected]:219:30:

  219 |       & zero at the same time" )
      |                              1
Warning: missing terminating " character
[337/344] Building Fortran object '[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:112:13:

  112 |           & 'When meshSelection is by MeshID and useFunction is false, then &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:113:71:

  113 |           & nodalValue type in DirichletBC_ object should be constant.' )
      |                                                                       1
Warning: missing terminating ' character
[338/344] Building Fortran object 'CMakeFil...tBC/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:39:11:

   39 |         & 'You can either set values using a function, or by provinding &
      |           1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:40:39:

   40 |         & nodalValue, but not the both')
      |                                       1
Warning: missing terminating ' character
[340/344] Building Fortran object 'CMakeFil...tBC/src/[email protected]'
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:70:13:

   70 |           & 'When NodalValueType is Space and UseFunction is specified, &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:71:68:

   71 |           & then SpaceFunction is needed, but it is not associated!' )
      |                                                                    1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:82:13:

   82 |           & 'When NodalValueType is Time and UseFunction is specified, &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:83:67:

   83 |           & then TimeFunction is needed, but it is not associated!' )
      |                                                                   1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:87:13:

   87 |           & 'When NodalValueType is Time and UseFunction is specified, &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:88:69:

   88 |           & then times is needed as argument, but it is not present!' )
      |                                                                     1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:99:13:

   99 |           & 'When NodalValueType is SpaceTime and UseFunction is specified, &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:100:72:

  100 |           & then SpaceTimeFunction is needed, but it is not associated!' )
      |                                                                        1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:104:13:

  104 |           & 'When NodalValueType is SpaceTime and UseFunction is specified, &
      |             1
Warning: missing terminating ' character
/home/vikassharma/Dropbox/easifem-classes/src/submodules/DirichletBC/src/[email protected]:105:69:

  105 |           & then times is needed as argument, but it is not present!' )
      |                                                                     1
Warning: missing terminating ' character

Bug in mesh_deallocate

In mesh_deallocate

  IF( ALLOCATED( obj%facetData ) ) THEN
    CALL e%raiseDebug(modName//'::'//myName// " - "// &
      & 'We cannot deallocate facetData, there is some bug' )
    DEALLOCATE( obj%facetData )
  END IF

This code produces following error.

HDF5File Wishlist

We need the following features in HDF5File_

  • obj%flush()
  • obj%open_group
  • obj%close_group
  • obj%ndims()
  • obj%shape()
  • obj%softlink()
  • obj%isContiguous()
  • obj%isCompact()
  • obj%isChunk()
  • obj%getChunk()
  • obj%write(self, dname, value, ierr, compact)
  • obj%write(self,dname,value, ierr, chunk_size, istart, iend, stride, compact)
  • obj%read(self,dname,value, ierr, chunk_size, istart, iend, stride, compact)

โค๏ธ `Domain_` Class โš”๏ธ PhysicalNames โค๏ธ

Domain class

Currently Domain_ class and mesh format contains the information of physicalNames. These physicalNames represents a collection of geometric entities, that is, a collection of meshes.

Any way, originally these variables were kept because we were reading gmsh mesh file, also soon it is realized that these variables should not be a part of domain_ data. This is because the physicalNames depends upon the the physics of the problem. Therefore, these variables should be removed from the Domain_ class.

  • Remove physical names, variables related stuffs from domain
  • Stop exporting physical names and variables related stuff from the gmsh mesh file

Regards
Vikas

Block Node Field

Need BlockNodeField_ as an extended child of AbstractNodeField_.

Regards
Vikas

`LinSolver_Class` Bug

Currently, Iteration numbers are not calculated correctly. That is why using obj%iter as an index of obj%RES is dangerous [ErrorBound].

For each iterative method determine the number of Mat-vector in an iteration. Then use something like following

ii = MOD(obj%iter, number-of-matvec) 
if ii .eq. 0 .and obj%iter .ne. 0 then
jj = jj + 1
obj%RES(jj) = residual-error

Regards
Vikas ๐ŸŒž

MSHFile

In MSHFile_Class MSHFileRead routine

INTERFACE
MODULE SUBROUTINE msh_Read(obj, error )
  CLASS( MSHFile_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), OPTIONAL, INTENT( INOUT ) :: error
END SUBROUTINE msh_Read
END INTERFACE

change error to iostat for consistency purposes!

New methods in `MSHFile_Class`

We should add following functionality in MSH_ Class

  • Import Import from the HDF5_ file
  • Export export to different formats like VTU

Regards
Vikas

Bug in Mesh_ Initiate

Mesh_test_10.F90
behaves unexpectedly.

Why local_nptrs are not allocated?
Why element data is not allocate?

# readFromFile : T
# isNodeToElementsInitiated : F
# isNodeToNodesInitiated : F
# isElementToElementsInitiated : F
# isBoundaryDataInitiated : F
# uid : 7
# xidim : 1
# elemType : 0
# nsd : 2
# maxNptrs : 0
# minNptrs : 0
# maxElemNum : 0
# minElemNum : 0
# tNodes : 1
# tIntNodes : 19
# tElements : 0
# minX : 1.00000
# maxX : 1.00000
# minY : 0.00000
# maxY : 2.00000
# minZ : 0.00000
# maxZ : 0.00000
# X : 0.00000
# Y : 0.00000
# Z : 0.00000
# physicalTag : 
----------------
# physicalTag : 
----------------
# Local_Nptrs : NOT ALLOCATED
# refElem : ASSOCIATED
# nodeData : ALLOCATED
# elementData : NOT ALLOCATED

Simplify node field class

Currently AbstractNodeField contains realVector instance, there is no need for it. please use allocatable fortran array rank1

GmshAPI + ONELAB

ONELAB can allow us to interact with the the gmsh GUI.

  • Add a new class called the gmshOnelab
  • Create interface to onelab functions of libgmsh

Regards
Vikas

Field

In the child class of field class, we employ the set method. In the Set method, include addContribution, which is a logical variable, so that we can add the contribution.

VTK enhancement

Something like following should be added to EASIFEM.

Regards
Vikas

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.