!Implementation for 1D solver for charged particles. Added a 1D case for

testing. Still, no formal test has been performed so issues may appear.
This commit is contained in:
Jorge Gonzalez 2020-12-07 09:12:30 +01:00
commit d69b59143d
14 changed files with 3229 additions and 403 deletions

View file

@ -45,9 +45,6 @@ MODULE moduleInput
CALL verboseError('Reading Case Parameters...')
CALL readCase(config)
!Read boundary for EM field
CALL readEMBoundary(config)
!Read injection of particles
CALL verboseError('Reading Interactions between species...')
CALL readInject(config)
@ -164,6 +161,11 @@ MODULE moduleInput
!Gets the solver for the electromagnetic field
CALL config%get(object // '.EMSolver', EMType, found)
CALL solver%initEM(EMType)
SELECT CASE(EMType)
CASE("Electrostatic")
CALL readEMBoundary(config)
END SELECT
!Gest the non-analogue scheme
CALL config%get(object // '.NAScheme', NAType, found)
@ -351,7 +353,8 @@ MODULE moduleInput
!Read the geometry (mesh) for the case
SUBROUTINE readGeometry(config)
USE moduleMesh
USE moduleMeshCylRead
USE moduleMeshCylRead, ONLY: meshCylGeneric
USE moduleMesh1DRead, ONLY: mesh1DGeneric
USE moduleErrors
USE moduleOutput
USE json_module
@ -369,26 +372,31 @@ MODULE moduleInput
!Creates a 2D cylindrical mesh
ALLOCATE(meshCylGeneric:: mesh)
!Gets the type of mesh
CALL config%get('geometry.meshType', meshType, found)
SELECT CASE(meshType)
CASE ("gmsh")
!Gets the gmsh file
CALL config%get('geometry.meshFile', meshFile, found)
CASE DEFAULT
CALL criticalError("Mesh type " // meshType // " not supported.", "readGeometry")
END SELECT
!Reads the mesh
fullpath = path // meshFile
CALL mesh%readMesh(fullPath)
CASE ("1DCart")
!Creates a 1D cartesian mesh
ALLOCATE(mesh1DGeneric:: mesh)
CASE DEFAULT
CALL criticalError("Geometry type " // geometryType // " not supported.", "readGeometry")
END SELECT
!Gets the type of mesh
CALL config%get('geometry.meshType', meshType, found)
SELECT CASE(meshType)
CASE ("gmsh")
!Gets the gmsh file
CALL config%get('geometry.meshFile', meshFile, found)
CASE DEFAULT
CALL criticalError("Mesh type " // meshType // " not supported.", "readGeometry")
END SELECT
!Reads the mesh
fullpath = path // meshFile
CALL mesh%readMesh(fullPath)
END SUBROUTINE readGeometry
SUBROUTINE readEMBoundary(config)