cpacs.ftl 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <cpacs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../schema/cpacs_schema.xsd">
  2. <header>
  3. <name>${vo.header.name}</name>
  4. <creator>SurroMDAO</creator>
  5. <timestamp>${vo.header.timestamp}</timestamp>
  6. <version>1.0</version>
  7. <cpacsVersion>3.3</cpacsVersion>
  8. </header>
  9. <vehicles>
  10. <#if vo.cst??>
  11. <profiles>
  12. <wingAirfoils>
  13. <wingAirfoil uID="foil1">
  14. <name>foil1</name>
  15. <description>airfoil</description>
  16. <cst2D mapType="complex">
  17. <N>${vo.cst.cstn}</N>
  18. <lowerB mapType="vector">${vo.cst.lowerb?replace( ",", ";")}</lowerB>
  19. <lowerN1 mapType="dobule">${vo.cst.lowern1}</lowerN1>
  20. <lowerN2 mapType="dobule">${vo.cst.lowern2}</lowerN2>
  21. <upperB mapType="vector">${vo.cst.upperb?replace(",", ";")}</upperB>
  22. <upperN1 mapType="dobule">${vo.cst.uppern1}</upperN1>
  23. <upperN2 mapType="dobule">${vo.cst.uppern2}</upperN2>
  24. <trailingEdgeThickness mapType="dobule">0</trailingEdgeThickness>
  25. </cst2D>
  26. </wingAirfoil>
  27. </wingAirfoils>
  28. </profiles>
  29. <#else>
  30. </#if>
  31. <#if vo.adflow??>
  32. <aircraft>
  33. <model uID="wing">
  34. <name>wing</name>
  35. <reference mapType="complex">
  36. <area mapType="double">${vo.adflow.area}</area>
  37. <length mapType="double">${vo.adflow.length}</length>
  38. <point mapType="complex">
  39. <x mapType="double">${vo.adflow.momx}</x>
  40. <y mapType="double">${vo.adflow.momy}</y>
  41. <z mapType="double">${vo.adflow.momz}</z>
  42. </point>
  43. </reference>
  44. </model>
  45. </aircraft>
  46. <#else>
  47. </#if>
  48. </vehicles>
  49. <toolspecific>
  50. <#if vo.ffd??>
  51. <FFD mapType="complex" uID="FFD">
  52. <switch mapType="boolean">1</switch>
  53. <FFDFile>${vo.ffd.fname}</FFDFile>
  54. <order mapType="integer">${vo.ffd.fname}</order>
  55. <Controlpoints mapType="complex">
  56. <Nx mapType="integer">${vo.ffd.nx}</Nx>
  57. <Ny mapType="integer">${vo.ffd.ny}</Ny>
  58. <Nz mapType="integer">${vo.ffd.nz}</Nz>
  59. </Controlpoints>
  60. <vars mapType="complex">
  61. <sample mapType="vector">${vo.ffd.vars?replace( ",", ";")}</sample>
  62. <local_shape_dv mapType="boolean">1</local_shape_dv>
  63. </vars>
  64. </FFD>
  65. <#else>
  66. </#if>
  67. <CFD>
  68. <#if vo.xfoil??>
  69. <XFOIL mapType="complex" uID="XFOIL">
  70. <analyzed mapType="boolean">1</analyzed>
  71. <options mapType="complex">
  72. <pacc>${vo.xfoil.pacc}</pacc>
  73. <cpwr>${vo.xfoil.cpwr}</cpwr>
  74. <iter mapType="integer">${vo.xfoil.iter}</iter>
  75. <ppar mapType="integer">${vo.xfoil.ppar}</ppar>
  76. </options>
  77. <condition mapType="complex">
  78. <alpha mapType="double">${vo.xinvo.alpha}</alpha>
  79. <mach mapType="double">${vo.xinvo.mach}</mach>
  80. <reynolds mapType="double">${vo.xinvo.reynolds}</reynolds>
  81. </condition>
  82. <evalFuncs mapType="complex">
  83. <cl mapType="double">${vo.xoutvo.cl}</cl>
  84. <cd mapType="double">${vo.xoutvo.cd}</cd>
  85. <cdp mapType="double">${vo.xoutvo.cdp}</cdp>
  86. <cm mapType="double">${vo.xoutvo.cm}</cm>
  87. <xtr_upper mapType="double">${vo.xoutvo.xtr_upper}</xtr_upper>
  88. <xtr_lower mapType="double">${vo.xoutvo.xtr_lower}</xtr_lower>
  89. </evalFuncs>
  90. </XFOIL>
  91. <#else>
  92. </#if>
  93. <#if vo.adflow??>
  94. <ADflow mapType="complex" uID="ADflow">
  95. <switch mapType="boolean">1</switch>
  96. <proName>${vo.adflow.proname}</proName>
  97. <analyzed mapType="boolean">0</analyzed>
  98. <isAirfoil mapType="boolean">${vo.adflow.isairfoil}</isAirfoil>
  99. <inputDirectoryName>model</inputDirectoryName>
  100. <outputDirectoryName>results</outputDirectoryName>
  101. <options mapType="complex">
  102. <gridFile>${vo.adflow.gridfile}</gridFile>
  103. <writeTecplotSurfaceSolution mapType="boolean">${vo.adflow.writetecplotsurfacesolution}</writeTecplotSurfaceSolution>
  104. <equationType>${vo.adflow.equationtype}</equationType>
  105. <smoother>DADI</smoother>
  106. <MGCycle>${vo.adflow.mgcycle}</MGCycle>
  107. <nCycles mapType="integer">${vo.adflow.ncycles}</nCycles>
  108. <monitorvariables mapType="complex">
  109. <#if vo.adflow.resrho?trim == "1">
  110. <monitorvariable1>resrho</monitorvariable1>
  111. <#else>
  112. </#if>
  113. <#if vo.adflow.cl?trim == "1">
  114. <monitorvariable2>cl</monitorvariable2>
  115. <#else>
  116. </#if>
  117. <#if vo.adflow.cd?trim == "1">
  118. <monitorvariable2>cd</monitorvariable2>
  119. <#else>
  120. </#if>
  121. <#if vo.adflow.cmz?trim == "1">
  122. <monitorvariable2>cmz</monitorvariable2>
  123. <#else>
  124. </#if>
  125. </monitorvariables>
  126. <useNKSolver mapType="boolean">1</useNKSolver> # 使用nk求解器
  127. <useanksolver mapType="boolean">1</useanksolver> # 使用ank求解器
  128. <nsubiterturb mapType="integer">5</nsubiterturb>
  129. <liftIndex mapType="integer">${vo.adflow.liftindex}</liftIndex>
  130. <infchangecorrection mapType="boolean">1</infchangecorrection>
  131. <L2Convergence mapType="double">${vo.adflow.l2convergence}</L2Convergence>
  132. <L2ConvergenceCoarse mapType="double">${vo.adflow.l2convergencecoarse}</L2ConvergenceCoarse>
  133. <NKSwitchTol mapType="double">1e-8</NKSwitchTol>
  134. <ANKSwitchTol mapType="double">1e-1</ANKSwitchTol>
  135. <L2ConvergenceRel mapType="double">1e-3</L2ConvergenceRel>
  136. </options>
  137. <condition mapType="complex">
  138. <mode mapType="integer">${vo.adinvo.mode}</mode>
  139. <alpha mapType="double">${vo.adinvo.alpha}</alpha>
  140. <mach mapType="double">${vo.adinvo.mach}</mach>
  141. <reynolds mapType="double">${vo.adinvo.reynolds}</reynolds>
  142. <temperature mapType="double">${vo.adinvo.temperature}</temperature>
  143. <reynoldsLength mapType="double">${vo.adinvo.reynoldsLength}</reynoldsLength>
  144. </condition>
  145. <evalFuncs mapType="complex">
  146. <force mapType="complex">
  147. <cl mapType="double">${vo.adoutvo.cl}</cl>
  148. <cd mapType="double">${vo.adoutvo.cd}</cd>
  149. <cmz mapType="double">${vo.adoutvo.cmz}</cmz>
  150. </force>
  151. <geometry mapType="complex">
  152. <volume mapType="double">0.0</volume>
  153. </geometry>
  154. </evalFuncs>
  155. </ADflow>
  156. <#else>
  157. </#if>
  158. </CFD>
  159. </toolspecific>
  160. </cpacs>