|
33 | 33 |
|
34 | 34 | """
|
35 | 35 | import importlib
|
| 36 | + |
36 | 37 | from oasismove.common import *
|
37 | 38 |
|
38 | 39 | commandline_kwargs = parse_command_line()
|
|
44 | 45 | if problemspec is None:
|
45 | 46 | problemspec = importlib.util.find_spec(problemname)
|
46 | 47 | if problemspec is None:
|
47 |
| - raise RuntimeError(problemname+' not found') |
| 48 | + raise RuntimeError(problemname + ' not found') |
48 | 49 |
|
49 | 50 | # Import the problem module
|
50 |
| -print('Importing problem module '+problemname+':\n'+problemspec.origin) |
| 51 | +print('Importing problem module ' + problemname + ':\n' + problemspec.origin) |
51 | 52 | problemmod = importlib.util.module_from_spec(problemspec)
|
52 | 53 | problemspec.loader.exec_module(problemmod)
|
53 | 54 |
|
|
69 | 70 |
|
70 | 71 | # Import chosen functionality from solvers
|
71 | 72 | solver = importlib.import_module('.'.join(('oasis.solvers.NSfracStep', solver)))
|
72 |
| -vars().update({name:solver.__dict__[name] for name in solver.__all__}) |
| 73 | +vars().update({name: solver.__dict__[name] for name in solver.__all__}) |
73 | 74 |
|
74 | 75 | # Create lists of components solved for
|
75 | 76 | dim = mesh.geometry().dim()
|
|
97 | 98 | VV['p'] = Q
|
98 | 99 |
|
99 | 100 | # Create dictionaries for the solutions at three timesteps
|
100 |
| -q_ = dict((ui, Function(VV[ui], name=ui)) for ui in sys_comp) |
| 101 | +q_ = dict((ui, Function(VV[ui], name=ui)) for ui in sys_comp) |
101 | 102 | q_1 = dict((ui, Function(VV[ui], name=ui + "_1")) for ui in sys_comp)
|
102 | 103 | q_2 = dict((ui, Function(V, name=ui + "_2")) for ui in u_components)
|
103 | 104 |
|
104 | 105 | # Read in previous solution if restarting
|
105 | 106 | init_from_restart(**vars())
|
106 | 107 |
|
107 | 108 | # Create vectors of the segregated velocity components
|
108 |
| -u_ = as_vector([q_ [ui] for ui in u_components]) # Velocity vector at t |
109 |
| -u_1 = as_vector([q_1[ui] for ui in u_components]) # Velocity vector at t - dt |
110 |
| -u_2 = as_vector([q_2[ui] for ui in u_components]) # Velocity vector at t - 2*dt |
| 109 | +u_ = as_vector([q_[ui] for ui in u_components]) # Velocity vector at t |
| 110 | +u_1 = as_vector([q_1[ui] for ui in u_components]) # Velocity vector at t - dt |
| 111 | +u_2 = as_vector([q_2[ui] for ui in u_components]) # Velocity vector at t - 2*dt |
111 | 112 |
|
112 | 113 | # Adams Bashforth projection of velocity at t - dt/2
|
113 | 114 | U_AB = 1.5 * u_1 - 0.5 * u_2
|
114 | 115 |
|
115 | 116 | # Create short forms for accessing the solution vectors
|
116 |
| -x_ = dict((ui, q_[ui].vector()) for ui in sys_comp) # Solution vectors t |
117 |
| -x_1 = dict((ui, q_1[ui].vector()) for ui in sys_comp) # Solution vectors t - dt |
| 117 | +x_ = dict((ui, q_[ui].vector()) for ui in sys_comp) # Solution vectors t |
| 118 | +x_1 = dict((ui, q_1[ui].vector()) for ui in sys_comp) # Solution vectors t - dt |
118 | 119 | x_2 = dict((ui, q_2[ui].vector()) for ui in u_components) # Solution vectors t - 2*dt
|
119 | 120 |
|
120 | 121 | # Create vectors to hold rhs of equations
|
121 |
| -b = dict((ui, Vector(x_[ui])) for ui in sys_comp) # rhs vectors (final) |
| 122 | +b = dict((ui, Vector(x_[ui])) for ui in sys_comp) # rhs vectors (final) |
122 | 123 | b_tmp = dict((ui, Vector(x_[ui])) for ui in sys_comp) # rhs temp storage vectors
|
123 | 124 |
|
124 | 125 | # Short forms pressure and scalars
|
125 |
| -p_ = q_['p'] # pressure at t |
126 |
| -p_1 = q_1['p'] # pressure at t - dt |
127 |
| -dp_ = Function(Q) # pressure correction |
| 126 | +p_ = q_['p'] # pressure at t |
| 127 | +p_1 = q_1['p'] # pressure at t - dt |
| 128 | +dp_ = Function(Q) # pressure correction |
128 | 129 | for ci in scalar_components:
|
129 | 130 | exec("{}_ = q_ ['{}']".format(ci, ci))
|
130 | 131 | exec("{}_1 = q_1['{}']".format(ci, ci))
|
|
138 | 139 | bcs = create_bcs(**vars())
|
139 | 140 |
|
140 | 141 | # LES setup
|
141 |
| -#exec("from oasis.solvers.NSfracStep.LES.{} import *".format(les_model)) |
| 142 | +# exec("from oasis.solvers.NSfracStep.LES.{} import *".format(les_model)) |
142 | 143 | lesmodel = importlib.import_module('.'.join(('oasis.solvers.NSfracStep.LES', les_model)))
|
143 |
| -vars().update({name:lesmodel.__dict__[name] for name in lesmodel.__all__}) |
| 144 | +vars().update({name: lesmodel.__dict__[name] for name in lesmodel.__all__}) |
144 | 145 |
|
145 | 146 | vars().update(les_setup(**vars()))
|
146 | 147 |
|
147 | 148 | # Non-Newtonian setup
|
148 |
| -#exec("from oasis.solvers.NSfracStep.NNModel.{} import *".format(nn_model)) |
| 149 | +# exec("from oasis.solvers.NSfracStep.NNModel.{} import *".format(nn_model)) |
149 | 150 | nnmodel = importlib.import_module('.'.join(('oasis.solvers.NSfracStep.NNModel', nn_model)))
|
150 |
| -vars().update({name:nnmodel.__dict__[name] for name in nnmodel.__all__}) |
| 151 | +vars().update({name: nnmodel.__dict__[name] for name in nnmodel.__all__}) |
151 | 152 |
|
152 | 153 | vars().update(nn_setup(**vars()))
|
153 | 154 |
|
|
159 | 160 |
|
160 | 161 | # Get constant body forces
|
161 | 162 | f = body_force(**vars())
|
162 |
| -assert(isinstance(f, Coefficient)) |
| 163 | +assert (isinstance(f, Coefficient)) |
163 | 164 | b0 = dict((ui, assemble(v * f[i] * dx)) for i, ui in enumerate(u_components))
|
164 | 165 |
|
165 | 166 | # Get scalar sources
|
166 | 167 | fs = scalar_source(**vars())
|
167 | 168 | for ci in scalar_components:
|
168 |
| - assert(isinstance(fs[ci], Coefficient)) |
| 169 | + assert (isinstance(fs[ci], Coefficient)) |
169 | 170 | b0[ci] = assemble(v * fs[ci] * dx)
|
170 | 171 |
|
171 | 172 | # Preassemble and allocate
|
|
244 | 245 | # Print some information
|
245 | 246 | if tstep % print_intermediate_info == 0:
|
246 | 247 | toc = tx.stop()
|
247 |
| - info_green( 'Time = {0:2.4e}, timestep = {1:6d}, End time = {2:2.4e}'.format(t, tstep, T)) |
| 248 | + info_green('Time = {0:2.4e}, timestep = {1:6d}, End time = {2:2.4e}'.format(t, tstep, T)) |
248 | 249 | info_red('Total computing time on previous {0:d} timesteps = {1:f}'.format(
|
249 | 250 | print_intermediate_info, toc))
|
250 | 251 | list_timings(TimingClear.clear, [TimingType.wall])
|
|
0 commit comments