예제 #1
0
 def _create_script(self,outputFile,caseFilePath,templateFile=None,batch=True):
     paths = CFD_paths()
     if templateFile==None:
         templateFile = paths.template_pw2
     script = ScriptFile(templateFile,outputFile)
     script.write('# Airfoil Cmesh script for Pointwise V16.03R2\n#generated by Maxim Tyan\n')
     script.write_template_lines(arange(0,8))
     for pt in self.af.upPts:
         script.write('$_TMP(PW_1) addPoint {%.6f %.6f 0}\n'%(pt[0],pt[1]))
     script.write_template_lines(arange(10,23))
     for pt in self.af.loPts[1:-1]:
         script.write('$_TMP(PW_2) addPoint {%.6f %.6f 0}\n'%(pt[0],pt[1]))
     script.write_template_lines(arange(24,45))
     script.write('$_TMP(PW_4) addPoint [pwu::Vector3 add [$_CN(1) getPosition -arc 1] {%.4f 0 0}]\n'%self._xfarfield)
     script.write_template_lines(arange(46,58))
     script.write('$_TMP(PW_5) addPoint [pwu::Vector3 add [$_CN(3) getPosition -arc 1] {0 %.4f 0}]\n'%self._yfarfield)
     script.write_template_lines(arange(59,72))
     script.write('$_TMP(PW_6) addPoint [pwu::Vector3 add [$_CN(4) getPosition -arc 1] {-%.4f 0 0}]\n'%self._xfarfield)
     script.write_template_lines(arange(73,85))
     script.write('$_TMP(PW_7) addPoint [pwu::Vector3 add [$_CN(3) getPosition -arc 1] {0 -%.4f 0}]\n'%self._yfarfield)
     script.write_template_lines(arange(86,99))
     script.write('$_TMP(PW_8) addPoint [pwu::Vector3 add [$_CN(5) getPosition -arc 1] {-%.4f 0 0}]\n'%self._xfarfield)
     script.write_template_lines(arange(100,137))
     script.write('$_TMP(PW_12) do setDimension %d\n'%self._xfarfieldPts)
     script.write_template_lines(arange(138,144))
     script.write('$_TMP(PW_13) do setDimension %d\n'%self._yfarfieldPts)
     script.write_template_lines(arange(145,151))
     script.write('$_TMP(PW_14) do setDimension %d\n'%self._airfoilPts)
     script.write_template_lines(arange(152,159))
     script.write('$_TMP(PW_15) do setDimension %d\n'%(2*self._airfoilPts-1))
     script.write_template_lines(arange(160,166))
     script.write('$_TMP(PW_16) setBeginSpacing %.10f\n'%self._leSpacing)
     script.write_template_lines(arange(167,169))
     script.write('$_TMP(PW_17) setBeginSpacing %.10f\n'%self._leSpacing)
     script.write_template_lines(arange(170,177))
     script.write('$_TMP(PW_18) setEndSpacing %.10f\n'%self._teSpacing)
     script.write_template_lines(arange(178,180))
     script.write('$_TMP(PW_19) setEndSpacing %.10f\n'%self._teSpacing)
     script.write_template_lines(arange(181,183))
     script.write('$_TMP(PW_20) setBeginSpacing %.10f\n'%self._teSpacing)
     script.write_template_lines(arange(184,191))
     script.write('$_TMP(PW_21) setBeginSpacing %.10f\n'%(5.*self._teSpacing))
     script.write_template_lines(arange(192,194))
     script.write('$_TMP(PW_22) setEndSpacing %.10f\n'%(5.*self._teSpacing))
     script.write_template_lines(arange(195,197))
     script.write('$_TMP(PW_23) setEndSpacing %.10f\n'%(5.*self._teSpacing))
     script.write_template_lines(arange(198,205))
     script.write('$_TMP(PW_24) setBeginSpacing %.10f\n'%self._frontFarfieldSpacing)
     script.write_template_lines(arange(206,208))
     script.write('$_TMP(PW_25) setEndSpacing %.10f\n'%self._frontFarfieldSpacing)
     script.write_template_lines(arange(209,216))
     script.write('$_TMP(PW_26) setBeginSpacing %.10f\n'%self._wallSpacing)
     script.write_template_lines(arange(217,219))
     script.write('$_TMP(PW_27) setBeginSpacing %.10f\n'%self._wallSpacing)
     script.write_template_lines(arange(220,227))
     script.write('$_TMP(PW_28) setEndSpacing %.10f\n'%self._farfieldSpacing)
     script.write_template_lines(arange(228,230))
     script.write('$_TMP(PW_29) setBeginSpacing %.10f\n'%self._farfieldSpacing)
     script.write_template_lines(arange(231,233))
     script.write('$_TMP(PW_30) setEndSpacing %.10f\n'%self._farfieldSpacing)
     script.write_template_lines(arange(234,236))
     script.write('$_TMP(PW_31) setBeginSpacing %.10f\n'%self._farfieldSpacing)
     script.write_template_lines(arange(237,244))
     script.write('$_TMP(PW_32) setEndSpacing %.10f\n'%self._farfieldSpacing)
     script.write_template_lines(arange(245,308))
     script.write('pw::Application export [list $_DM(1)] {%s}\n'%caseFilePath)
     if batch:
         script.write('pw::Application exit 0')
     script.close()
예제 #2
0
def create_c_grid(airfoil,param,glfFilePath,caseFilePath,batch=True):
    # modify geometry
    ptsUp = geometry.rotate_2d(airfoil.ptsUp,[0.25,0.0],param.alpha)
    ptsLo = geometry.rotate_2d(airfoil.ptsLo,[0.25,0.0],param.alpha)
    
    param._calc_points([ptsUp[-1,1],ptsLo[-1,1]])
    
    # generate connectors
    script = ScriptFile('.//templates//af_cmesh1.glf',glfFilePath)
    script.write('# Airfoil Cmesh script for Pointwise V17.3R2\n#generated by Maxim Tyan\n')
    script.write_template_lines(arange(0,8))
    for pt in ptsUp:
        script.write('$_TMP(PW_1) addPoint {%.6f %.6f 0}\n'%(pt[0],pt[1]))
    script.write_template_lines(arange(10,23))
    for pt in ptsLo:
        script.write('$_TMP(PW_2) addPoint {%.6f %.6f 0}\n'%(pt[0],pt[1]))
    script.write_template_lines(arange(24,51))
    script.write('$_TMP(PW_2) addPoint {%.6f %.6f 0}\n'%(param.ptsX[0],param.ptsY[0]))
    script.write_template_lines(arange(52,65))
    script.write('$_TMP(PW_3) addPoint {%.6f %.6f 0}\n'%(param.ptsX[1],param.ptsY[1]))
    script.write_template_lines(arange(66,93))
    script.write('$_TMP(PW_5) addPoint {%.6f %.6f 0}\n'%(param.ptsX[2],param.ptsY[2]))
    script.write_template_lines(arange(94,107))
    script.write('$_TMP(PW_6) addPoint {%.6f %.6f 0}\n'%(param.ptsX[3],param.ptsY[3]))
    script.write_template_lines(arange(109,121))
    script.write('$_TMP(PW_7) addPoint {%.6f %.6f 0}\n'%(param.ptsX[4],param.ptsY[4]))
    script.write_template_lines(arange(123,135))
    script.write('$_TMP(PW_8) addPoint {%.6f %.6f 0}\n'%(param.ptsX[5],param.ptsY[5]))
    script.write_template_lines(arange(136,172))    
    # set connector dimmensions
    script.write('$_TMP(PW_1) do setDimension %d\n'%param.nWall)
    script.write_template_lines(arange(173,181))
    script.write('$_TMP(PW_2) do setDimension %d\n'%param.nTE)
    script.write_template_lines(arange(181,192))
    script.write('$_TMP(PW_3) do setDimension %d\n'%param.nx)
    script.write_template_lines(arange(193,201))
    script.write('$_TMP(PW_5) do setDimension %d\n'%param.ny)
    script.write_template_lines(arange(202,209))
    nFront = 2*param.nWall-1
    script.write('$_TMP(PW_6) do setDimension %d\n'%nFront)
    script.write_template_lines(arange(210,226))
    # set spacings
    script.write('$_TMP(PW_1) setBeginSpacing %.10f\n'%param.dsLE)
    script.write_template_lines(arange(227,229))
    script.write('$_TMP(PW_2) setBeginSpacing %.10f\n'%param.dsLE)
    script.write_template_lines(arange(230,239))
    script.write('$_TMP(PW_3) setEndSpacing %.10f\n'%param.dsTE)
    script.write_template_lines(arange(240,242))
    script.write('$_TMP(PW_4) setEndSpacing %.10f\n'%param.dsTE)
    script.write_template_lines(arange(243,245))
    script.write('$_TMP(PW_5) setBeginSpacing %.10f\n'%(5.0*param.dsWall))
    script.write_template_lines(arange(246,248))
    script.write('$_TMP(PW_6) setBeginSpacing %.10f\n'%(5.0*param.dsWall))
    script.write_template_lines(arange(249,258))
    script.write('$_TMP(PW_7) setBeginSpacing %.10f\n'%param.dsWall)
    script.write_template_lines(arange(259,261))
    script.write('$_TMP(PW_8) setBeginSpacing %.10f\n'%param.dsWall)
    script.write_template_lines(arange(262,275))
    script.write('$_TMP(PW_1) setEndSpacing %10f\n'%param.dsFF)
    script.write_template_lines(arange(276,278))
    script.write('$_TMP(PW_2) setEndSpacing %10f\n'%param.dsFF)
    script.write_template_lines(arange(279,281))
    script.write('$_TMP(PW_3) setEndSpacing %10f\n'%param.dsFF)
    script.write_template_lines(arange(282,284))
    script.write('$_TMP(PW_4) setEndSpacing %10f\n'%param.dsFF)
    script.write_template_lines(arange(285,287))
    script.write('$_TMP(PW_5) setBeginSpacing %10f\n'%param.dsFF)
    script.write_template_lines(arange(288,290))
    script.write('$_TMP(PW_6) setBeginSpacing %10f\n'%param.dsFF)
    script.write_template_lines(arange(291,299))
    script.write('$_TMP(PW_9) setEndSpacing %.10f\n'%(10*param.dsTE))
    script.write_template_lines(arange(300,302))
    script.write('$_TMP(PW_10) setEndSpacing %.10f\n'%(10*param.dsTE))
    script.write_template_lines(arange(303,305))
    script.write('$_TMP(PW_11) setBeginSpacing %.10f\n'%(10*param.dsTE))
    script.write_template_lines(arange(306,308))
    script.write('$_TMP(PW_12) setEndSpacing %.10f\n'%(10*param.dsTE))
    script.write_template_lines(arange(309,408))
    # set bc and export
    script.write('$_TMP(mode_4) initialize -type CAE {%s}\n'%caseFilePath)
    script.write_template_lines(arange(409,415))
    if batch:
        script.write('pw::Application exit 0')
    # run script
    script.close()
    system('\"%s\"'%glfFilePath)
예제 #3
0
 def _create_script(self,outputFile,caseFilePath,templateFile=None,batch=True):
     paths = CFD_paths()
     if templateFile==None:
         templateFile = paths.template_pw3
     script = ScriptFile(templateFile,outputFile)
     script.write('# Airfoil Omesh script for Pointwise V16.03R2\n#generated by Maxim Tyan\n')
     script.write_template_lines(arange(0,8))
     for pt in self.af.ptsUp:
         script.write('$_TMP(PW_1) addPoint {%.6f %.6f 0}\n'%(pt[0],pt[1]))
     script.write_template_lines(arange(10,23))
     for pt in self.af.ptsLo[1:-1]:
         script.write('$_TMP(PW_2) addPoint {%.6f %.6f 0}\n'%(pt[0],pt[1]))
     script.write_template_lines(arange(24,38))
     script.write('$_TMP(PW_3) do setDimension %d\n'%self._airfoilPts)
     script.write_template_lines(arange(39,45))
     script.write('$_TMP(PW_4) setBeginSpacing %.8f\n'%self._dsLE)
     script.write_template_lines(arange(46,48))
     script.write('$_TMP(PW_5) setBeginSpacing %.8f\n'%self._dsLE)
     script.write_template_lines(arange(49,56))
     script.write('$_TMP(PW_6) setEndSpacing %.8f\n'%self._dsTE)
     script.write_template_lines(arange(57,59))
     script.write('$_TMP(PW_7) setEndSpacing %.8f\n'%self._dsTE)
     script.write_template_lines(arange(60,76))
     script.write('$_DM(1) setExtrusionSolverAttribute NormalInitialStepSize %.8f\n'%self._dsWall)
     script.write('$_DM(1) setExtrusionSolverAttribute SpacingGrowthFactor %.8f\n'%self._growthRate)
     script.write('$_TMP(mode_6) run -keepFailingStep %d\n'%self._interiorPts)
     script.write_template_lines(arange(78,111))
     script.write('pw::Application export [list $_DM(1)] {%s}\n'%caseFilePath)
     if batch:
         script.write('pw::Application exit 0')
     script.close()