# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# @author Paul Dechamps
# @date 2022
# Imports.
importblast.utilsasviscUtils
importnumpyasnp
fromfwk.wutilsimportparseargs
importfwk
fromfwk.testingimport*
fromfwk.coloringimportccolors
importmath
defcfgInviscid(nthrds,verb):
importos.path
# Parameters
return{
# Options
'scenario':'aerodynamic',
'task':'analysis',
'Threads':nthrds,# number of threads
'Verb':verb,# verbosity
# Model (geometry or mesh)
'File':os.path.dirname(os.path.dirname(os.path.abspath(__file__)))+'/models/dart/rae_2.geo',# Input file containing the model
'Pars':{'xLgt':5,'yLgt':5,'msF':1,'msTe':0.01,'msLe':0.002},# parameters for input file model
'Dim':2,# problem dimension
'Format':'gmsh',# save format (vtk or gmsh)
# Markers
'Fluid':'field',# name of physical group containing the fluid
'Farfield':['upstream','farfield','downstream'],# LIST of names of physical groups containing the farfield boundaries (upstream/downstream should be first/last element)
'Wing':'airfoil',# LIST of names of physical groups containing the lifting surface boundary
'Wake':'wake',# LIST of names of physical group containing the wake
'WakeTip':'wakeTip',# LIST of names of physical group containing the edge of the wake
'Te':'te',# LIST of names of physical group containing the trailing edge
'dbc':True,
'Upstream':'upstream',
# Freestream
'M_inf':0.729,# freestream Mach number
'AoA':2.31,# freestream angle of attack
# Geometry
'S_ref':1.,# reference surface length
'c_ref':1.,# reference chord length
'x_ref':.25,# reference point for moment computation (x)
'y_ref':0.0,# reference point for moment computation (y)
'z_ref':0.0,# reference point for moment computation (z)
# Numerical
'LSolver':'GMRES',# inner solver (Pardiso, MUMPS or GMRES)
'G_fill':2,# fill-in factor for GMRES preconditioner
'G_tol':1e-5,# tolerance for GMRES
'G_restart':50,# restart for GMRES
'Rel_tol':1e-6,# relative tolerance on solver residual
'Abs_tol':1e-8,# absolute tolerance on solver residual
'Max_it':50# solver maximum number of iterations
}
defcfgBlast(verb):
return{
'Re':6.5e6,# Freestream Reynolds number
'Minf':0.73,# Freestream Mach number (used for the computation of the time step only)
'CFL0':1,# Inital CFL number of the calculation
'Verb':verb,# Verbosity level of the solver
'couplIter':50,# Maximum number of iterations
'couplTol':1e-4,# Tolerance of the VII methodology
'iterPrint':5,# int, number of iterations between outputs
'resetInv':True,# bool, flag to reset the inviscid calculation at every iteration.