Commit ba819485 authored by Paola Bacigaluppi's avatar Paola Bacigaluppi
Browse files

Updated the Readme, The test 1D Sod problem with some files (run_tests) to run...

Updated the Readme, The test 1D Sod problem with some files (run_tests) to run the test on diverse mesh sizes by doing e.g ./run_tests Sod B1 from the B1 folder, and a python script to plot B1,B2,B3 on the diverse meshes and for different variables
parent f9d52e4d
No preview for this file type
\documentclass{article}
\usepackage{fullpage,url}
\usepackage[dvipsnames]{xcolor}
\definecolor{airforceblue}{rgb}{0.36, 0.54, 0.66}
\begin{document}
\title{Euler code, using Residual distribution scheme, unsteady, order 2,3,4 in time/space and hybrid meshes. Uses Mood technology, and compatible with additional conservation laws (Kinetic momentum for example)}
\author{R. Abgrall, P. Bacigaluppi, P. Oeffner, S. Tokareva, D. Torlo
......@@ -10,16 +12,18 @@ remi.abgrall@math.uzh.ch}
Warning: works for Euler, the other models need to be checked.
\section{Compilation}
Makefile in Make/Makefile\_2D.gfortran. Uses gfortran
Please find the Makefile in Test1D and Test2D accordingly.\\\\
In 1D the file is called \texttt{Makefile\_1D.gfortran}, while in 2D it is \texttt{Makefile\_2D.gfortran}. To compile go in the Test1D or Test2D folder and type:
\begin{verbatim}
\make -f Make//Makefile_2D.gfortran dec
make -f Make/Makefile_2D.gfortran dec
\end{verbatim}
\begin{verbatim}
\make -f Make/Makefile_2D.gfortran clean
make -f Make/Makefile_2D.gfortran clean
\end{verbatim}
Note:LIBS=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib for mac
Note \#1: The Makefile in Test\# D uses \textbf{gfortran}. To compile with different settings, check the folder Make on the main folder.\\
Note \#2: LIBS=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib for mac.\\\\
Note \#3: \textcolor{airforceblue}{According to the desired system set-up, uncomment/comment the required modules in the Makefile. The only modules to be changed are the \texttt{variable\_def\_*} and \texttt{init\_bc\_*}.}
\section{Meshes}
gmsh format msh2: gmsh -format msh2 geofile.geo
......
......@@ -10,16 +10,18 @@ remi.abgrall@math.uzh.ch}
Warning: works for Euler, the other models need to be checked.
\section{Compilation}
Makefile in Make/Makefile\_2D.gfortran. Uses gfortran
Please find the Makefile in Test1D and Test2D accordingly.\\\\
In 1D the file is called \texttt{Makefile\_2D.gfortran}, while in 2D it is \texttt{Makefile\_2D.gfortran}. To compile go in the Test1D or Test2D folder and type:
\begin{verbatim}
\make -f Make//Makefile_2D.gfortran dec
make -f Make/Makefile_2D.gfortran dec
\end{verbatim}
\begin{verbatim}
\make -f Make/Makefile_2D.gfortran clean
make -f Make/Makefile_2D.gfortran clean
\end{verbatim}
Note:LIBS=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib for mac
Note \#1: The Makefile in Test\# D uses \textbf{gfortran}. To compile with different settings, check the folder Make on the main folder.\\
Note \#2: LIBS=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib for mac.\\\\
Note \#3: \alert{According to the desired system set-up, uncomment/comment the required modules in the Makefile. The only modules to be changed are the \texttt{variable\_def\_*} and \texttt{init\_bc\_*}.}
\section{Meshes}
gmsh format msh2: gmsh -format msh2 geofile.geo
......
......@@ -56,7 +56,7 @@ CONTAINS
OPEN( UNIT = 50, FILE = trim(FOLDER)//"/"//"/ex_prim_"//TRIM(ADJUSTL(nombre))//".dat", IOSTAT = ios )
OPEN( UNIT = 7, FILE = trim(FOLDER)//"/"//"/FluxIndicator_"//TRIM(ADJUSTL(nt_str))//"_"//TRIM(ADJUSTL(nombre))//".dat", IOSTAT = ios )
OPEN( UNIT = 9, FILE = trim(FOLDER)//"/"//"/DiagIndicator_"//TRIM(ADJUSTL(nt_str))//"_"//TRIM(ADJUSTL(nombre))//".dat", IOSTAT = ios )
OPEN( UNIT = 60, FILE = trim(FOLDER)//"/"//"/DiagIndicator2_"//TRIM(ADJUSTL(nt_str))//"_"//TRIM(ADJUSTL(nombre))//".dat", IOSTAT = ios )
OPEN( UNIT = 70, FILE = trim(FOLDER)//"/"//"/FluxIndicator_last.dat", IOSTAT = ios )
......@@ -69,7 +69,7 @@ CONTAINS
!!$
!!$
!!$
REWIND(1); REWIND(2); REWIND(3); REWIND(4); REWIND(5);REWIND(7); REWIND(8); REWIND(9);REWIND(70);REWIND(90);REWIND(80);REWIND(50)
REWIND(1); REWIND(2); REWIND(3); REWIND(4); REWIND(5);REWIND(7); REWIND(8); REWIND(9);REWIND(70);REWIND(90);REWIND(80);REWIND(50);REWIND(60)
!!$
DO jt=1, Mesh%nt
e=Mesh%e(jt)
......@@ -89,10 +89,12 @@ CONTAINS
w(l)=convert_cons2prim(v(l))
ENDDO
!!$
WRITE(7,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%type_flux
WRITE(9,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%diag
WRITE(70,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%type_flux
WRITE(90,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%diag
WRITE(7,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%type_flux
WRITE(9,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%diag
WRITE(60,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%diag2
WRITE(70,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%type_flux
WRITE(90,*) SUM(e%coor)/REAL(e%nsommets), Mesh%e(jt)%diag
!!$
SELECT CASE(e%itype)
CASE(1,11)
......@@ -198,7 +200,7 @@ CONTAINS
END SELECT
DEALLOCATE(sol,v,u,w,base,grad)
ENDDO
CLOSE(1);CLOSE(2);CLOSE(3); CLOSE(4);CLOSE(5);CLOSE(7);CLOSE(8);CLOSE(9);CLOSE(70); CLOSE(90);CLOSE(80); CLOSE(50)
CLOSE(1);CLOSE(2);CLOSE(3); CLOSE(4);CLOSE(5);CLOSE(7);CLOSE(8);CLOSE(9);CLOSE(70); CLOSE(90);CLOSE(80); CLOSE(50); close(60);
END SUBROUTINE visu
......
!!! HIGH ORDER IN SPACE AND TIME DEFERRED CORRECTION (EXPLICIT)
!!! RESIDUAL DISTRIBUTION METHOD
!!! DESIGNED FOR THE SYSTEM GIVEN BY THE EULER EQUATIONS in 1D and 2D
!!!
!!! Authors:
!!! Remi Abgrall (University of Zurich),
!!! Paola Bacigaluppi (University of Zurich),
!!! Svetlana Tokareva (University of Zurich)
!!! Institute of Mathematics and Institute of Computational Sciences
!!! University of Zurich
!!! July 10, 2018
!!! Correspondance: remi.abgrall@math.uzh.ch
!!! ------------------------------------------
MODULE init_bc
USE param2d
USE overloading
USE variable_def
USE PRECISION
IMPLICIT NONE
PRIVATE
PUBLIC:: IC
CONTAINS
!---------------------------------------
! Setup domain - comes from external mesh, so ignore for now
!---------------------------------------
!---------------------------------------
! Set initial and boundary conditions
!---------------------------------------
TYPE(Pvar) FUNCTION IC(jt,x,initial_cond) RESULT(Var)
IMPLICIT NONE
CHARACTER(LEN = *), PARAMETER :: mod_name = "init_bc_euler/IC"
INTEGER, INTENT(in) :: initial_cond, jt
REAL(DP), DIMENSION(:), INTENT(in) :: x
REAL(DP) :: alpha
REAL(DP), DIMENSION(n_dim) :: y, centre
REAL(DP) :: r2, vt, cs, r0, epsil, r,beta
REAL(dp):: uinf, vinf, Tinf, du, dv, deltaT, coeff
REAL(dp):: ro, u, v, Ma,p, x0, theta
REAL(DP), PARAMETER:: dpi=ACOS(-1._dp) ! pi
!---------------
! for Euler
SELECT CASE(initial_cond)
CASE(0)
! First example
Var%u(1) = 0.5_dp
Var%u(2) = 1.0_dp
Var%u(3) = 0.0_dp
Var%u(4) = 0.125_dp/(gmm-1._dp)+0.5_dp*1._dp/0.5_dp
CASE(1)
! Sod
r = SQRT(SUM(x**2))
IF (r <= 0.5_dp) THEN
! IF (x(1) <= 0.0) THEN
! sod
Var%u(1) = 1._dp ! [kg/m^3]
Var%u(2) = 0._dp ! [m/s]
Var%u(3) = 0._dp ! [m/s]
Var%u(4) = Var%eEOS(Var%u(1),1.0_dp) ! [J]
ELSE
Var%u(1) = 0.125_dp
Var%u(2) = 0._dp
Var%u(3) = 0._dp
Var%u(4) = Var%eEOS(Var%u(1),0.1_dp)
END IF
! end if
CASE(-1)
beta=5
r = SQRT(SUM(x**2))
ro=(1-((gmm-1._dp)*beta**2*EXP(1-r**2))/(8._dp*gmm*dpi**2))**(1._dp/(gmm-1._dp))
p=ro**gmm
Var%u(1) = ro
Var%u(2) = -Var%u(1)*beta*EXP((1-r**2)/2._dp)*x(2)/(2._dp*dpi*r)
Var%u(3) = Var%u(1)*beta*EXP((1-r**2)/2._dp)*x(1)/(2._dp*dpi*r)
Var%u(4) = Var%eEOS(Var%u(1),p)+ 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)
CASE(2)
! hydrostatic
Var%u(1) = EXP(-(x(1)+x(2))) !1.0+exp(-20.*((x(1)-0.5)**2+(x(2)-0.5)**2))! [kg/m^3]
Var%u(2) = 0._dp!Var%u(1)*1.0 ! [m/s]
Var%u(3) = 0._dp!Var%u(1)*1.0 ! [m/s]
Var%u(4) = Var%eEOS(Var%u(1),EXP(-(x(1)+x(2))))! [J]
CASE(3) ! advection
Var%u(1) = EXP(-20._dp*((x(1)-0.5_dp)**2+(x(2)-0.5_dp)**2))! [kg/m^3]
Var%u(2) = Var%u(1)*1.0_dp ! [m/s]
Var%u(3) = Var%u(1)*1.0_dp ! [m/s]
Var%u(4) = Var%eEOS(Var%u(1),0.0000001_dp) + 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)! [J]
CASE(4)
! disk
r = SQRT((x(1)-0.5_dp)**2+(x(2)-0.5_dp)**2)
IF ((r >= 0.1_dp).AND.(r<= 0.3_dp)) THEN
Var%u(1) = 1.0_dp! [kg/m^3]
ELSE
Var%u(1) = 0.0001_dp! [kg/m^3]
END IF
IF ((r >= 0.08_dp).AND.(r<= 0.32_dp)) THEN
Var%u(2) = -Var%u(1)*(x(2)-0.5_dp)/(r*SQRT(r)) ! [m/s]
Var%u(3) = Var%u(1)*(x(1)-0.5)/(r*SQRT(r))!x(1)/r ! [m/s]
ELSE
Var%u(2) = 0.0_dp!-Var%u(1)*1.0!*x(2)/r ! [m/s]
Var%u(3) = 0.0_dp!Var%u(1)*1.0!*x(1)/r ! [m/s]
END IF
Var%u(4) = Var%eEOS(Var%u(1),0.0001_dp) + 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)! [J]
CASE(5) ! rotating blob without source
r = SQRT((x(1)-0.5_dp)**2+(x(2)-0.5_dp)**2)
IF ((r >= 0.1_dp).AND.(r<= 0.3_dp)) THEN
Var%u(1) = 1.0_dp! [kg/m^3]
ELSE
Var%u(1) = 0.0001_dp! [kg/m^3]
END IF
IF ((r >= 0.08_dp).AND.(r<= 0.32_dp)) THEN
Var%u(2) = -Var%u(1)*(x(2)-0.5_dp)/(r*SQRT(r)) ! [m/s]
Var%u(3) = Var%u(1)*(x(1)-0.5_dp)/(r*SQRT(r))!x(1)/r ! [m/s]
ELSE
Var%u(2) = 0.0_dp!-Var%u(1)*1.0!*x(2)/r ! [m/s]
Var%u(3) = 0.0_dp!Var%u(1)*1.0!*x(1)/r ! [m/s]
END IF
Var%u(4) = Var%eEOS(Var%u(1),0.0001_dp) + 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)! [J]
CASE(6)
! constant density disk
epsil = 0.25_dp
r = SQRT((x(1)-0.5_dp)**2+(x(2)-0.5_dp)**2 + epsil**2)
vt = SQRT(1._dp/r-0.03_dp**2/r)
cs = 0.03_dp*vt
r0 = 0.25_dp
var%u(1) = 1._dp*1._dp/(1._dp+(r/r0)**20)
var%u(2) = var%u(1)*(-vt/r)*(x(2)-0.5_dp)
var%u(3) = var%u(1)*(vt/r)*(x(1)-0.5_dp)
var%u(4) = Var%eEOS(Var%u(1),var%u(1)*cs**2) + 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)! [J]
CASE(7)
var%u(1) = EXP(-(x(1)+x(2)))
var%u(2) = 0.0_dp !var%u(1)*(-vt/r)*(x(2)-0.5)
var%u(3) = 0.0_dp! var%u(1)*(vt/r)*(x(1)-0.5)
var%u(4) = Var%eEOS(Var%u(1),EXP(-(x(1)+x(2)))) !+ 0.5*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)! [J]
CASE(8) ! stationary vortex ! Checked by maple
uinf=0._dp
vinf=0._dp
Tinf=1._dp
beta = 5._dp
Ma= beta/(2._dp*dpi)
r2 = ((x(1))**2+(x(2))**2)
coeff=EXP ( (1._dp-r2) *0.5_dp)
du= Ma*coeff*(-x(2))
dv= Ma*coeff*( x(1))
deltaT= -xka*0.5_dp*Ma*Ma*coeff*coeff/gmm
IF (r2.GE.8._dp*8._dp) THEN
du=0._dp
dv=0._dp
deltaT=0._dp
ENDIF
u=uinf+du
v=vinf+dv
ro= ( Tinf+deltaT)**(1._dp/xka)
var%u(1) = ro
var%u(2) = ro*u
var%u(3) = ro*v
var%u(4) =(ro**gmm)/xka + 0.5_dp*ro*(u*u+v*v)
CASE(9) ! strong shock tube
! Sod
r = SQRT(SUM(x**2))
IF (r <= 0.5_dp) THEN
! sod
Var%u(1) = 1.e-3_dp ! [kg/m^3]
Var%u(2) = 0._dp ! [m/s]
Var%u(3) = 0._dp ! [m/s]
Var%u(4) = Var%eEos(Var%u(1),1.0e-3_dp) ! [J]
ELSE
Var%u(1) = 0.125_dp
Var%u(2) = 0._dp
Var%u(3) = 0._dp
Var%u(4) = Var%eEOS(Var%u(1),0.1_dp)
END IF
CASE(10) ! DMR test
x0=-0.05_dp
x0=0._dp
IF (x(1) .GE. x0) THEN
ro=1.4_dp; u=0._dp; v=0._dp; p=1._dp
ELSE
ro=8._dp; u=8.25_dp; v=0._dp; p=116.5_dp
END IF
Var%u(1)=ro ! [kg/m^3]
Var%u(2)=ro*u ! [m/s]
Var%u(3)=ro*v ! [m/s]
Var%u(4)= Var%eEOS(Var%u(1),p) + 0.5_dp*ro*(u*u+v*v)
! CASE(11) ! Step test
! Var%u(1) = 1.0_dp
! Var%u(2) = 3.0_dp
! Var%u(3) = 0.0_dp
! Var%u(4) = 4.5_dp + 1.7857_dp
! CASE(11)
! beta=5
! IF (x(1) .GE. 0._dp .AND. x(2) .GE. 0._dp) THEN
! r = SQRT((x(1)- 0.25_dp)**2+(x(2)- 0.25_dp)**2)
! ELSEIF (x(1) .LT. 0._dp .AND. x(2) .GE. 0._dp) THEN
! r = SQRT((x(1)+ 0.25_dp)**2+(x(2)- 0.25_dp)**2)
! ELSEIF (x(1) .LT. 0._dp .AND. x(2) .LT. 0._dp) THEN
! r = SQRT((x(1)+ 0.25_dp)**2+(x(2)+ 0.25_dp)**2)
! ELSEIF (x(1) .LE. 0._dp .AND. x(2) .LT. 0._dp) THEN
! r = SQRT((x(1)- 0.25_dp)**2+(x(2)+ 0.25_dp)**2)
! ENDIF
! ro=(1-((gmm-1._dp)*beta**2*EXP(1-r**2))/(8*gmm*dpi**2))**(1._dp/(gmm-1._dp))
! p=ro**gmm
! Var%u(1) = ro
! IF (x(1)*x(2) .GE. 0._dp) THEN
! Var%u(2) = -Var%u(1)*beta*EXP((1-r**2)/2._dp)*x(2)/(2._dp*dpi)
! Var%u(3) = Var%u(1)*beta*EXP((1-r**2)/2._dp)*x(1)/(2._dp*dpi)
! ELSE
! Var%u(2) = Var%u(1)*beta*EXP((1-r**2)/2._dp)*x(2)/(2._dp*dpi)
! Var%u(3) = -Var%u(1)*beta*EXP((1-r**2)/2._dp)*x(1)/(2._dp*dpi)
! ENDIF
! Var%u(4) = Var%eEOS(Var%u(1),p)+ 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)
CASE(12)
beta=5
r = SQRT((x(1)- 1._dp)**2+(x(2)- 0._dp)**2)
ro=(1-((gmm-1._dp)*beta**2*EXP(1-r**2))/(8*gmm*dpi**2))**(1._dp/(gmm-1._dp))
p=ro**gmm
Var%u(1) = ro
Var%u(2) = Var%u(1)*(1._dp -beta*EXP((1-r**2)/2._dp)*(x(2)- 0._dp)/(2._dp*dpi))
Var%u(3) = Var%u(1)*(1._dp +beta*EXP((1-r**2)/2._dp)*(x(1)- 1._dp)/(2._dp*dpi))
Var%u(4) = Var%eEOS(Var%u(1),p)+ 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)
CASE(11)
r = SQRT((x(1)-0.5_dp)**2+(x(2)-0.5_dp)**2)
IF (r<0.2_dp) THEN
vt=5._dp*r
ELSEIF ((r >= 0.2_dp).AND.(r< 0.4_dp)) THEN
vt=2._dp-5._dp*r
ELSE
vt=0
END IF
IF (r<0.2_dp) THEN
p=5._dp+25._dp*(r**2)/2._dp
ELSEIF ((r >= 0.2_dp).AND.(r< 0.4_dp)) THEN
p=9._dp-4._dp*LOG10(0.2_dp) + 25._dp*(r**2)/2._dp-20._dp*r+4._dp*LOG10(r)
ELSE
p=3._dp+4._dp*LOG10(2._dp)
END IF
var%u(1) = 1._dp
var%u(2) = var%u(1)*(-vt/r)*(x(2)-0.5_dp)
var%u(3) = var%u(1)*(vt/r)*(x(1)-0.5_dp)
var%u(4) = Var%eEOS(Var%u(1),p) + 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1)! [J]
CASE(27) ! Shu Osher like 2D
! Sod
r = SQRT(SUM(x**2))
theta=5._dp
IF (r <= 1.0_dp) THEN
! sod
Var%u(1) = 3.857143_dp ! [kg/m^3]
Var%u(2) = SQRT(Var%u(1)*2.629369_dp)*x(1)/(r+1.e-10_dp) ! [m/s]
Var%u(3) = SQRT(Var%u(1)*2.629369_dp)*x(2)/(r+1.e-10_dp) ! [m/s]
Var%u(4) = Var%eEOS(Var%u(1),10.33333333333_dp) + 0.5_dp*(Var%u(2)**2+Var%u(3)**2)/Var%u(1) ! [J]
ELSE
IF (r.LE. 4.0_dp) THEN
Var%u(1) = 1._dp+0.2_dp*SIN(theta*r)
Var%u(2) = 0._dp
Var%u(3) = 0._dp
Var%u(4) = Var%eEOS(Var%u(1),1.0_dp)
ELSE
r=4.0_dp
Var%u(1) = 1._dp+0.2_dp*SIN(theta*r)
Var%u(2) = 0._dp
Var%u(3) = 0._dp
Var%u(4) = Var%eEOS(Var%u(1),1.0_dp)
END IF
ENDIF
!!$ CASE(42) ! Kevlvin-Helmholz test Ione and Iwto are the
!!$ Ione = 0.0
!!$ Itwo = 0.0
!!$ DO ii=1, 10
!!$ Ione = Ione + 0.01*(a_1(ii)*Cos(b_1(ii)+2.*ii**x(1)))
!!$ Itwo = Itwo + 0.01*(a_2(ii)*Cos(b_2(ii)+2.*ii**x(1)))
!!$ EndDO
!!$ Ione = Ione + 0.25
!!$ Itwo = Itwo + 0.75
!!$ ! Print*, "Ione=" , Ione, "Iwo=", Itwo, "Test_1=", Sum(b_1), Sum(b_2) , x(2)
!!$ IF (Itwo.GE. x(2) .and. x(2) .GE. Ione) THEN
!!$ Var%u(1) = 2.
!!$ Var%u(2) = -0.5
!!$ Var%u(3) = 0.
!!$ Var%u(4)=2.5
!!$ ELSE
!!$ Var%u(1) = 1.
!!$ Var%u(2) = 0.5
!!$ Var%u(3) = 0.
!!$ Var%u(4) = 2.5
!!$ END IF
CASE(13) ! Rotating steady:wq
ro=EXP(x(1)**2+x(2)**2)
p=ro*0.5_dp
u=-x(2); v=+x(1)
Var%u(1)=ro ! [kg/m^3]
Var%u(2)=ro*u ! [m/s]
Var%u(3)=ro*v ! [m/s]
Var%u(4)= Var%eEOS(Var%u(1),p) + 0.5_dp*ro*(u*u+v*v)
case(14)
x0=-0.05_dp
x0=0._dp
IF (x(1) .GE. x0) THEN
ro=1.4_dp; u=1._dp; v=0._dp; p=1._dp
ELSE
ro=8._dp; u=1._dp; v=0._dp; p=1._dp
END IF
Var%u(1)=ro ! [kg/m^3]
Var%u(2)=ro*u ! [m/s]
Var%u(3)=ro*v ! [m/s]
Var%u(4)= Var%eEOS(Var%u(1),p) + 0.5_dp*ro*(u*u+v*v)
CASE default
PRINT*, "Wrong test number for Euler_IC"
STOP
END SELECT
END FUNCTION IC
END MODULE init_bc
......@@ -12,31 +12,16 @@ SRC = ../Src1D
FFLAGS = -DLINUX -J$(MODDIR) -cpp -c $(OPT) -ffree-line-length-none
LDFLAGS= -J$(MODDIR) -cpp $(OPT) -ffree-line-length-none
#INIT= init_bc_euler
#UTIL = utils
#MODEL_VAR= variable_def_euler
INIT= init_bc_euler
MODEL_VAR= variable_def_euler
INIT= init_bc_wave_1D
MODEL_VAR= variable_def_wave_1D
UTIL = utils
#INIT= init_bc_wave_1D
#MODEL_VAR= variable_def_wave_1D
#INIT= init_bc_sw
#MODEL_VAR= variable_def_sw
#UTIL = utils_sw
#INIT= init_bc_scalar_1D
#MODEL_VAR= variable_def_scalar_1D
#INIT= init_bc_burgers
#MODEL_VAR= variable_def_burgers
#UTIL = utils
#INIT= init_bc_scalar
#MODEL_VAR= variable_def_scalar
#UTIL = utils
#INIT= init_bc_scalar
#MODEL_VAR= variable_def_damped_scalar
#UTIL = utils
OBJS = $(addprefix $(OBJDIR)/, elements_1D.o param2d.o $(MODEL_VAR).o aretes.o scheme.o overloading.o Model.o geometry.o algebra.o $(UTIL).o postprocessing.o timestepping.o $(INIT).o precision.o)
OBJS = $(addprefix $(OBJDIR)/, elements_1D.o param2d.o $(MODEL_VAR).o aretes.o scheme.o overloading.o Model.o geometry.o algebra.o utils.o postprocessing.o timestepping.o $(INIT).o precision.o)
dec: $(MODDIR) $(OBJDIR) $(BINDIR) $(OBJS) $(SRC)/main_dec.f90
......@@ -52,7 +37,7 @@ $(BINDIR):
mkdir -p $(BINDIR)
$(OBJDIR)/Model.o: $(SRC)/Model.f90 $(OBJDIR)/param2d.o $(OBJDIR)/precision.o
$(OBJDIR)/Model.o: $(SRC)/Model.f90 $(OBJDIR)/utils.o $(OBJDIR)/param2d.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/Model.o $(SRC)/Model.f90
$(OBJDIR)/aretes.o: $(SRC)/aretes.f90 $(OBJDIR)/precision.o
......@@ -64,7 +49,7 @@ $(OBJDIR)/overloading.o: $(SRC)/overloading.f90 $(OBJDIR)/$(MODEL_VAR).o $(OBJDI
$(OBJDIR)/param2d.o: $(SRC)/param2d.f90 $(OBJDIR)/$(MODEL_VAR).o $(OBJDIR)/elements_1D.o $(OBJDIR)/aretes.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/param2d.o $(SRC)/param2d.f90
$(OBJDIR)/geometry.o: $(SRC)/param2d.f90 $(OBJDIR)/elements_1D.o $(OBJDIR)/$(INIT).o $(SRC)/geometry.f90 $(OBJDIR)/precision.o
$(OBJDIR)/geometry.o: $(SRC)/param2d.f90 $(OBJDIR)/elements_1D.o $(SRC)/geometry.f90 $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/geometry.o $(SRC)/geometry.f90
$(OBJDIR)/algebra.o: $(SRC)/algebra.f90 $(OBJDIR)/precision.o
......@@ -73,22 +58,22 @@ $(OBJDIR)/algebra.o: $(SRC)/algebra.f90 $(OBJDIR)/precision.o
$(OBJDIR)/elements_1D.o: $(SRC)/elements_1D.f90 $(OBJDIR)/$(MODEL_VAR).o $(OBJDIR)/algebra.o $(OBJDIR)/overloading.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/elements_1D.o $(SRC)/elements_1D.f90
$(OBJDIR)/$(MODEL_VAR).o: $(OBJDIR)/algebra.o $(SRC)/$(MODEL_VAR).f90 $(OBJDIR)/$(UTIL).o $(OBJDIR)/precision.o
$(OBJDIR)/$(MODEL_VAR).o: $(OBJDIR)/algebra.o $(SRC)/$(MODEL_VAR).f90 $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/$(MODEL_VAR).o $(SRC)/$(MODEL_VAR).f90
$(OBJDIR)/scheme.o: $(SRC)/scheme.f90 $(OBJDIR)/$(MODEL_VAR).o $(OBJDIR)/elements_1D.o $(OBJDIR)/overloading.o $(OBJDIR)/aretes.o $(OBJDIR)/Model.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/scheme.o $(SRC)/scheme.f90
$(OBJDIR)/$(UTIL).o:$(SRC)/$(UTIL).f90 $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/$(UTIL).o $(SRC)/$(UTIL).f90
$(OBJDIR)/utils.o:$(SRC)/utils.f90 $(OBJDIR)/elements_1D.o $(OBJDIR)/$(MODEL_VAR).o $(OBJDIR)/$(INIT).o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/utils.o $(SRC)/utils.f90
$(OBJDIR)/$(INIT).o: $(SRC)/$(INIT).f90 $(OBJDIR)/param2d.o $(OBJDIR)/overloading.o $(OBJDIR)/$(UTIL).o $(OBJDIR)/precision.o
$(OBJDIR)/$(INIT).o: $(SRC)/$(INIT).f90 $(OBJDIR)/param2d.o $(OBJDIR)/overloading.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/$(INIT).o $(SRC)/$(INIT).f90
$(OBJDIR)/timestepping.o: $(SRC)/timestepping.f90 $(OBJDIR)/overloading.o $(OBJDIR)/elements_1D.o $(OBJDIR)/$(MODEL_VAR).o $(OBJDIR)/param2d.o $(OBJDIR)/scheme.o $(OBJDIR)/Model.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/timestepping.o $(SRC)/timestepping.f90
$(OBJDIR)/postprocessing.o: $(SRC)/postprocessing.f90 $(OBJDIR)/param2d.o $(OBJDIR)/$(INIT).o $(OBJDIR)/Model.o $(OBJDIR)/precision.o
$(OBJDIR)/postprocessing.o: $(SRC)/postprocessing.f90 $(OBJDIR)/param2d.o $(OBJDIR)/utils.o $(OBJDIR)/Model.o $(OBJDIR)/precision.o
$(F90) $(FFLAGS) -o $(OBJDIR)/postprocessing.o $(SRC)/postprocessing.f90
$(OBJDIR)/precision.o: $(SRC)/precision.f90
......
100 nt
1 itype 1: P1, 2: B2, 3: P2, 4:P3, 5: B3
2 2 ordre 3: # of iteration for DEC
4 scheme: 1=supg, 2=psi, 3=mix, 4: galerkin+jump, 5: psi+jump 6 blend+jump 7: psi+galerkin2??
1. alpha_jump: parameter used in Burman stabilization term
0. alpha_jump: parameter used in Burman stabilization term
0.1 cfl
100000 ktmax
3.0 tmax
100 ifre
1 test case Euler: 0 - smooth (convergence), 1 - Sod, 2 - Shu-Osher, 3 - Woodward-Colella, 6 - Woodward-Colella left
.true.
2
5
-1
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment