Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_SetMstageCoeffs.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 !******************************************************************************
24 !
25 ! Purpose: set coefficients of an explicit multistage scheme.
26 !
27 ! Description: none.
28 !
29 ! Input: input = type of space and time discretization.
30 !
31 ! Output: input = stage and blending coefficients, dissipation evaluation
32 ! nrkSteps = number of stages.
33 !
34 ! Notes: none.
35 !
36 !******************************************************************************
37 !
38 ! $Id: RFLO_SetMstageCoeffs.F90,v 1.3 2008/12/06 08:44:07 mtcampbe Exp $
39 !
40 ! Copyright: (c) 2003 by the University of Illinois
41 !
42 !******************************************************************************
43 
44 SUBROUTINE rflo_setmstagecoeffs( global,input,nrkSteps )
45 
46  USE moddatatypes
47  USE moderror
48  USE modglobal, ONLY: t_global
49  USE modmixture, ONLY : t_mixt_input
50  USE modparameters
51  IMPLICIT NONE
52 
53 ! ... parameters
54  INTEGER :: nrksteps
55 
56  TYPE(t_mixt_input) :: input
57 
58  TYPE(t_global), POINTER :: global
59 
60 !******************************************************************************
61 
62  IF (input%timeScheme == tst_hyb5rk) THEN
63  nrksteps = 5
64  IF (input%spaceDiscr == discr_cen_scal) THEN ! central scheme
65  input%ark(1) = 0.2500_rfreal
66  input%ark(2) = 0.1667_rfreal
67  input%ark(3) = 0.3750_rfreal
68  input%ark(4) = 0.5000_rfreal
69  input%ark(5) = 1.0000_rfreal
70  input%betrk(1) = 1.00_rfreal
71  input%betrk(2) = 0.00_rfreal
72  input%betrk(3) = 0.56_rfreal
73  input%betrk(4) = 0.00_rfreal
74  input%betrk(5) = 0.44_rfreal
75  input%ldiss(1) = 1
76  input%ldiss(2) = 0
77  input%ldiss(3) = 1
78  input%ldiss(4) = 0
79  input%ldiss(5) = 1
80  ELSE ! upwind scheme
81  IF (input%flowModel == flow_euler) THEN ! inviscid flow
82  IF (input%spaceOrder == discr_order_1) THEN
83  input%ark(1) = 0.0533_rfreal
84  input%ark(2) = 0.1263_rfreal
85  input%ark(3) = 0.2375_rfreal
86  input%ark(4) = 0.4414_rfreal
87  input%ark(5) = 1.0000_rfreal
88  input%betrk(1) = 1.00_rfreal
89  input%betrk(2) = 1.00_rfreal
90  input%betrk(3) = 1.00_rfreal
91  input%betrk(4) = 1.00_rfreal
92  input%betrk(5) = 1.00_rfreal
93  input%ldiss(1) = 1
94  input%ldiss(2) = 1
95  input%ldiss(3) = 1
96  input%ldiss(4) = 1
97  input%ldiss(5) = 1
98  ELSE
99  input%ark(1) = 0.0695_rfreal
100  input%ark(2) = 0.1602_rfreal
101  input%ark(3) = 0.2898_rfreal
102  input%ark(4) = 0.5060_rfreal
103  input%ark(5) = 1.0000_rfreal
104  input%betrk(1) = 1.00_rfreal
105  input%betrk(2) = 1.00_rfreal
106  input%betrk(3) = 1.00_rfreal
107  input%betrk(4) = 1.00_rfreal
108  input%betrk(5) = 1.00_rfreal
109  input%ldiss(1) = 1
110  input%ldiss(2) = 1
111  input%ldiss(3) = 1
112  input%ldiss(4) = 1
113  input%ldiss(5) = 1
114  ENDIF
115  ELSE ! viscous flow
116  input%ark(1) = 0.2742_rfreal
117  input%ark(2) = 0.2067_rfreal
118  input%ark(3) = 0.5020_rfreal
119  input%ark(4) = 0.5142_rfreal
120  input%ark(5) = 1.0000_rfreal
121  input%betrk(1) = 1.00_rfreal
122  input%betrk(2) = 0.00_rfreal
123  input%betrk(3) = 0.56_rfreal
124  input%betrk(4) = 0.00_rfreal
125  input%betrk(5) = 0.44_rfreal
126  input%ldiss(1) = 1
127  input%ldiss(2) = 0
128  input%ldiss(3) = 1
129  input%ldiss(4) = 0
130  input%ldiss(5) = 1
131  ENDIF
132  ENDIF
133 
134  ELSE ! unsteady, classical Runge-Kutta
135  SELECT CASE ( global%rkScheme )
136  CASE ( rk_scheme_4_classical )
137  nrksteps = 4
138  input%ark(1) = 0.5_rfreal
139  input%ark(2) = 0.5_rfreal
140  input%ark(3) = 1.0_rfreal
141  input%ark(4) = 1._rfreal/6._rfreal
142  input%betrk(:) = 1.0_rfreal
143  input%grk(1) = 1.0_rfreal
144  input%grk(2) = 2.0_rfreal
145  input%grk(3) = 2.0_rfreal
146  input%grk(4) = 1.0_rfreal
147  input%trk(1) = 0.5_rfreal
148  input%trk(2) = 0.5_rfreal
149  input%trk(3) = 1.0_rfreal
150  input%trk(4) = 1.0_rfreal
151  input%ldiss(:) = 1
152  input%cfl = min(input%cfl,3._rfreal) ! stability margin
153  input%smoocf = -1._rfreal ! no residual smoothing
154  CASE ( rk_scheme_3_wray )
155  nrksteps = 3
156  input%ark(1) = 8.0_rfreal/15.0_rfreal
157  input%ark(2) = 5.0_rfreal/12.0_rfreal
158  input%ark(3) = 0.75_rfreal
159  input%betrk(:) = 0.0_rfreal
160  input%grk(1) = 0.0_rfreal
161  input%grk(2) = 17.0_rfreal/25.0_rfreal
162  input%grk(3) = 5.0_rfreal/ 9.0_rfreal
163  input%trk(1) = 8.0_rfreal/15.0_rfreal
164  input%trk(2) = 2.0_rfreal/3.0_rfreal
165  input%trk(3) = 1.0_rfreal
166  input%ldiss(:) = 1
167  input%cfl = min(input%cfl,2.0_rfreal) ! stability margin
168  input%smoocf = -1._rfreal ! no residual smoothing
169  CASE default
170  CALL errorstop(global,err_reached_default,__line__)
171  END SELECT ! global%rkScheme
172  ENDIF
173 
174 END SUBROUTINE rflo_setmstagecoeffs
175 
176 !******************************************************************************
177 !
178 ! RCS Revision history:
179 !
180 ! $Log: RFLO_SetMstageCoeffs.F90,v $
181 ! Revision 1.3 2008/12/06 08:44:07 mtcampbe
182 ! Updated license.
183 !
184 ! Revision 1.2 2008/11/19 22:17:21 mtcampbe
185 ! Added Illinois Open Source License/Copyright
186 !
187 ! Revision 1.1 2004/11/29 21:25:17 wasistho
188 ! lower to upper case
189 !
190 ! Revision 1.2 2004/11/17 16:22:43 haselbac
191 ! Added global as input and setting of RK3 coeffs
192 !
193 ! Revision 1.1 2003/07/03 21:48:44 jblazek
194 ! Implemented dual-time stepping.
195 !
196 !******************************************************************************
197 
198 
199 
200 
201 
202 
subroutine rflo_setmstagecoeffs(global, input, nrkSteps)
subroutine input(X, NNODE, NDC, NCELL, NFCE, NBPTS, NBFACE, ITYP, NPROP, XBNDY, XFAR, YFAR, ZFAR)
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483