riemann2d.f90
Go to the documentation of this file.
1 !#############################################################################
2 !# #
3 !# fosite - 3D hydrodynamical simulation program #
4 !# module: riemann2d.f90 #
5 !# #
6 !# Copyright (C) 2006-2019 #
7 !# Tobias Illenseer <tillense@astrophysik.uni-kiel.de> #
8 !# #
9 !# This program is free software; you can redistribute it and/or modify #
10 !# it under the terms of the GNU General Public License as published by #
11 !# the Free Software Foundation; either version 2 of the License, or (at #
12 !# your option) any later version. #
13 !# #
14 !# This program is distributed in the hope that it will be useful, but #
15 !# WITHOUT ANY WARRANTY; without even the implied warranty of #
16 !# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or #
17 !# NON INFRINGEMENT. See the GNU General Public License for more #
18 !# details. #
19 !# #
20 !# You should have received a copy of the GNU General Public License #
21 !# along with this program; if not, write to the Free Software #
22 !# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #
23 !# #
24 !#############################################################################
465 PROGRAM riemann2d
466  USE fosite_mod
467 #include "tap.h"
468  IMPLICIT NONE
469  !--------------------------------------------------------------------------!
470  ! simulation parameter
471  INTEGER, PARAMETER :: icnum = 19 ! initial condition (see ref. [3])
472  REAL, PARAMETER :: gamma = 1.4 ! ratio of specific heats
473  ! mesh settings
474  INTEGER, PARAMETER :: mgeo = cartesian ! geometry of the mesh
475 !!$ INTEGER, PARAMETER :: MGEO = POLAR
476 !!$ INTEGER, PARAMETER :: MGEO = LOGPOLAR
477 !!$ INTEGER, PARAMETER :: MGEO = TANPOLAR
478 !!$ INTEGER, PARAMETER :: MGEO = SINHPOLAR
479  INTEGER, PARAMETER :: xres = 100 ! resolution
480  INTEGER, PARAMETER :: yres = 100
481  INTEGER, PARAMETER :: zres = 1
482  REAL, PARAMETER :: rmin = 1.0e-4 ! inner radius for polar grids
483  ! output file parameter
484  INTEGER, PARAMETER :: onum = 1 ! number of output data sets
485  CHARACTER(LEN=256), PARAMETER & ! output data dir
486  :: odir = './'
487  CHARACTER(LEN=256), PARAMETER & ! output data file name
488  :: ofname = 'riemann2d'
489  !--------------------------------------------------------------------------!
490  CLASS(fosite),Dimension(:), ALLOCATABLE :: sim
491  INTEGER :: ic
492  !--------------------------------------------------------------------------!
493 
494  tap_plan(icnum)
495 
496  ALLOCATE(sim(icnum))
497 
498 
499 
500  DO ic=1,icnum
501 
502  CALL sim(ic)%InitFosite()
503 
504  CALL makeconfig(sim(ic), sim(ic)%config, ic)
505 
506 ! CALL PrintDict(config)
507 
508  CALL sim(ic)%Setup()
509 
510  ! set initial condition
511  CALL initdata(sim(ic)%Mesh, sim(ic)%Physics, sim(ic)%Timedisc, ic)
512  CALL sim(ic)%Run()
513 
514  CALL sim(ic)%Finalize()
515  tap_check(.true.,"Simulation finished")
516 
517  END DO
518 
519  DEALLOCATE(sim)
520 
521  tap_done
522 
523 CONTAINS
524 
525  SUBROUTINE makeconfig(Sim, config, ic)
526  USE functions, ONLY : asinh
527  IMPLICIT NONE
528  !------------------------------------------------------------------------!
529  CLASS(Fosite) :: Sim
530  TYPE(Dict_TYP),POINTER :: config
531  INTEGER :: ic
532  !------------------------------------------------------------------------!
533  ! Local variable declaration
534  INTEGER :: bc(6)
535  TYPE(Dict_TYP), POINTER :: mesh, physics, boundary, datafile, &
536  timedisc, fluxes
537  REAL :: x1,x2,y1,y2,z1,z2,sc
538  REAL :: test_stoptime
539  CHARACTER(LEN=3) :: fext
540  !------------------------------------------------------------------------!
541  INTENT(INOUT) :: sim
542  INTENT(IN) :: ic
543  !------------------------------------------------------------------------!
544  ! mesh settings and boundary conditions
545  SELECT CASE(mgeo)
546  CASE(cartesian)
547  sc = 1.0
548  x1 = -0.5
549  x2 = 0.5
550  y1 = -0.5
551  y2 = 0.5
552  z1 = -0.0
553  z2 = 0.0
554  bc(west) = no_gradients
555  bc(east) = no_gradients
556  bc(south) = no_gradients
557  bc(north) = no_gradients
558  bc(bottom)= no_gradients
559  bc(top) = no_gradients
560 ! CASE(POLAR)
561 ! sc = 1.0
562 ! x1 = RMIN
563 ! x2 = 0.5*SQRT(2.0)
564 ! y1 = 0.0
565 ! y2 = 2*PI
566 ! bc(WEST) = NO_GRADIENTS
567 ! bc(EAST) = NO_GRADIENTS
568 ! bc(SOUTH) = PERIODIC
569 ! bc(NORTH) = PERIODIC
570 ! CASE(LOGPOLAR)
571 ! sc = 0.3
572 ! x1 = LOG(RMIN/sc)
573 ! x2 = LOG(0.5*SQRT(2.0)/sc)
574 ! y1 = 0.0
575 ! y2 = 2*PI
576 ! bc(WEST) = NO_GRADIENTS
577 ! bc(EAST) = NO_GRADIENTS
578 ! bc(SOUTH) = PERIODIC
579 ! bc(NORTH) = PERIODIC
580 ! CASE(TANPOLAR)
581 ! sc = 0.3
582 ! x1 = ATAN(RMIN/sc)
583 ! x2 = ATAN(0.5*SQRT(2.0)/sc)
584 ! y1 = 0.0
585 ! y2 = 2*PI
586 ! bc(WEST) = NO_GRADIENTS
587 ! bc(EAST) = NO_GRADIENTS
588 ! bc(SOUTH) = PERIODIC
589 ! bc(NORTH) = PERIODIC
590 ! CASE(SINHPOLAR)
591 ! sc = 0.3
592 ! x1 = Asinh(RMIN/sc)
593 ! x2 = Asinh(0.5*SQRT(2.0)/sc)
594 ! y1 = 0.0
595 ! y2 = 2*PI
596 ! bc(WEST) = NO_GRADIENTS
597 ! bc(EAST) = NO_GRADIENTS
598 ! bc(SOUTH) = PERIODIC
599 ! bc(NORTH) = PERIODIC
600  CASE DEFAULT
601  CALL sim%Physics%Error("riemann2d::MakeConfig", &
602  " geometry should be one of cartesian,polar,logpolar,tanpolar,sinhpolar")
603  END SELECT
604 
605  ! mesh settings
606  mesh => dict("meshtype" / midpoint, &
607  "geometry" / mgeo, &
608  "inum" / xres, &
609  "jnum" / yres, &
610  "knum" / zres, &
611  "xmin" / x1, &
612  "xmax" / x2, &
613  "ymin" / y1, &
614  "ymax" / y2, &
615  "zmin" / z1, &
616  "zmax" / z2, &
617  "gparam" / sc)
618 
619  ! boundary conditions
620  boundary => dict("western" / bc(west), &
621  "eastern" / bc(east), &
622  "southern" / bc(south), &
623  "northern" / bc(north), &
624  "bottomer" / bc(bottom),&
625  "topper" / bc(top))
626 
627  ! physics settings
628  physics => dict("problem" / euler, &
629  "gamma" / gamma) ! ratio of specific heats !
630 
631  ! flux calculation and reconstruction method
632  fluxes => dict("order" / linear, &
633  "fluxtype" / kt, &
634  "variables" / conservative, & ! vars. to use for reconstruction!
635  "limiter" / monocent, & ! one of: minmod, monocent,... !
636  "theta" / 1.2) ! optional parameter for limiter !
637 
638  ! runtime of the test problem
639  SELECT CASE(ic)
640  CASE(1) ! KT test 1
641  test_stoptime = 0.2
642  CASE(2) ! Riemann problem no. 2
643  test_stoptime = 0.2
644  CASE(3) ! Riemann problem no. 3
645  test_stoptime = 0.3
646  CASE(4) ! Riemann problem no. 4
647  test_stoptime = 0.25
648  CASE(5) ! Riemann problem no. 5
649  test_stoptime = 0.23
650  CASE(6) ! Riemann problem no. 6
651  test_stoptime = 0.3
652  CASE(7) ! Riemann problem no. 7
653  test_stoptime = 0.25
654  CASE(8) ! Riemann problem no. 8
655  test_stoptime = 0.25
656  CASE(9) ! Riemann problem no. 9
657  test_stoptime = 0.3
658  CASE(10) ! Riemann problem no. 10
659  test_stoptime = 0.15
660  CASE(11) ! Riemann problem no. 11
661  test_stoptime = 0.3
662  CASE(12) ! Riemann problem no. 12
663  test_stoptime = 0.25
664  CASE(13) ! Riemann problem no. 13
665  test_stoptime = 0.3
666  CASE(14) ! Riemann problem no. 14
667  test_stoptime = 0.1
668  CASE(15) ! Riemann problem no. 15
669  test_stoptime = 0.2
670  CASE(16) ! Riemann problem no. 16
671  test_stoptime = 0.2
672  CASE(17) ! Riemann problem no. 17
673  test_stoptime = 0.3
674  CASE(18) ! Riemann problem no. 18
675  test_stoptime = 0.2
676  CASE(19) ! Riemann problem no. 19
677  test_stoptime = 0.3
678  CASE DEFAULT
679  CALL sim%Physics%Error("InitProgram", &
680  "Sorry, this 2D Riemann problem is currently not supported!")
681  END SELECT
682 
683  ! time discretization settings
684  timedisc => dict( &
685  "method" / modified_euler, &
686  "order" / 3, &
687  "cfl" / 0.4, &
688  "stoptime" / test_stoptime, &
689  "dtlimit" / 1.0e-10, &
690  "maxiter" / 10000000)
691 
692  ! initialize data input/output
693  ! append test number to file names
694  WRITE (fext, '(A,I2.2)') "_", ic
695 ! datafile => Dict("fileformat" / VTK, &
696  datafile => dict( &
697  ! "fileformat" / GNUPLOT, "filecycles" / 0, &
698  "fileformat" / vtk, &
699  "filename" / (trim(odir) // trim(ofname) // trim(fext)), &
700  "count" / onum)
701 
702  config => dict("mesh" / mesh, &
703  "physics" / physics, &
704  "boundary" / boundary, &
705  "fluxes" / fluxes, &
706  "timedisc" / timedisc, &
707 ! "logfile" / logfile, &
708  "datafile" / datafile)
709  END SUBROUTINE makeconfig
710 
712  SUBROUTINE initdata(Mesh,Physics,Timedisc,ic)
713  IMPLICIT NONE
714  !------------------------------------------------------------------------!
715  CLASS(Physics_base) :: Physics
716  CLASS(Mesh_base) :: Mesh
717  CLASS(Timedisc_base):: Timedisc
718  INTEGER :: ic
719  !------------------------------------------------------------------------!
720  ! Local variable declaration
721  REAL, DIMENSION(Mesh%IGMIN:Mesh%IGMAX,Mesh%JGMIN:Mesh%JGMAX, & Mesh%KGMIN:Mesh%KGMAX,2) :: vxy
722  REAL :: xmin,ymin,xmax,ymax,x0,y0
723 #ifdef PARALLEL
724  REAL :: xmin_all,xmax_all,ymin_all,ymax_all
725  INTEGER :: ierr
726 #endif
727  CHARACTER(LEN=64) :: teststr
728  !------------------------------------------------------------------------!
729  INTENT(IN) :: mesh,physics,ic
730  INTENT(INOUT) :: timedisc
731  !------------------------------------------------------------------------!
732  ! minima and maxima of _cartesian_ coordinates
733  xmin = minval(mesh%bccart(:,:,:,1))
734  ymin = minval(mesh%bccart(:,:,:,2))
735  xmax = maxval(mesh%bccart(:,:,:,1))
736  ymax = maxval(mesh%bccart(:,:,:,2))
737 #ifdef PARALLEL
738  CALL mpi_allreduce(xmin,xmin_all,1,default_mpi_real,mpi_min,mesh%comm_cart,ierr)
739  xmin = xmin_all
740  CALL mpi_allreduce(ymin,ymin_all,1,default_mpi_real,mpi_min,mesh%comm_cart,ierr)
741  ymin = ymin_all
742  CALL mpi_allreduce(xmax,xmax_all,1,default_mpi_real,mpi_max,mesh%comm_cart,ierr)
743  xmax = xmax_all
744  CALL mpi_allreduce(ymax,ymax_all,1,default_mpi_real,mpi_max,mesh%comm_cart,ierr)
745  ymax = ymax_all
746 #endif
747  x0 = xmin + 0.5*abs(xmax-xmin)
748  y0 = ymin + 0.5*abs(ymax-ymin)
749 
750  timedisc%pvar%data4d(:,:,:,:) = 0.
751  vxy(:,:,:,:) = 0.
752 
753  SELECT CASE(ic)
754  CASE(1)
755  teststr = "2D Riemann problem no. 1"
756  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
757  ! no. 1
758  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
759  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
760  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
761  ! no. 2
762  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5197
763  vxy(:,:,:,1) = -.7259
764  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .4
765  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
766  ! no. 3
767  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .1072
768  vxy(:,:,:,1) = -.7259
769  vxy(:,:,:,2) = -1.4045
770  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .0439
771  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
772  ! no. 4
773  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .2579
774  vxy(:,:,:,2) = -1.4045
775  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .15
776  END WHERE
777 
778  CASE(2)
779  teststr = "2D Riemann problem no. 2"
780  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
781  ! no. 1
782  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
783  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
784  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
785  ! no. 2
786  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5197
787  vxy(:,:,:,1) = -.7259
788  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .4
789  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
790  ! no. 3
791  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
792  vxy(:,:,:,1) = -.7259
793  vxy(:,:,:,2) = -.7259
794  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
795  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
796  ! no. 4
797  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5197
798  vxy(:,:,:,2) = -.7259
799  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .4
800  END WHERE
801 
802  CASE(3)
803  teststr = "2D Riemann problem no. 3"
804  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
805  ! no. 1
806  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.5
807  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.5
808  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
809  ! no. 2
810  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5323
811  vxy(:,:,:,1) = 1.206
812  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .3
813  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
814  ! no. 3
815  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.138
816  vxy(:,:,:,1) = 1.206
817  vxy(:,:,:,2) = 1.206
818  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.029
819  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
820  ! no. 4
821  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5323
822  vxy(:,:,:,2) = 1.206
823  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .3
824  END WHERE
825 
826  CASE(4)
827  teststr = "2D Riemann problem no. 4"
828  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
829  ! no. 1
830  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.1
831  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.1
832  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
833  ! no. 2
834  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5065
835  vxy(:,:,:,1) = .8939
836  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .35
837  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
838  ! no. 3
839  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.1
840  vxy(:,:,:,1) = .8939
841  vxy(:,:,:,2) = .8939
842  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.1
843  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
844  ! no. 4
845  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = .5065
846  vxy(:,:,:,2) = .8939
847  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = .35
848  END WHERE
849 
850  CASE(5)
851  teststr = "2D Riemann problem no. 5"
852  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
853  ! no. 1
854  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
855  vxy(:,:,:,1) = -.75
856  vxy(:,:,:,2) = -.5
857  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
858  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
859  ! no. 2
860  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
861  vxy(:,:,:,1) = -.75
862  vxy(:,:,:,2) = .5
863  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
864  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
865  ! no. 3
866  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
867  vxy(:,:,:,1) = .75
868  vxy(:,:,:,2) = .5
869  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
870  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
871  ! no. 4
872  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 3.
873  vxy(:,:,:,1) = .75
874  vxy(:,:,:,2) = -.5
875  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
876  END WHERE
877  CASE(6)
878  teststr = "2D Riemann problem no. 6"
879  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
880  ! no. 1
881  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
882  vxy(:,:,:,1) = 0.75
883  vxy(:,:,:,2) = -0.5
884  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
885  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
886  ! no. 2
887  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
888  vxy(:,:,:,1) = 0.75
889  vxy(:,:,:,2) = 0.5
890  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
891  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
892  ! no. 3
893  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
894  vxy(:,:,:,1) = -0.75
895  vxy(:,:,:,2) = 0.5
896  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
897  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
898  ! no. 4
899  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 3.
900  vxy(:,:,:,1) = -0.75
901  vxy(:,:,:,2) = -0.5
902  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
903  END WHERE
904  CASE(7)
905  teststr = "2D Riemann problem no. 7"
906  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
907  ! no. 1
908  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
909  vxy(:,:,:,1) = 0.1
910  vxy(:,:,:,2) = 0.1
911  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
912  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
913  ! no. 2
914  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
915  vxy(:,:,:,1) = -0.6259
916  vxy(:,:,:,2) = 0.1
917  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
918  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
919  ! no. 3
920  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.8
921  vxy(:,:,:,1) = 0.1
922  vxy(:,:,:,2) = 0.1
923  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
924  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
925  ! no. 4
926  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
927  vxy(:,:,:,1) = 0.1
928  vxy(:,:,:,2) = -0.6259
929  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
930  END WHERE
931  CASE(8)
932  teststr = "2D Riemann problem no. 8"
933  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
934  ! no. 1
935  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
936  vxy(:,:,:,1) = 0.1
937  vxy(:,:,:,2) = 0.1
938  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
939  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
940  ! no. 2
941  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
942  vxy(:,:,:,1) = -0.6259
943  vxy(:,:,:,2) = 0.1
944  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
945  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
946  ! no. 3
947  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.8
948  vxy(:,:,:,1) = 0.1
949  vxy(:,:,:,2) = 0.1
950  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
951  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
952  ! no. 4
953  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
954  vxy(:,:,:,1) = 0.1
955  vxy(:,:,:,2) = -0.6259
956  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
957  END WHERE
958  CASE(9)
959  teststr = "2D Riemann problem no. 9"
960  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
961  ! no. 1
962  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
963  vxy(:,:,:,1) = 0.
964  vxy(:,:,:,2) = 0.3
965  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
966  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
967  ! no. 2
968  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
969  vxy(:,:,:,1) = 0.
970  vxy(:,:,:,2) = -0.3
971  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
972  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
973  ! no. 3
974  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.039
975  vxy(:,:,:,1) = 0.
976  vxy(:,:,:,2) = -0.8133
977  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
978  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
979  ! no. 4
980  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
981  vxy(:,:,:,1) = 0.
982  vxy(:,:,:,2) = -0.4259
983  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
984  END WHERE
985  CASE(10)
986  teststr = "2D Riemann problem no. 10"
987  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
988  ! no. 1
989  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
990  vxy(:,:,:,1) = 0.
991  vxy(:,:,:,2) = 0.4297
992  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
993  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
994  ! no. 2
995  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5
996  vxy(:,:,:,1) = 0.
997  vxy(:,:,:,2) = 0.6076
998  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
999  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1000  ! no. 3
1001  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.2281
1002  vxy(:,:,:,1) = 0.
1003  vxy(:,:,:,2) = -0.6076
1004  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.3333
1005  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1006  ! no. 4
1007  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.4562
1008  vxy(:,:,:,1) = 0.
1009  vxy(:,:,:,2) = -0.4297
1010  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.3333
1011  END WHERE
1012  CASE(11)
1013  teststr = "2D Riemann problem no. 11"
1014  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1015  ! no. 1
1016  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1017  vxy(:,:,:,1) = 0.1
1018  vxy(:,:,:,2) = 0.
1019  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1020  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1021  ! no. 2
1022  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5313
1023  vxy(:,:,:,1) = 0.8276
1024  vxy(:,:,:,2) = 0.
1025  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1026  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1027  ! no. 3
1028  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.8
1029  vxy(:,:,:,1) = 0.1
1030  vxy(:,:,:,2) = 0.
1031  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1032  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1033  ! no. 4
1034  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5313
1035  vxy(:,:,:,1) = 0.1
1036  vxy(:,:,:,2) = 0.7276
1037  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1038  END WHERE
1039  CASE(12)
1040  teststr = "2D Riemann problem no. 12"
1041  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1042  ! no. 1
1043  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5313
1044  vxy(:,:,:,1) = 0.
1045  vxy(:,:,:,2) = 0.
1046  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1047  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1048  ! no. 2
1049  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1050  vxy(:,:,:,1) = 0.7276
1051  vxy(:,:,:,2) = 0.
1052  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1053  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1054  ! no. 3
1055  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.8
1056  vxy(:,:,:,1) = 0.
1057  vxy(:,:,:,2) = 0.
1058  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1059  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1060  ! no. 4
1061  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1062  vxy(:,:,:,1) = 0.
1063  vxy(:,:,:,2) = 0.7276
1064  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1065  END WHERE
1066  CASE(13)
1067  teststr = "2D Riemann problem no. 13"
1068  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1069  ! no. 1
1070  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1071  vxy(:,:,:,1) = 0.
1072  vxy(:,:,:,2) = -0.3
1073  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1074  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1075  ! no. 2
1076  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
1077  vxy(:,:,:,1) = 0.
1078  vxy(:,:,:,2) = 0.3
1079  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1080  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1081  ! no. 3
1082  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.0625
1083  vxy(:,:,:,1) = 0.
1084  vxy(:,:,:,2) = 0.8145
1085  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1086  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1087  ! no. 4
1088  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5313
1089  vxy(:,:,:,1) = 0.
1090  vxy(:,:,:,2) = 0.4276
1091  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1092  END WHERE
1093  CASE(14)
1094  teststr = "2D Riemann problem no. 14"
1095  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1096  ! no. 1
1097  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
1098  vxy(:,:,:,1) = 0.
1099  vxy(:,:,:,2) = -0.5606
1100  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 8.
1101  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1102  ! no. 2
1103  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1104  vxy(:,:,:,1) = 0.
1105  vxy(:,:,:,2) = -1.2172
1106  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 8.
1107  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1108  ! no. 3
1109  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.4736
1110  vxy(:,:,:,1) = 0.
1111  vxy(:,:,:,2) = 1.2172
1112  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 2.6667
1113  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1114  ! no. 4
1115  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.9474
1116  vxy(:,:,:,1) = 0.
1117  vxy(:,:,:,2) = 1.1606
1118  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 2.6667
1119  END WHERE
1120  CASE(15)
1121  teststr = "2D Riemann problem no. 15"
1122  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1123  ! no. 1
1124  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1125  vxy(:,:,:,1) = 0.1
1126  vxy(:,:,:,2) = -0.3
1127  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1128  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1129  ! no. 2
1130  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
1131  vxy(:,:,:,1) = -0.6259
1132  vxy(:,:,:,2) = -0.3
1133  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1134  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1135  ! no. 3
1136  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.8
1137  vxy(:,:,:,1) = 0.1
1138  vxy(:,:,:,2) = -0.3
1139  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1140  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1141  ! no. 4
1142  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5313
1143  vxy(:,:,:,1) = 0.1
1144  vxy(:,:,:,2) = 0.4276
1145  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1146  END WHERE
1147  CASE(16)
1148  teststr = "2D Riemann problem no. 16"
1149  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1150  ! no. 1
1151  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5313
1152  vxy(:,:,:,1) = 0.1
1153  vxy(:,:,:,2) = 0.1
1154  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1155  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1156  ! no. 2
1157  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.02222
1158  vxy(:,:,:,1) = -0.6179
1159  vxy(:,:,:,2) = 0.1
1160  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1161  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1162  ! no. 3
1163  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.8
1164  vxy(:,:,:,1) = 0.1
1165  vxy(:,:,:,2) = 0.1
1166  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1167  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1168  ! no. 4
1169  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1170  vxy(:,:,:,1) = 0.1
1171  vxy(:,:,:,2) = 0.8276
1172  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1173  END WHERE
1174  CASE(17)
1175  teststr = "2D Riemann problem no. 17"
1176  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1177  ! no. 1
1178  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1179  vxy(:,:,:,1) = 0.
1180  vxy(:,:,:,2) = -0.4
1181  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1182  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1183  ! no. 2
1184  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
1185  vxy(:,:,:,1) = 0.
1186  vxy(:,:,:,2) = -0.3
1187  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1188  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1189  ! no. 3
1190  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.0625
1191  vxy(:,:,:,1) = 0.
1192  vxy(:,:,:,2) = 0.2145
1193  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1194  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1195  ! no. 4
1196  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
1197  vxy(:,:,:,1) = 0.
1198  vxy(:,:,:,2) = -1.1259
1199  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1200  END WHERE
1201 
1202  CASE(18)
1203  teststr = "2D Riemann problem no. 18"
1204  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1205  ! no. 1
1206  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1207  vxy(:,:,:,1) = 0.
1208  vxy(:,:,:,2) = 1.
1209  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1210  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1211  ! no. 2
1212  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
1213  vxy(:,:,:,1) = 0.
1214  vxy(:,:,:,2) = -0.3
1215  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1216  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1217  ! no. 3
1218  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.0625
1219  vxy(:,:,:,1) = 0.
1220  vxy(:,:,:,2) = 0.2145
1221  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1222  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1223  ! no. 4
1224  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
1225  vxy(:,:,:,1) = 0.
1226  vxy(:,:,:,2) = 0.2741
1227  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1228  END WHERE
1229 
1230  CASE(19)
1231  teststr = "2D Riemann problem no. 19"
1232  WHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1233  ! no. 1
1234  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.
1235  vxy(:,:,:,1) = 0.
1236  vxy(:,:,:,2) = 0.3
1237  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1238  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).GE.y0) )
1239  ! no. 2
1240  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 2.
1241  vxy(:,:,:,1) = 0.
1242  vxy(:,:,:,2) = -0.3
1243  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 1.
1244  ELSEWHERE ( (mesh%bccart(:,:,:,1).LT.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1245  ! no. 3
1246  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 1.0625
1247  vxy(:,:,:,1) = 0.
1248  vxy(:,:,:,2) = 0.2145
1249  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1250  ELSEWHERE ( (mesh%bccart(:,:,:,1).GE.x0).AND.(mesh%bccart(:,:,:,2).LT.y0) )
1251  ! no. 4
1252  timedisc%pvar%data4d(:,:,:,physics%DENSITY) = 0.5197
1253  vxy(:,:,:,1) = 0.
1254  vxy(:,:,:,2) = -0.4259
1255  timedisc%pvar%data4d(:,:,:,physics%PRESSURE) = 0.4
1256  END WHERE
1257 
1258  CASE DEFAULT
1259  CALL mesh%Error("InitData", &
1260  "Sorry, this 2D Riemann problem is currently not supported!")
1261  END SELECT
1262 
1263 ! CALL Mesh%geometry%Convert2Curvilinear(Mesh%bcenter,vxy,&
1264 ! Timedisc%pvar%data4d(:,:,:,Physics%XVELOCITY:Physics%YVELOCITY))
1265  timedisc%pvar%data4d(:,:,:,physics%XVELOCITY) = vxy(:,:,:,1)
1266  timedisc%pvar%data4d(:,:,:,physics%YVELOCITY) = vxy(:,:,:,2)
1267  CALL physics%Convert2Conservative(timedisc%pvar,timedisc%cvar)
1268  CALL mesh%Info(" DATA-----> initial condition: " // trim(teststr))
1269 
1270  END SUBROUTINE initdata
1271 
1272 END PROGRAM riemann2d
1331 
Mathematical functions.
Definition: functions.f90:48
subroutine initdata(Mesh, Physics, Fluxes, Timedisc)
Definition: bondi2d.f90:274
main fosite class
Definition: fosite.f90:71
elemental real function, public asinh(x)
inverse hyperbolic sine function
Definition: functions.f90:100
program riemann2d
Definition: riemann2d.f90:465
subroutine makeconfig(Sim, config)
Definition: bondi2d.f90:165