@@ -39,11 +39,22 @@ def findomega(stab_fh):
3939 # the following are not used in the computation
4040 pparams ['lambda_s' ] = np .array ([0.0 ])
4141 pparams ['lambda_f' ] = np .array ([0.0 ])
42+
4243 pparams ['u0' ] = 1.0
4344 swparams = {}
44- swparams ['collocation_class' ] = collclass .CollGaussLegendre
45+
46+ ### SET TYPE OF QUADRATURE NODES ###
47+ #swparams['collocation_class'] = collclass.CollGaussLobatto
48+ #swparams['collocation_class'] = collclass.CollGaussLegendre
49+ swparams ['collocation_class' ] = collclass .CollGaussRadau_Right
50+
51+ ### SET NUMBER OF NODES ###
4552 swparams ['num_nodes' ] = 3
46- K = 4
53+
54+ ### SET NUMBER OF ITERATIONS ###
55+ K = 5
56+
57+ ### ORDER OF DIRK/IMEX IS EQUAL TO NUMBER OF ITERATIONS AND THUS ORDER OF SDC ###
4758 dirk_order = K
4859
4960 c_speed = 1.0
@@ -66,7 +77,7 @@ def findomega(stab_fh):
6677 QE = level .sweep .QE [1 :,1 :]
6778 QI = level .sweep .QI [1 :,1 :]
6879 Q = level .sweep .coll .Qmat [1 :,1 :]
69- Nsamples = 30
80+ Nsamples = 15
7081 k_vec = np .linspace (0 , np .pi , Nsamples + 1 , endpoint = False )
7182 k_vec = k_vec [1 :]
7283 phase = np .zeros ((3 ,Nsamples ))
@@ -100,7 +111,7 @@ def findomega(stab_fh):
100111 # For testing, insert exact stability function exp(-dt*i*k*(Cs+Uadv)
101112 #stab_fh = la.expm(Cs+Uadv)
102113
103- dirkts = dirk (Cs + Uadv , np . min ([ 4 , dirk_order ]) )
114+ dirkts = dirk (Cs + Uadv , dirk_order )
104115 stab_fh1 = dirkts .timestep (y1 , 1.0 )
105116 stab_fh2 = dirkts .timestep (y2 , 1.0 )
106117 stab_dirk = np .column_stack ((stab_fh1 , stab_fh2 ))
@@ -128,7 +139,7 @@ def findomega(stab_fh):
128139 fig = plt .figure ()
129140 plt .plot (k_vec , (U_speed + c_speed )+ np .zeros (np .size (k_vec )), '--' , color = 'k' , linewidth = 1.5 , label = 'Exact' )
130141 plt .plot (k_vec , phase [1 ,:], '-' , color = 'g' , linewidth = 1.5 , label = 'DIRK(' + str (dirkts .order )+ ')' )
131- plt .plot (k_vec , phase [2 ,:], '-+' , color = 'r' , linewidth = 1.5 , label = 'RK- IMEX(' + str (rkimex .order )+ ')' , markevery = 5 , mew = 1.0 )
142+ plt .plot (k_vec , phase [2 ,:], '-+' , color = 'r' , linewidth = 1.5 , label = 'IMEX(' + str (rkimex .order )+ ')' , markevery = 5 , mew = 1.0 )
132143 plt .plot (k_vec , phase [0 ,:], '-o' , color = 'b' , linewidth = 1.5 , label = 'SDC(' + str (K )+ ')' , markevery = 5 , markersize = fs / 2 )
133144 plt .xlabel ('Wave number' , fontsize = fs , labelpad = 0.25 )
134145 plt .ylabel ('Phase speed' , fontsize = fs , labelpad = 0.5 )
@@ -138,14 +149,14 @@ def findomega(stab_fh):
138149 plt .legend (loc = 'lower left' , fontsize = fs , prop = {'size' :fs - 2 })
139150 plt .xticks ([0 , 1 , 2 , 3 ], fontsize = fs )
140151 #plt.show()
141- filename = 'sdc-fwsw-disprel- phase-K' + str (K )+ '-M' + str (swparams ['num_nodes' ])+ '.pdf'
152+ filename = 'phase-K' + str (K )+ '-M' + str (swparams ['num_nodes' ])+ '.pdf'
142153 plt .gcf ().savefig (filename , bbox_inches = 'tight' )
143154 call (["pdfcrop" , filename , filename ])
144155
145156 fig = plt .figure ()
146157 plt .plot (k_vec , 1.0 + np .zeros (np .size (k_vec )), '--' , color = 'k' , linewidth = 1.5 , label = 'Exact' )
147158 plt .plot (k_vec , amp_factor [1 ,:], '-' , color = 'g' , linewidth = 1.5 , label = 'DIRK(' + str (dirkts .order )+ ')' )
148- plt .plot (k_vec , amp_factor [2 ,:], '-+' , color = 'r' , linewidth = 1.5 , label = 'RK- IMEX(' + str (rkimex .order )+ ')' , markevery = 5 , mew = 1.0 )
159+ plt .plot (k_vec , amp_factor [2 ,:], '-+' , color = 'r' , linewidth = 1.5 , label = 'IMEX(' + str (rkimex .order )+ ')' , markevery = 5 , mew = 1.0 )
149160 plt .plot (k_vec , amp_factor [0 ,:], '-o' , color = 'b' , linewidth = 1.5 , label = 'SDC(' + str (K )+ ')' , markevery = 5 , markersize = fs / 2 )
150161 plt .xlabel ('Wave number' , fontsize = fs , labelpad = 0.25 )
151162 plt .ylabel ('Amplification factor' , fontsize = fs , labelpad = 0.5 )
@@ -156,7 +167,7 @@ def findomega(stab_fh):
156167 plt .gca ().set_ylim ([0.0 , 1.1 ])
157168 plt .xticks ([0 , 1 , 2 , 3 ], fontsize = fs )
158169 #plt.show()
159- filename = 'sdc-fwsw-disprel-ampfac -K' + str (K )+ '-M' + str (swparams ['num_nodes' ])+ '.pdf'
170+ filename = 'ampfactor -K' + str (K )+ '-M' + str (swparams ['num_nodes' ])+ '.pdf'
160171 plt .gcf ().savefig (filename , bbox_inches = 'tight' )
161172 call (["pdfcrop" , filename , filename ])
162173
0 commit comments