index.vue 135 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197
  1. <template>
  2. <div class="hcfdlab">
  3. <div class="scal">
  4. <div class="toolbar-part-detail lbg_color1 ">
  5. <!-- 工具栏 -->
  6. <!-- <transformtool ref="transform" :servertype="servertype" :projectId='project.projectId' :wstep='wstep' :bStep='bStep' :vStep='vStep'></transformtool> -->
  7. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  8. <el-tab-pane label="几何建模" name="one"><geometry></geometry></el-tab-pane>
  9. <el-tab-pane label="网格划分" name="twos"> <meshindex></meshindex></el-tab-pane>
  10. <!-- 通用设置 -->
  11. <el-tab-pane :label="$t('HCFD.geneal.geneal')" name="two">
  12. <div class="imgzong">
  13. <div class="item1" v-for="(itemcj,index) in twolist" :key="'two-'+ index" :class="{activeOrange:active=='two-'+ index}" @click="clickgeometry($event,index,'two-'+ index)">
  14. <el-tooltip class="item" effect="dark" :content="itemcj.titlie" placement="bottom">
  15. <el-image :src="itemcj.icon" fit="cover" />
  16. </el-tooltip>
  17. </div>
  18. </div>
  19. </el-tab-pane>
  20. <!-- 物理模型 -->
  21. <el-tab-pane :label="$t('HCFD.physics.physics')" name="three">
  22. <div class="imgzong">
  23. <div class="item1" v-for="(item,index) in physicslist" :key="'three-'+ index" :class="{activeOrange:active=='three-'+ index}" @click="clickgeometry($event,index,'three-'+ index)">
  24. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  25. <el-image :src="item.icon" fit="cover" />
  26. </el-tooltip>
  27. </div>
  28. <span class="shu">|</span>
  29. <div class="item1" v-for="(item,index) in physicslist2" :key="'three2-'+ index" :class="{activeOrange:active=='three2-'+ index}" @click="clickgeometry($event,index,'three2-'+ index)">
  30. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  31. <el-image :src="item.icon" fit="cover" />
  32. </el-tooltip>
  33. </div>
  34. <span class="shu">|</span>
  35. <div class="item1" v-for="(item,index) in physicslist1" :key="'three1-'+ index" :class="{activeOrange:active=='three1-'+ index}" @click="clickgeometry($event,index,'three1-'+ index)">
  36. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  37. <el-image :src="item.icon" fit="cover" />
  38. </el-tooltip>
  39. </div>
  40. </div>
  41. </el-tab-pane>
  42. <!-- 求解控制 -->
  43. <el-tab-pane :label="$t('HCFD.solution.solution')" name="four">
  44. <div class="imgzong">
  45. <div class="item1" v-for="(item,index) in solutionlist" :key="'four-'+ index" :class="{activeOrange:active=='four-'+ index}" @click="clickgeometry($event,index,'four-'+ index)">
  46. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  47. <el-image :src="item.icon" fit="cover" />
  48. </el-tooltip>
  49. </div>
  50. <span class="shu">|</span>
  51. <div class="item1" v-for="(item,index) in solutionlist2" :key="'four2-'+ index" :class="{activeOrange:active=='four2-'+ index}" @click="clickgeometry($event,index,'four2-'+ index)">
  52. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  53. <el-image :src="item.icon" fit="cover" />
  54. </el-tooltip>
  55. </div>
  56. <span class="shu">|</span>
  57. <div class="item1" v-for="(item,index) in solutionlist3" :key="'four3-'+ index" :class="{activeOrange:active=='four3-'+ index}" @click="clickgeometry($event,index,'four3-'+ index)">
  58. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  59. <el-image :src="item.icon" fit="cover" />
  60. </el-tooltip>
  61. </div>
  62. <!-- <span class="shu">|</span>
  63. <div class="item1" v-for="(item,index) in solutionlist4" :key="'four4-'+ index" :class="{activeOrange:active=='four4-'+ index}" @click="clickgeometry($event,index,'four4-'+ index)">
  64. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  65. <svg class="icon" aria-hidden="true">
  66. <use :xlink:href="`#${item.icon}`" />
  67. </svg>
  68. </el-tooltip>
  69. </div> -->
  70. </div>
  71. <!-- 结果 -->
  72. </el-tab-pane>
  73. <el-tab-pane :label=" $t('HCFD.results.results')" name="five">
  74. <div class="imgzong" v-if="lsolverState=='2'">
  75. <div class="item1 " v-for="(item,index) in resultslist" :key="'five-'+ index" :class="{activeOrange:active=='five-'+ index}" @click="clickgeometry($event,index,'five-'+ index)">
  76. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  77. <el-image :src="item.icon" fit="cover" />
  78. </el-tooltip>
  79. </div>
  80. </div>
  81. </el-tab-pane>
  82. <!-- 工具 -->
  83. <el-tab-pane :label="$t('HCFD.tool.unitConversion')" name="six">
  84. <div class="imgzong">
  85. <div class="item1" v-for="(item,index) in unitlist " :key="'six-'+ index" :class="{activeOrange:active=='six-'+ index}" @click="clickgeometry($event,index,'six-'+ index)">
  86. <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
  87. <el-image :src="item.icon" fit="cover" />
  88. </el-tooltip>
  89. </div>
  90. </div>
  91. </el-tab-pane>
  92. </el-tabs>
  93. </div>
  94. </div>
  95. <!-- 缩放 -->
  96. <el-dialog
  97. v-if="active=='two-0'"
  98. :visible.sync="dialog.scale_visiable"
  99. :close-on-click-modal="false"
  100. @close='activecleer()'
  101. class="dialog"
  102. :modal='false'
  103. custom-class='dialoglocation dialog_color'
  104. width="385px"
  105. :style="styX"
  106. >
  107. <div slot="title" class=dialog_header>
  108. <el-image class="imge" :src="t1" fit="cover" />
  109. <span class="text-color">{{$t('HCFD.geneal.scale')}}</span>
  110. </div>
  111. <el-form>
  112. <el-form-item label="名称" :label-width="formLabelWidth2" >
  113. <el-input v-model="mcnames" autocomplete="off"></el-input>
  114. </el-form-item>
  115. <el-form-item label="类型" :label-width="formLabelWidth2" >
  116. <el-input value="suofang" autocomplete="off"></el-input>
  117. </el-form-item>
  118. <div class="line">
  119. <div class="linetext">相交/延长</div>
  120. </div>
  121. <el-form-item :label="$t('HCFD.geneal.factor')" :label-width="formLabelWidth2" >
  122. <el-input v-model="geneal.MeshTransform.Scale.Factor" autocomplete="off"></el-input>
  123. </el-form-item>
  124. </el-form>
  125. <div slot="footer" class="dialog-footer">
  126. <el-button type="info" @click="dialog.scale_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
  127. <el-button type="primary" @click="hcfdparam(); dialog.scale_visiable = false"
  128. >{{ $t("HCFD.file.ok")}}</el-button
  129. >
  130. </div>
  131. </el-dialog>
  132. <!-- 翻译 -->
  133. <el-dialog
  134. v-if="active=='two-1'"
  135. :visible.sync="dialog.translation_visiable"
  136. :close-on-click-modal="false"
  137. @close='activecleer()'
  138. :modal='false'
  139. custom-class='dialoglocation dialog_color'
  140. width="385px"
  141. :style="styX"
  142. >
  143. <div slot="title" class=dialog_header>
  144. <el-image class="imge" :src="t2" fit="cover" />
  145. <span class="text-color">{{$t('HCFD.geneal.translation')}}</span>
  146. </div>
  147. <el-form class="div64">
  148. <el-form-item label="名称" :label-width="formLabelWidth2" >
  149. <el-input v-model="mcnames" autocomplete="off"></el-input>
  150. </el-form-item>
  151. <el-form-item label="类型" :label-width="formLabelWidth2" >
  152. <el-input value="PingYi" autocomplete="off"></el-input>
  153. </el-form-item>
  154. <div class="line">
  155. <div class="linetext">属性</div>
  156. </div>
  157. <div class="liitem">
  158. <el-form-item :label="$t('HCFD.geneal.distance')" :label-width="formLabelWidth7">
  159. <el-input v-model="geneal.MeshTransform.Translation.Distance" autocomplete="off"></el-input>
  160. </el-form-item>
  161. </div>
  162. <div class="liitem">
  163. <el-form-item :label="$t('HCFD.geneal.translationx')" :label-width="formLabelWidth7">
  164. <el-input v-model="geneal.MeshTransform.Translation.X" autocomplete="off"></el-input>
  165. </el-form-item>
  166. </div>
  167. <div class="liitem">
  168. <el-form-item :label=" $t('HCFD.geneal.translationy')" :label-width="formLabelWidth7">
  169. <el-input v-model="geneal.MeshTransform.Translation.Y" autocomplete="off"></el-input>
  170. </el-form-item>
  171. </div>
  172. <div class="liitem">
  173. <el-form-item :label="$t('HCFD.geneal.translationz')" :label-width="formLabelWidth7">
  174. <el-input v-model="geneal.MeshTransform.Translation.Z" autocomplete="off"></el-input>
  175. </el-form-item>
  176. </div>
  177. </el-form>
  178. <div slot="footer" class="dialog-footer">
  179. <el-button type="info" @click="dialog.translation_visiable = false"
  180. > {{ $t("HCFD.file.cancel")}} </el-button
  181. >
  182. <el-button type="primary" @click="hcfdparam(); dialog.translation_visiable = false"
  183. >{{ $t("HCFD.file.ok")}}</el-button
  184. >
  185. </div>
  186. </el-dialog>
  187. <!-- 旋转 -->
  188. <el-dialog
  189. v-if="active=='two-2'"
  190. :close-on-click-modal="false"
  191. @close='activecleer()'
  192. :modal='false'
  193. custom-class='dialoglocation dialog_color'
  194. :visible.sync="dialog.rotation_visiable"
  195. width="385px"
  196. :style="styX"
  197. >
  198. <div slot="title" class=dialog_header>
  199. <el-image class="imge" :src="t3" fit="cover" />
  200. <span class="text-color">{{$t('HCFD.geneal.rotation')}}</span>
  201. </div>
  202. <el-form class="div64">
  203. <el-form-item label="名称" :label-width="formLabelWidth2" >
  204. <el-input v-model="mcnames" autocomplete="off"></el-input>
  205. </el-form-item>
  206. <el-form-item label="类型" :label-width="formLabelWidth2" >
  207. <el-input value="xuanzuan" autocomplete="off"></el-input>
  208. </el-form-item>
  209. <div class="line">
  210. <div class="linetext">属性</div>
  211. </div>
  212. <el-form-item :label="$t('HCFD.geneal.angle')" :label-width="formLabelWidth7" >
  213. <el-input v-model="geneal.MeshTransform.Rotation.Angle" autocomplete="off"></el-input>
  214. </el-form-item>
  215. <el-form-item :label="$t('HCFD.geneal.rotationx')" :label-width="formLabelWidth7" >
  216. <el-input v-model="geneal.MeshTransform.Rotation.X" autocomplete="off"></el-input>
  217. </el-form-item>
  218. <el-form-item :label="$t('HCFD.geneal.rotationy')" :label-width="formLabelWidth7" >
  219. <el-input v-model="geneal.MeshTransform.Rotation.Y" autocomplete="off"></el-input>
  220. </el-form-item>
  221. <el-form-item :label="$t('HCFD.geneal.rotationz')" :label-width="formLabelWidth7" >
  222. <el-input v-model="geneal.MeshTransform.Rotation.Z" autocomplete="off"></el-input>
  223. </el-form-item>
  224. <el-form-item :label="$t('HCFD.geneal.rotationx1')" :label-width="formLabelWidth7" >
  225. <el-input v-model="geneal.MeshTransform.Rotation.X1" autocomplete="off"></el-input>
  226. </el-form-item>
  227. <el-form-item :label="$t('HCFD.geneal.rotationy1')" :label-width="formLabelWidth7" >
  228. <el-input v-model="geneal.MeshTransform.Rotation.Y1" autocomplete="off"></el-input>
  229. </el-form-item>
  230. <el-form-item :label="$t('HCFD.geneal.rotationz1')" :label-width="formLabelWidth7" >
  231. <el-input v-model="geneal.MeshTransform.Rotation.Z1" autocomplete="off"></el-input>
  232. </el-form-item>
  233. </el-form>
  234. <div slot="footer" class="dialog-footer">
  235. <el-button type="info" @click="dialog.rotation_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
  236. <el-button type="primary" @click="hcfdparam(); dialog.rotation_visiable = false"
  237. >{{ $t("HCFD.file.ok")}} </el-button
  238. >
  239. </div>
  240. </el-dialog>
  241. <!-- 分析类型 -->
  242. <el-dialog
  243. class="lg-y-z"
  244. :visible.sync="dialog.type_visiable "
  245. :close-on-click-modal="false"
  246. @close='activecleer()'
  247. v-if="active=='two-3'"
  248. :modal='false'
  249. custom-class='dialoglocation dialog_color'
  250. width="385px"
  251. :style="styX"
  252. >
  253. <div slot="title" class=dialog_header>
  254. <el-image class="imge" :src="t4" fit="cover" />
  255. <span class="text-color">{{$t('HCFD.geneal.analysis')}}</span>
  256. </div>
  257. <el-form>
  258. <div class="radio_text text_color liangf">
  259. <div class="classfelx">
  260. <el-tooltip class="item" effect="dark" content="分析类型" placement="bottom">
  261. <el-radio
  262. v-model="parameterObj.nmlParam.analysis_Type"
  263. label="Steady"
  264. >{{ $t("HCFD.geneal.steady") }}</el-radio
  265. >
  266. </el-tooltip>
  267. </div>
  268. <div class="classfelx">
  269. <el-tooltip class="item" effect="dark" content="分析类型" placement="bottom">
  270. <el-radio
  271. v-model="parameterObj.nmlParam.analysis_Type"
  272. label="Unsteady"
  273. >{{ $t("HCFD.geneal.unsteady") }}</el-radio
  274. >
  275. </el-tooltip>
  276. </div>
  277. </div>
  278. </el-form>
  279. <div slot="footer" class="dialog-footer">
  280. <el-button
  281. type="info"
  282. @click="referencevisiable((dialog.type_visiable = false))"
  283. >{{ $t("HCFD.file.cancel")}} </el-button
  284. >
  285. <el-button type="primary" @click="hcfdparam(); dialog.type_visiable = false"
  286. >{{ $t("HCFD.file.ok")}}</el-button
  287. >
  288. </div>
  289. </el-dialog>
  290. <!-- 并行类型 -->
  291. <el-dialog
  292. class="lg-y-z"
  293. :visible.sync="dialog.parallel_visiable "
  294. :close-on-click-modal="false"
  295. @close='activecleer()'
  296. v-if="active=='two-4'"
  297. :modal='false'
  298. custom-class='dialoglocation dialog_color'
  299. width="385px"
  300. :style="styX"
  301. >
  302. <div slot="title" class=dialog_header>
  303. <el-image class="imge" :src="t5" fit="cover" />
  304. <span class="text-color">{{$t('HCFD.geneal.parallel')}}</span>
  305. </div>
  306. <el-form>
  307. <div class="radio_text text_color">
  308. <el-radio-group
  309. v-model="parameterObj.nmlParam.parallel_Optional"
  310. >
  311. <div>
  312. <el-tooltip class="item" effect="dark" content="并行类型" placement="bottom">
  313. <el-radio label="Serial">
  314. {{ $t("HCFD.geneal.serial") }}</el-radio
  315. >
  316. </el-tooltip>
  317. </div>
  318. <div>
  319. <el-tooltip class="item" effect="dark" content="并行类型" placement="bottom">
  320. <el-radio label="MPI Parallel">{{
  321. $t("HCFD.geneal.mpi")
  322. }}</el-radio>
  323. </el-tooltip>
  324. </div>
  325. </el-radio-group>
  326. <el-form-item :label="$t('HCFD.geneal.number')" :label-width="formLabelWidth2" v-if="
  327. parameterObj.nmlParam.parallel_Optional == 'MPI Parallel'
  328. ">
  329. <el-input v-model="parameterObj.nmlParam.number_of_Processors" autocomplete="off"></el-input>
  330. </el-form-item>
  331. </div>
  332. </el-form>
  333. <div slot="footer" class="dialog-footer">
  334. <el-button
  335. type="info"
  336. @click="referencevisiable((dialog.parallel_visiable = false))"
  337. >{{ $t("HCFD.file.cancel")}} </el-button
  338. >
  339. <el-button type="primary" @click="hcfdparam(); dialog.parallel_visiable = false"
  340. >{{ $t("HCFD.file.ok")}}</el-button
  341. >
  342. </div>
  343. </el-dialog>
  344. <!-- 控制方程 -->
  345. <el-dialog
  346. v-if="active=='three-0'"
  347. :visible.sync="dialog.equation_visiable"
  348. :close-on-click-modal="false"
  349. @close='activecleer()'
  350. class="dialog"
  351. :modal='false'
  352. custom-class='dialoglocation dialog_color'
  353. width="385px"
  354. :style="styX"
  355. >
  356. <div slot="title" class=dialog_header>
  357. <el-image class="imge" :src="w1" fit="cover" />
  358. <span class="text-color">{{$t('HCFD.physics.gover')}}</span>
  359. </div>
  360. <el-form>
  361. <el-radio-group
  362. v-model="parameterObj.nmlParam.eqn_type"
  363. size="mini"
  364. >
  365. <el-radio label="cal_perf_compress" style="display: block; padding:15px 0;">{{
  366. $t("HCFD.physics.compress")
  367. }}</el-radio>
  368. <el-radio label="cal_perf_incompress">{{
  369. $t("HCFD.physics.incompress")
  370. }}</el-radio>
  371. </el-radio-group>
  372. <div class="disflex text_color" v-if="parameterObj.nmlParam.eqn_type=='cal_perf_incompress'">
  373. <span class="text_color formLabelWidth8">{{ $t("HCFD.physics.artifical") }}</span>
  374. <el-input
  375. class='inpw75'
  376. size="mini"
  377. v-model="parameterObj.nmlParam.artificial_compress"
  378. ></el-input>
  379. </div>
  380. </el-form>
  381. <div slot="footer" class="dialog-footer">
  382. <el-button type="info" @click="dialog. equation_visiable = false"> {{ $t("HCFD.file.cancel")}} </el-button>
  383. <el-button type="primary" @click="hcfdparam(); dialog.equation_visiable = false"
  384. >{{ $t("HCFD.file.ok")}} </el-button
  385. >
  386. </div>
  387. </el-dialog>
  388. <!-- 粘性模型 -->
  389. <el-dialog
  390. class="lg-y-z"
  391. :visible.sync="dialog.inviscid_visiable"
  392. :close-on-click-modal="false"
  393. @close='activecleer()'
  394. v-if="active=='three2-0'"
  395. :modal='false'
  396. custom-class='dialoglocation dialog_color'
  397. width="385px"
  398. heigth="385px"
  399. :style="styX"
  400. >
  401. <div slot="title" class=dialog_header>
  402. <el-image class="imge" :src="w2" fit="cover" />
  403. <span class="text-color">{{$t('HCFD.physics.viscous')}}</span>
  404. </div>
  405. <el-form>
  406. <div class="selecr">
  407. <el-form-item label="模型类型" :label-width="formLabelWidth5">
  408. <el-select v-model="parameterObj.nmlParam.viscous_terms" placeholder="请选择">
  409. <el-option
  410. v-for="item in selectlist1"
  411. :key="item.value"
  412. :label="item.name"
  413. :value="item.value"
  414. >
  415. </el-option>
  416. </el-select>
  417. </el-form-item>
  418. <div class="line">
  419. <div class="linetext">属性</div>
  420. </div>
  421. <div v-if="parameterObj.nmlParam.viscous_terms=='laminar'">
  422. <el-form-item :label="$t('HCFD.physics.molecular')" :label-width="formLabelWidth5" >
  423. <el-input v-model="parameterObj.nmlParam.prandtlnumber_molecular" autocomplete="off"></el-input>
  424. </el-form-item>
  425. </div>
  426. <div v-if="parameterObj.nmlParam.viscous_terms=='turbulent'">
  427. <el-form-item label="湍流模型" :label-width="formLabelWidth5">
  428. <el-select v-model="parameterObj.nmlParam.turb_model" placeholder="请选择">
  429. <el-option
  430. v-for="item in selectlist2"
  431. :key="item.value"
  432. :label="item.name"
  433. :value="item.value"
  434. >
  435. </el-option>
  436. </el-select>
  437. </el-form-item>
  438. <el-form-item :label="$t('HCFD.physics.Molecular')" :label-width="formLabelWidth5" >
  439. <el-input v-model="parameterObj.nmlParam.prandtlnumber_molecular" autocomplete="off"></el-input>
  440. </el-form-item>
  441. <el-form-item :label="$t('HCFD.physics.turbulents')" :label-width="formLabelWidth5" >
  442. <el-input v-model="Physics.Turbulent.TurbulentPrandtlNumber" autocomplete="off"></el-input>
  443. </el-form-item>
  444. </div>
  445. </div>
  446. </el-form>
  447. <div slot="footer" class="dialog-footer">
  448. <el-button
  449. type="info"
  450. @click="dialog.inviscid_visiable= false"
  451. >{{ $t("HCFD.file.cancel")}} </el-button
  452. >
  453. <el-button type="primary" @click="hcfdparam(); dialog.inviscid_visiable = false"
  454. >{{ $t("HCFD.file.ok")}}</el-button
  455. >
  456. </div>
  457. </el-dialog>
  458. <!-- 运动网格 -->
  459. <el-dialog
  460. class="lg-y-z"
  461. :visible.sync="dialog.dynamic_visiable "
  462. :close-on-click-modal="false"
  463. @close='activecleer()'
  464. v-if="active=='three2-2'"
  465. :modal='false'
  466. custom-class='dialoglocation dialog_color'
  467. width="385px"
  468. :style="styX"
  469. >
  470. <div slot="title" class=dialog_header>
  471. <el-image class="imge" :src="w4" fit="cover" />
  472. <span class="text-color">{{$t('HCFD.physics.dynamic')}}</span>
  473. </div>
  474. <el-form>
  475. <div class="radio_text text_color liangf">
  476. <div class="classfelx">
  477. <el-radio
  478. v-model="parameterObj.nmlParam.dynamic_Mesh"
  479. label="on"
  480. >on</el-radio
  481. >
  482. </div>
  483. <div class="classfelx">
  484. <el-radio
  485. v-model="parameterObj.nmlParam.dynamic_Mesh"
  486. label="off"
  487. >off</el-radio
  488. >
  489. </div>
  490. </div>
  491. <div class="selecr" v-if="parameterObj.nmlParam.dynamic_Mesh=='on'">
  492. <el-form-item label="运动模型" :label-width="formLabelWidth7">
  493. <el-select v-model="ydval" placeholder="请选择">
  494. <el-option
  495. v-for="item in ydlist"
  496. :key="item.value"
  497. :label="item.name"
  498. :value="item.value"
  499. >
  500. </el-option>
  501. </el-select>
  502. </el-form-item>
  503. <div class="line">
  504. <div class="linetext">定义运动体</div>
  505. </div>
  506. <el-form-item label="数量" :label-width="formLabelWidth7">
  507. <el-input v-model="form.name" autocomplete="off"></el-input>
  508. </el-form-item>
  509. <el-form-item label="名字" :label-width="formLabelWidth7">
  510. <el-input v-model="form.name" autocomplete="off"></el-input>
  511. </el-form-item>
  512. <el-form-item label="运动机理" :label-width="formLabelWidth7">
  513. <el-select v-model="ydval2" placeholder="请选择">
  514. <el-option
  515. v-for="item in ydlist2"
  516. :key="item.value"
  517. :label="item.name"
  518. :value="item.value"
  519. >
  520. </el-option>
  521. </el-select>
  522. </el-form-item>
  523. <el-form-item label="类型" :label-width="formLabelWidth7">
  524. <el-select v-model="ydval3" placeholder="请选择">
  525. <el-option
  526. v-for="item in ydlist3"
  527. :key="item.value"
  528. :label="item.name"
  529. :value="item.value"
  530. >
  531. </el-option>
  532. </el-select>
  533. </el-form-item>
  534. <div v-if="ydval2=='0'&&ydval3=='0'||ydval2=='1'&&ydval3=='0'">
  535. <el-form-item label="无量刚速率" :label-width="formLabelWidth7">
  536. <el-input v-model="form.name" autocomplete="off"></el-input>
  537. </el-form-item>
  538. <el-form-item label="无量刚速率" :label-width="formLabelWidth7">
  539. <el-input v-model="form.name" autocomplete="off"></el-input>
  540. </el-form-item>
  541. </div>
  542. <div v-if="ydval2=='1'&&ydval3=='0'||ydval2=='1'&&ydval3=='1'">
  543. <el-form-item label="相位/度" :label-width="formLabelWidth7">
  544. <el-input v-model="form.name" autocomplete="off"></el-input>
  545. </el-form-item>
  546. <el-form-item label="幅值/度" :label-width="formLabelWidth7">
  547. <el-input v-model="form.name" autocomplete="off"></el-input>
  548. </el-form-item>
  549. </div>
  550. <div v-if="ydval2=='1'&&ydval3=='0'||ydval2=='1'&&ydval3=='1'">
  551. <el-form-item label="旋转中心坐标X" :label-width="formLabelWidth7">
  552. <el-input v-model="form.name" autocomplete="off"></el-input>
  553. </el-form-item>
  554. <el-form-item label="旋转中心坐标Y" :label-width="formLabelWidth7">
  555. <el-input v-model="form.name" autocomplete="off"></el-input>
  556. </el-form-item>
  557. <el-form-item label="旋转中心坐标Z" :label-width="formLabelWidth7">
  558. <el-input v-model="form.name" autocomplete="off"></el-input>
  559. </el-form-item>
  560. </div>
  561. <el-form-item label="旋转轴单位矢量X分量" :label-width="formLabelWidth7">
  562. <el-input v-model="form.name" autocomplete="off"></el-input>
  563. </el-form-item>
  564. <el-form-item label="旋转轴单位矢量Y分量" :label-width="formLabelWidth7">
  565. <el-input v-model="form.name" autocomplete="off"></el-input>
  566. </el-form-item>
  567. <el-form-item label="旋转轴单位矢量Z分量" :label-width="formLabelWidth7">
  568. <el-input v-model="form.name" autocomplete="off"></el-input>
  569. </el-form-item>
  570. <el-form-item label="无量纲旋转起始时间" :label-width="formLabelWidth7">
  571. <el-input v-model="form.name" autocomplete="off"></el-input>
  572. </el-form-item>
  573. <el-form-item label="无量纲旋转持续时间" :label-width="formLabelWidth7">
  574. <el-input v-model="form.name" autocomplete="off"></el-input>
  575. </el-form-item>
  576. <div class="line">
  577. <div class="linetext">t=0时刻力矩中心</div>
  578. </div>
  579. <el-form-item label="X-coordinate" :label-width="formLabelWidth7">
  580. <el-input v-model="form.name" autocomplete="off"></el-input>
  581. </el-form-item>
  582. <el-form-item label="Y-coordinate" :label-width="formLabelWidth7">
  583. <el-input v-model="form.name" autocomplete="off"></el-input>
  584. </el-form-item>
  585. <el-form-item label="Z-coordinate" :label-width="formLabelWidth7">
  586. <el-input v-model="form.name" autocomplete="off"></el-input>
  587. </el-form-item>
  588. <el-form-item label="力矩中心状态" :label-width="formLabelWidth7">
  589. <el-select v-model="ydval4" placeholder="请选择">
  590. <el-option
  591. v-for="item in ydlist4"
  592. :key="item.value"
  593. :label="item.name"
  594. :value="item.value"
  595. >
  596. </el-option>
  597. </el-select>
  598. </el-form-item>
  599. <div class="line">
  600. <div class="linetext">力/力矩无量纲化</div>
  601. </div>
  602. <el-form-item label="无量纲参考面积" :label-width="formLabelWidth7">
  603. <el-input v-model="form.name" autocomplete="off"></el-input>
  604. </el-form-item>
  605. <el-form-item label="无量纲参考弦长" :label-width="formLabelWidth7">
  606. <el-input v-model="form.name" autocomplete="off"></el-input>
  607. </el-form-item>
  608. <el-form-item label="无量纲参考展长" :label-width="formLabelWidth7">
  609. <el-input v-model="form.name" autocomplete="off"></el-input>
  610. </el-form-item>
  611. <div class="line">
  612. <div class="linetext">有量纲物理量</div>
  613. </div>
  614. <div class="liangf">
  615. <div class="classfelx text_color" style="line-height: 2;">
  616. 输出运动体有量纲物理量
  617. </div>
  618. <div class="classfelx">
  619. <el-radio
  620. v-model="parameterObj.nmlParam.dynamic_Mesh"
  621. label="on"
  622. >on</el-radio
  623. >
  624. <el-radio
  625. v-model="parameterObj.nmlParam.dynamic_Mesh"
  626. label="off"
  627. >off</el-radio
  628. >
  629. </div>
  630. </div>
  631. <el-checkbox v-model="checked">预览网格运动</el-checkbox>
  632. </div>
  633. </el-form>
  634. <div slot="footer" class="dialog-footer">
  635. <el-button
  636. type="info"
  637. @click="dialog.dynamic_visiable = false"
  638. >{{ $t("HCFD.file.cancel")}} </el-button
  639. >
  640. <el-button type="primary" @click="hcfdparam(); dialog.dynamic_visiable = false"
  641. >{{ $t("HCFD.file.ok")}}</el-button
  642. >
  643. </div>
  644. </el-dialog>
  645. <!--非惯性参考条件 -->
  646. <el-dialog
  647. class="lg-y-z"
  648. :visible.sync="dialog.nonitertial_visiable"
  649. :close-on-click-modal="false"
  650. @close='activecleer()'
  651. v-if="active=='three1-1'"
  652. :modal='false'
  653. custom-class='dialoglocation dialog_color'
  654. width="385px"
  655. :style="styX"
  656. >
  657. <div slot="title" class=dialog_header>
  658. <el-image class="imge" :src="w6" fit="cover" />
  659. <span class="text-color">{{$t('HCFD.physics.nonitertial')}}</span>
  660. </div>
  661. <el-form>
  662. <div class="radio_text text_color liangf">
  663. <div class="classfelx">
  664. <el-radio
  665. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  666. label="on"
  667. >on</el-radio>
  668. </div>
  669. <div class="classfelx">
  670. <el-radio
  671. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  672. label="off"
  673. >off</el-radio
  674. >
  675. </div>
  676. </div>
  677. <div v-if="parameterObj.nmlParam.noninertial_Reference_Frame=='on'">
  678. <div class="line">
  679. <div class="linetext">旋转中心</div>
  680. </div>
  681. <el-form-item label="坐标X" :label-width="formLabelWidth2">
  682. <el-input v-model="form.name" autocomplete="off"></el-input>
  683. </el-form-item>
  684. <el-form-item label="坐标Y" :label-width="formLabelWidth2">
  685. <el-input v-model="form.name" autocomplete="off"></el-input>
  686. </el-form-item>
  687. <el-form-item label="坐标Z" :label-width="formLabelWidth2">
  688. <el-input v-model="form.name" autocomplete="off"></el-input>
  689. </el-form-item>
  690. <div class="line">
  691. <div class="linetext">旋转矢量</div>
  692. </div>
  693. <el-form-item label="X方向分量" :label-width="formLabelWidth2">
  694. <el-input v-model="form.name" autocomplete="off"></el-input>
  695. </el-form-item>
  696. <el-form-item label="Y方向分量" :label-width="formLabelWidth2">
  697. <el-input v-model="form.name" autocomplete="off"></el-input>
  698. </el-form-item>
  699. <el-form-item label="Z方向分量" :label-width="formLabelWidth2">
  700. <el-input v-model="form.name" autocomplete="off"></el-input>
  701. </el-form-item>
  702. </div>
  703. </el-form>
  704. <div slot="footer" class="dialog-footer">
  705. <el-button
  706. type="info"
  707. @click="dialog.nonitertial_visiable = false"
  708. >{{ $t("HCFD.file.cancel")}} </el-button
  709. >
  710. <el-button type="primary" @click="hcfdparam(); dialog.nonitertial_visiable = false"
  711. >{{ $t("HCFD.file.ok")}}</el-button
  712. >
  713. </div>
  714. </el-dialog>
  715. <!-- 通量残差构造方法 -->
  716. <el-dialog
  717. class="lg-Solution"
  718. :visible.sync="dialog.fluxrc_visiable"
  719. :close-on-click-modal="false"
  720. @close='activecleer()'
  721. v-if="active=='four-0'"
  722. :modal='false'
  723. custom-class='dialoglocation dialog_color'
  724. width="385px"
  725. :style="styX"
  726. >
  727. <div slot="title" class=dialog_header>
  728. <el-image class="imge" :src="q1" fit="cover" />
  729. <span class="text-color">{{$t('HCFD.solution.invis')}}</span>
  730. </div>
  731. <el-form class="groupradio selecr">
  732. <div class="line">
  733. <div class="linetext">属性</div>
  734. </div>
  735. <el-form-item label="通量残差构造方法" :label-width="formLabelWidth7">
  736. <el-select v-model="parameterObj.nmlParam.flux_construction" placeholder="请选择">
  737. <el-option
  738. v-for="item in qjklist"
  739. :key="item.value"
  740. :label="item.name"
  741. :value="item.value"
  742. >
  743. </el-option>
  744. </el-select>
  745. </el-form-item>
  746. <el-form-item label="通量雅可比构造方法" :label-width="formLabelWidth7">
  747. <el-select v-model="parameterObj.nmlParam.flux_construction_lhs" placeholder="请选择">
  748. <el-option
  749. v-for="item in qjklist3"
  750. :key="item.value"
  751. :label="item.name"
  752. :value="item.value"
  753. >
  754. </el-option>
  755. </el-select>
  756. </el-form-item>
  757. <el-form-item label="MUSCL重构格式" :label-width="formLabelWidth7">
  758. <el-input v-model="form.name" autocomplete="off"></el-input>
  759. </el-form-item>
  760. <el-form-item label="通量限制" :label-width="formLabelWidth7">
  761. <el-select v-model="parameterObj.nmlParam.flux_limiter" placeholder="请选择">
  762. <el-option
  763. v-for="item in qjklist2"
  764. :key="item.value"
  765. :label="item.name"
  766. :value="item.value"
  767. >
  768. </el-option>
  769. </el-select>
  770. </el-form-item>
  771. <el-form-item :label="$t('HCFD.solution.firstOrderNum') " :label-width="formLabelWidth7">
  772. <el-input v-model="parameterObj.nmlParam.first_order_iterations" autocomplete="off"></el-input>
  773. </el-form-item>
  774. </el-form>
  775. <div slot="footer" class="dialog-footer">
  776. <el-button type="info" @click="referencevisiable((dialog.fluxrc_visiable = false))"
  777. > {{ $t("HCFD.file.cancel")}} </el-button
  778. >
  779. <el-button type="primary" @click="hcfdparam(); dialog.fluxrc_visiable = false"
  780. >{{ $t("HCFD.file.ok")}}</el-button
  781. >
  782. </div>
  783. </el-dialog>
  784. <!-- 时间格式 -->
  785. <el-dialog
  786. :visible.sync="dialog.time_visiable"
  787. class="lg-Solution"
  788. :close-on-click-modal="false"
  789. @close='activecleer()'
  790. v-if="active=='four-1'"
  791. :modal='false'
  792. custom-class='dialoglocation dialog_color'
  793. width="385px"
  794. :style="styX"
  795. >
  796. <div slot="title" class=dialog_header>
  797. <el-image class="imge" :src="q2" fit="cover" />
  798. <span class="text-color">{{$t('HCFD.solution.timeScheme')}}</span>
  799. </div>
  800. <el-form class="lg-form">
  801. <div class="line">
  802. <div class="linetext">属性</div>
  803. </div>
  804. <el-form-item label="时间格式" :label-width="formLabelWidth7" style=" text-align: left;">
  805. <el-select v-model="parameterObj.nmlParam.time_accuracy" placeholder="请选择">
  806. <el-option
  807. v-for="item in tlist1"
  808. :key="item.value"
  809. :label="item.name"
  810. :value="item.value"
  811. >
  812. </el-option>
  813. </el-select>
  814. </el-form-item>
  815. <li class="lheig34 disflex liitem liangf" style="padding:5px 0">
  816. <span class="formLabelWidth8">{{$t('HCFD.solution.stepping')}}</span>
  817. <el-radio-group class="inpw35" style="display:flex" v-model="parameterObj.nmlParam.pseudo_time_stepping">
  818. <el-radio :label="'on'">On</el-radio>
  819. <el-radio :label="'off'">Off</el-radio>
  820. </el-radio-group>
  821. </li>
  822. <li class="disflex liitem liangf">
  823. <span class="formLabelWidth8">{{$t('HCFD.solution.nondim')}}</span>
  824. <el-input v-model="parameterObj.nmlParam.time_step_nondim"></el-input>
  825. </li>
  826. <li class="disflex liitem liangf">
  827. <span class="formLabelWidth8">{{$t('HCFD.solution.subiterations')}}</span>
  828. <el-input v-model="parameterObj.nmlParam.subiterations"></el-input>
  829. </li>
  830. <li class="disflex liitem liangf">
  831. <span class="formLabelWidth8">{{$t('HCFD.solution.cfl')}}</span>
  832. <el-input
  833. v-model="parameterObj.nmlParam.schedule_iteration[0]"
  834. ></el-input>
  835. <el-input
  836. v-model="parameterObj.nmlParam.schedule_iteration[1]"
  837. ></el-input>
  838. </li>
  839. <li class="disflex liitem liangf">
  840. <span class="formLabelWidth8">{{$t('HCFD.solution.Schedulecfl')}}</span>
  841. <el-input v-model="parameterObj.nmlParam.schedule_cfl[0]"></el-input>
  842. <el-input v-model="parameterObj.nmlParam.schedule_cfl[1]"></el-input>
  843. </li>
  844. <li class="disflex liitem liangf">
  845. <span class="formLabelWidth8">{{$t('HCFD.solution.cflturb')}}</span>
  846. <el-input
  847. v-model="parameterObj.nmlParam.schedule_cflturb[0]"
  848. ></el-input>
  849. <el-input
  850. v-model="parameterObj.nmlParam.schedule_cflturb[1]"
  851. ></el-input>
  852. </li>
  853. </el-form>
  854. <div slot="footer" class="dialog-footer">
  855. <el-button type="info" @click="referencevisiable((dialog.time_visiable = false))"
  856. >{{ $t("HCFD.file.cancel")}} </el-button
  857. >
  858. <el-button type="primary" @click="hcfdparam(); dialog.time_visiable = false"
  859. >{{ $t("HCFD.file.ok")}}</el-button
  860. >
  861. </div>
  862. </el-dialog>
  863. <!-- 边界条件 -->
  864. <el-dialog
  865. class="dialog-block"
  866. :visible.sync="dialog.border_visiable"
  867. :close-on-click-modal="false"
  868. @close='activecleer()'
  869. v-if="active=='three2-1'"
  870. :modal='false'
  871. custom-class='dialoglocation dialog_color'
  872. width="384px"
  873. :style="styX"
  874. >
  875. <div slot="title" class=dialog_header>
  876. <el-image class="imge" :src="w2" fit="cover" />
  877. <span class="text-color">{{$t('HCFD.physics.boundary')}}</span>
  878. </div>
  879. <el-form >
  880. <div class="selecr">
  881. <el-form-item >
  882. <el-input type="textarea" v-model="form.desc"></el-input>
  883. </el-form-item>
  884. <el-form-item label=" 边界类型" :label-width="formLabelWidth">
  885. <el-select
  886. size="mini"
  887. @change="boundaryChange"
  888. v-model="Physics.Boundary.bquery"
  889. placeholder="select boundary"
  890. >
  891. <el-option
  892. v-for="hcfdBoundary in parameterObj.hcfdBoundarys"
  893. :key="hcfdBoundary.id"
  894. :label="hcfdBoundary.name"
  895. :value="hcfdBoundary.id"
  896. >
  897. </el-option>
  898. </el-select>
  899. </el-form-item>
  900. <el-form-item label=" 外流类型" :label-width="formLabelWidth">
  901. <el-select
  902. size="mini"
  903. @change="conditionsChange"
  904. v-model="Physics.Boundary.cquery"
  905. placeholder="select Conditions"
  906. >
  907. <el-option
  908. v-for="Condition in Physics.Boundary.Conditions"
  909. :key="Condition.conditionsCode"
  910. :label="Condition.name"
  911. :value="Condition.conditionsCode"
  912. >
  913. </el-option>
  914. </el-select>
  915. </el-form-item>
  916. <div v-if="Physics.Boundary.bquery=='WING1'">
  917. <el-form-item label=" 总压比" :label-width="formLabelWidth">
  918. <el-input v-model="form.name" autocomplete="off"></el-input>
  919. </el-form-item>
  920. <el-form-item label=" 总温比" :label-width="formLabelWidth">
  921. <el-input v-model="form.name" autocomplete="off"></el-input>
  922. </el-form-item>
  923. <el-form-item label="法向" :label-width="formLabelWidth">
  924. <el-input v-model="form.name" autocomplete="off"></el-input>
  925. </el-form-item>
  926. <el-form-item label="入流角(Alpha)" :label-width="formLabelWidth">
  927. <el-input v-model="form.name" autocomplete="off"></el-input>
  928. </el-form-item>
  929. <el-form-item label="入流角(Beta)" :label-width="formLabelWidth">
  930. <el-input v-model="form.name" autocomplete="off"></el-input>
  931. </el-form-item>
  932. <el-form-item label=" 欧拉角(Theta1)" :label-width="formLabelWidth">
  933. <el-input v-model="form.name" autocomplete="off"></el-input>
  934. </el-form-item>
  935. <el-form-item label=" 欧拉角(Theta2)" :label-width="formLabelWidth">
  936. <el-input v-model="form.name" autocomplete="off"></el-input>
  937. </el-form-item>
  938. <el-form-item label="欧拉角(Theta3)" :label-width="formLabelWidth">
  939. <el-input v-model="form.name" autocomplete="off"></el-input>
  940. </el-form-item>
  941. </div>
  942. </div>
  943. </el-form>
  944. <div slot="footer" class="dialog-footer">
  945. <el-button
  946. type="info"
  947. @click="dialog.border_visiable = false"
  948. >{{ $t("HCFD.file.cancel")}} </el-button
  949. >
  950. <el-button type="primary" @click="hcfdparam(); dialog.border_visiable = false"
  951. >{{ $t("HCFD.file.ok")}} </el-button
  952. >
  953. </div>
  954. </el-dialog>
  955. <!-- 参考条件 -->
  956. <el-dialog
  957. class="dialog-block"
  958. :visible.sync="dialog.reference_visiable"
  959. :close-on-click-modal="false"
  960. @close='activecleer()'
  961. v-if="active=='three1-0'"
  962. :modal='false'
  963. custom-class='dialoglocation dialog_color heightclass'
  964. width="385px"
  965. height="400px"
  966. :style="styX"
  967. >
  968. <div slot="title" class=dialog_header>
  969. <el-image class="imge" :src="w5" fit="cover" />
  970. <span class="text-color">{{$t('HCFD.physics.reference')}}</span>
  971. </div>
  972. <el-form class="groupradio">
  973. <div class="line">
  974. <div class="linetext">属性</div>
  975. </div>
  976. <li class="disflex liitem liangf">
  977. <span class="formLabelWidth8">{{ $t("HCFD.physics.machNum") }}</span>
  978. <el-input
  979. class="inpw50"
  980. size="mini"
  981. v-model="parameterObj.nmlParam.mach_number"
  982. ></el-input>
  983. </li>
  984. <li class=" liitem liangf">
  985. <span class="formLabelWidth8">{{ $t("HCFD.physics.reyNum") }}</span>
  986. <el-input
  987. class="inpw50"
  988. size="mini"
  989. v-model="parameterObj.nmlParam.reynolds_number"
  990. ></el-input>
  991. </li>
  992. <li class=" liitem liangf">
  993. <span class="formLabelWidth8">{{ $t("HCFD.physics.temperature") }}</span>
  994. </li>
  995. <li class=" liitem liangf">
  996. <el-radio-group v-model="parameterObj.nmlParam.temperature_units" style=" width: 100%;">
  997. <el-radio :label="'Kelvin'">{{ $t("HCFD.physics.kelvin") }}</el-radio>
  998. <el-radio :label="'Rankine'">{{ $t("HCFD.physics.rankine") }}</el-radio>
  999. </el-radio-group>
  1000. <el-input v-model="parameterObj.nmlParam.temperature"></el-input>
  1001. </li>
  1002. <li class=" liitem liangf">
  1003. <span class="formLabelWidth8">{{ $t("HCFD.physics.attack") }}</span>
  1004. <el-input v-model="parameterObj.nmlParam.angle_of_attack"></el-input>
  1005. </li>
  1006. <li class=" liitem liangf">
  1007. <span class="formLabelWidth8">{{ $t("HCFD.physics.yaw") }} </span>
  1008. <el-input v-model="parameterObj.nmlParam.angle_of_yaw"></el-input>
  1009. </li>
  1010. <li class=" liitem liangf">
  1011. <span class="formLabelWidth8">{{ $t("HCFD.physics.area") }}</span>
  1012. <el-input v-model="parameterObj.nmlParam.area_reference"></el-input>
  1013. </li>
  1014. <li class=" liitem liangf">
  1015. <span class="formLabelWidth8">{{ $t("HCFD.physics.yaxis") }}</span>
  1016. <el-input v-model="parameterObj.nmlParam.x_moment_length"></el-input>
  1017. </li>
  1018. <li class=" liitem liangf">
  1019. <span class="formLabelWidth8">{{ $t("HCFD.physics.zaxis") }}</span>
  1020. <el-input v-model="parameterObj.nmlParam.y_moment_length"></el-input>
  1021. </li>
  1022. <li class=" liitem liangf">
  1023. <span class="formLabelWidth8">{{ $t("HCFD.physics.momentc") }}</span>
  1024. <el-input v-model="parameterObj.nmlParam.x_moment_center"></el-input>
  1025. </li>
  1026. <li class=" liitem liangf">
  1027. <span class="formLabelWidth8">{{ $t("HCFD.physics.xcoordinate") }}</span>
  1028. <el-input v-model="parameterObj.nmlParam.x_moment_center"></el-input>
  1029. </li>
  1030. <li class=" liitem liangf">
  1031. <span class="formLabelWidth8">{{ $t("HCFD.physics.ycoordinate") }}</span>
  1032. <el-input v-model="parameterObj.nmlParam.y_moment_center"></el-input>
  1033. </li>
  1034. <li class=" liitem liangf">
  1035. <span class="formLabelWidth8">{{ $t("HCFD.physics.zcoordinate") }}</span>
  1036. <el-input v-model="parameterObj.nmlParam.z_moment_center"></el-input>
  1037. </li>
  1038. </el-form>
  1039. <div slot="footer" class="dialog-footer">
  1040. <el-button
  1041. type="info"
  1042. @click="dialog.reference_visiable = false"
  1043. >{{ $t("HCFD.file.cancel")}} </el-button
  1044. >
  1045. <el-button type="primary" @click="hcfdparam(); dialog.reference_visiable = false"
  1046. >{{ $t("HCFD.file.ok")}}</el-button
  1047. >
  1048. </div>
  1049. </el-dialog>
  1050. <!-- 线性方程组求解参数 -->
  1051. <el-dialog
  1052. class="lg-Solution"
  1053. :visible.sync="dialog.xian_visiable"
  1054. :close-on-click-modal="false"
  1055. @close='activecleer()'
  1056. v-if="active=='four2-0'"
  1057. :modal='false'
  1058. custom-class='dialoglocation dialog_color'
  1059. width="385px"
  1060. :style="styX"
  1061. >
  1062. <div slot="title" class=dialog_header>
  1063. <el-image class="imge" :src="q3" fit="cover" />
  1064. <span class="text-color">{{$t('HCFD.solution.linearSol')}}</span>
  1065. </div>
  1066. <el-form >
  1067. <li class="disflex liitem liangf ">
  1068. <span class="formLabelWidth8">
  1069. {{ $t("HCFD.solution.meanflow") }}
  1070. </span>
  1071. <el-input
  1072. class="inpw75"
  1073. size="mini"
  1074. v-model="parameterObj.nmlParam.meanflow_sweeps"
  1075. ></el-input>
  1076. </li>
  1077. <li class="disflex liitem liangf ">
  1078. <span class="formLabelWidth8">
  1079. {{ $t("HCFD.solution.turbulence") }}
  1080. </span>
  1081. <el-input
  1082. class="inpw75"
  1083. size="mini"
  1084. v-model="parameterObj.nmlParam.turbulence_sweeps"
  1085. ></el-input>
  1086. </li>
  1087. <el-form-item :label="$t('HCFD.solution.gcr')" :label-width="formLabelWidth6">
  1088. <el-radio-group v-model="parameterObj.nmlParam.line_implicit">
  1089. <el-radio label="off">Off</el-radio>
  1090. <el-radio label="on">On</el-radio>
  1091. </el-radio-group>
  1092. </el-form-item>
  1093. </el-form>
  1094. <div slot="footer" class="dialog-footer">
  1095. <el-button type="info" @click="referencevisiable((dialog.xian_visiable = false))"
  1096. >{{ $t("HCFD.file.cancel")}} </el-button
  1097. >
  1098. <el-button type="primary" @click="hcfdparam(); dialog.xian_visiable = false"
  1099. >{{ $t("HCFD.file.ok")}} </el-button
  1100. >
  1101. </div>
  1102. </el-dialog>
  1103. <!-- 初始化 -->
  1104. <el-dialog
  1105. class="lg-y-z"
  1106. :visible.sync="dialog.initialization_visiable "
  1107. :close-on-click-modal="false"
  1108. @close='activecleer()'
  1109. v-if="active=='four2-1'"
  1110. :modal='false'
  1111. custom-class='dialoglocation dialog_color'
  1112. width="385px"
  1113. :style="styX"
  1114. >
  1115. <div slot="title" class=dialog_header>
  1116. <el-image class="imge" :src="q4" fit="cover" />
  1117. <span class="text-color">{{$t('HCFD.solution.initialization')}}</span>
  1118. </div>
  1119. <el-form>
  1120. <div class="radio_text text_color" >
  1121. <el-radio-group v-model="initialization" size="mini">
  1122. <el-radio label="freestreams">{{
  1123. $t("HCFD.solution.freestreams")
  1124. }}</el-radio>
  1125. <el-radio label="specified">{{
  1126. $t("HCFD.solution.specified")
  1127. }}</el-radio>
  1128. </el-radio-group>
  1129. </div>
  1130. <div v-if="initialization=='specified'">
  1131. <div class="line">
  1132. <div class="linetext">属性</div>
  1133. </div>
  1134. <el-form-item label="区域数量" :label-width="formLabelWidth2">
  1135. <el-input v-model="form.name" autocomplete="off"></el-input>
  1136. </el-form-item>
  1137. <div class="selecr">
  1138. <el-form-item label=" 区域类型" :label-width="formLabelWidth2">
  1139. <el-select @change="changest" v-model="loadval" placeholder="请选择">
  1140. <el-option
  1141. v-for="item in loadlist"
  1142. :key="item.value"
  1143. :label="item.name"
  1144. :value="item.value"
  1145. >
  1146. </el-option>
  1147. </el-select>
  1148. </el-form-item>
  1149. <div v-if="loadval=='0'">
  1150. <el-form-item label="顶点1" :label-width="formLabelWidth2">
  1151. <el-input v-model="form.name" autocomplete="off"></el-input>
  1152. </el-form-item>
  1153. <el-form-item label="顶点2" :label-width="formLabelWidth2">
  1154. <el-input v-model="form.name" autocomplete="off"></el-input>
  1155. </el-form-item>
  1156. </div>
  1157. <div v-if="loadval=='1'">
  1158. <el-form-item label="球心" :label-width="formLabelWidth2">
  1159. <el-input v-model="form.name" autocomplete="off"></el-input>
  1160. </el-form-item>
  1161. <el-form-item label="半径" :label-width="formLabelWidth2">
  1162. <el-input v-model="form.name" autocomplete="off"></el-input>
  1163. </el-form-item>
  1164. </div>
  1165. <div v-if="loadval=='2'">
  1166. <el-form-item label="球心" :label-width="formLabelWidth2">
  1167. <el-input v-model="form.name" autocomplete="off"></el-input>
  1168. </el-form-item>
  1169. <el-form-item label="端点1" :label-width="formLabelWidth2">
  1170. <el-input v-model="form.name" autocomplete="off"></el-input>
  1171. </el-form-item>
  1172. <el-form-item label="端点2" :label-width="formLabelWidth2">
  1173. <el-input v-model="form.name" autocomplete="off"></el-input>
  1174. </el-form-item>
  1175. </div>
  1176. <div v-if="loadval=='2'">
  1177. <el-form-item label="端点1" :label-width="formLabelWidth2">
  1178. <el-input v-model="form.name" autocomplete="off"></el-input>
  1179. </el-form-item>
  1180. <el-form-item label="半径1" :label-width="formLabelWidth2">
  1181. <el-input v-model="form.name" autocomplete="off"></el-input>
  1182. </el-form-item>
  1183. <el-form-item label="端点2" :label-width="formLabelWidth2">
  1184. <el-input v-model="form.name" autocomplete="off"></el-input>
  1185. </el-form-item>
  1186. <el-form-item label="半径2" :label-width="formLabelWidth2">
  1187. <el-input v-model="form.name" autocomplete="off"></el-input>
  1188. </el-form-item>
  1189. </div>
  1190. </div>
  1191. <div class="line">
  1192. <div class="linetext">区域变量</div>
  1193. </div>
  1194. <el-form-item label="无量纲密度" :label-width="formLabelWidth7">
  1195. <el-input v-model="form.name" autocomplete="off"></el-input>
  1196. </el-form-item>
  1197. <el-form-item label="无量纲声速" :label-width="formLabelWidth7">
  1198. <el-input v-model="form.name" autocomplete="off"></el-input>
  1199. </el-form-item>
  1200. <el-form-item label="X方向无量纲速度分量" :label-width="formLabelWidth7">
  1201. <el-input v-model="form.name" autocomplete="off"></el-input>
  1202. </el-form-item>
  1203. <el-form-item label="Y方向无量纲速度分量" :label-width="formLabelWidth7">
  1204. <el-input v-model="form.name" autocomplete="off"></el-input>
  1205. </el-form-item>
  1206. <el-form-item label="Z方向无量纲速度分量" :label-width="formLabelWidth7">
  1207. <el-input v-model="form.name" autocomplete="off"></el-input>
  1208. </el-form-item>
  1209. </div>
  1210. </el-form>
  1211. <div slot="footer" class="dialog-footer">
  1212. <el-button
  1213. type="info"
  1214. @click="dialog.initialization_visiable = false"
  1215. >{{ $t("HCFD.file.cancel")}} </el-button
  1216. >
  1217. <el-button type="primary" @click="hcfdparam(); dialog.initialization_visiable = false"
  1218. >{{ $t("HCFD.file.ok")}}</el-button
  1219. >
  1220. </div>
  1221. </el-dialog>
  1222. <!-- 运行控制Run Control -->
  1223. <el-dialog
  1224. :visible.sync="dialog.runc_visiable"
  1225. :close-on-click-modal="false"
  1226. @close='activecleer()'
  1227. v-if="active=='four3-0'"
  1228. :modal='false'
  1229. custom-class='dialoglocation dialog_color'
  1230. width="385px"
  1231. :style="styX"
  1232. >
  1233. <div slot="title" class=dialog_header>
  1234. <el-image class="imge" :src="q5" fit="cover" />
  1235. <span class="text-color">{{$t('HCFD.solution.run')}}</span>
  1236. </div>
  1237. <el-form class="lg-form text_color">
  1238. <el-form-item :label="$t('HCFD.solution.iterNum')" :label-width="formLabelWidth6">
  1239. <el-input v-model="parameterObj.nmlParam.steps" autocomplete="off"></el-input>
  1240. </el-form-item>
  1241. <el-form-item :label="$t('HCFD.solution.stopToler')" :label-width="formLabelWidth6">
  1242. <el-input v-model="parameterObj.nmlParam.stopping_tolerance" autocomplete="off"></el-input>
  1243. </el-form-item>
  1244. <el-form-item :label="$t('HCFD.solution.writeFreq')" :label-width="formLabelWidth6">
  1245. <el-input v-model="parameterObj.nmlParam.restart_write_freq" autocomplete="off"></el-input>
  1246. </el-form-item>
  1247. <el-form-item :label="$t('HCFD.solution.evaluate')" :label-width="formLabelWidth6">
  1248. <el-input v-model="parameterObj.nmlParam.jacobian_eval_freq" autocomplete="off"></el-input>
  1249. </el-form-item>
  1250. <el-form-item :label="$t('HCFD.solution.Restart')" :label-width="formLabelWidth6">
  1251. <el-radio-group class="inpw35" v-model="parameterObj.nmlParam.restart_read">
  1252. <el-radio label="off">Off</el-radio>
  1253. <el-radio label="on">On</el-radio>
  1254. </el-radio-group>
  1255. </el-form-item>
  1256. <el-button type="info" @click="hcfdparam()"> 运行</el-button>
  1257. </el-form>
  1258. <div slot="footer" class="dialog-footer">
  1259. <el-button type="info" @click="runcvisiable()"> {{ $t("HCFD.file.cancel")}} </el-button>
  1260. <el-button type="primary" @click="Runsolve()"
  1261. >{{ $t("HCFD.file.ok")}}</el-button
  1262. >
  1263. </div>
  1264. </el-dialog>
  1265. <!-- 物面输出 -->
  1266. <el-dialog
  1267. :visible.sync="dialog.boundaryo_visiable"
  1268. :close-on-click-modal="false"
  1269. @close='activecleer()'
  1270. class="Conditions lg-out-h"
  1271. v-if="active=='four3-1'"
  1272. :modal='false'
  1273. custom-class='dialoglocation dialog_color'
  1274. width="385px"
  1275. :style="styX"
  1276. >
  1277. <div slot="title" class=dialog_header>
  1278. <el-image class="imge" :src="q6" fit="cover" />
  1279. <span class="text-color">{{$t('HCFD.solution.bounOut')}}</span>
  1280. </div>
  1281. <el-form>
  1282. <div class="selecr">
  1283. <el-form-item label=" 特征" :label-width="formLabelWidth2">
  1284. <el-select @change="changest" v-model="objectplaneval" placeholder="请选择">
  1285. <el-option
  1286. v-for="item in objectplanelist"
  1287. :key="item.value"
  1288. :label="item.name"
  1289. :value="item.value"
  1290. >
  1291. </el-option>
  1292. </el-select>
  1293. </el-form-item>
  1294. </div>
  1295. <el-form-item :label=" $t('HCFD.solution.outputfreq')" :label-width="formLabelWidth2">
  1296. <el-input v-model="parameterObj.nmlParam.animation_freq" autocomplete="off"></el-input>
  1297. </el-form-item>
  1298. <div class="line">
  1299. <div class="linetext">{{ $t("HCFD.solution.Variables")}}</div>
  1300. </div>
  1301. <div v-if="objectplaneval=='0'">
  1302. <el-checkbox
  1303. :indeterminate="Solution.boundaryout.isIndeterminate"
  1304. v-model="Solution.boundaryout.checkAll"
  1305. @change="solutionbCheckAllChange"
  1306. >{{ $t("HCFD.solution.all")}}</el-checkbox
  1307. >
  1308. <div class="displanblock">
  1309. <el-checkbox
  1310. v-model="parameterObj.nmlParam.a_u">
  1311. {{ $t("HCFD.solution.Xcomponent")}}</el-checkbox>
  1312. <el-checkbox
  1313. v-model="parameterObj.nmlParam.a_v"
  1314. >{{ $t("HCFD.solution.Ycomponent")}}</el-checkbox>
  1315. <el-checkbox
  1316. v-model="parameterObj.nmlParam.a_w"
  1317. >{{ $t("HCFD.solution.Zcomponent")}}</el-checkbox>
  1318. <el-checkbox
  1319. v-model="parameterObj.nmlParam.a_p"
  1320. >{{ $t("HCFD.solution.Press")}}</el-checkbox>
  1321. <el-checkbox
  1322. v-model="parameterObj.nmlParam.a_cp"
  1323. >{{ $t("HCFD.solution.presscoefficient")}}</el-checkbox>
  1324. <el-checkbox
  1325. v-model="parameterObj.nmlParam.a_mach"
  1326. >{{ $t("HCFD.solution.mnumber")}}</el-checkbox>
  1327. <el-checkbox
  1328. v-model="parameterObj.nmlParam.a_vort_mag"
  1329. >{{ $t("HCFD.solution.magnitude")}}</el-checkbox>
  1330. <el-checkbox
  1331. v-model="parameterObj.nmlParam.a_vort_x "
  1332. >{{ $t("HCFD.solution.Xvorticity")}}</el-checkbox>
  1333. <el-checkbox
  1334. v-model="parameterObj.nmlParam.a_vort_y"
  1335. >{{ $t("HCFD.solution.Yvorticity")}}</el-checkbox>
  1336. <el-checkbox
  1337. v-model="parameterObj.nmlParam.a_vort_z "
  1338. >{{ $t("HCFD.solution.Zvorticity")}}</el-checkbox>
  1339. <el-checkbox
  1340. v-model="parameterObj.nmlParam.a_q_criterion"
  1341. >{{ $t("HCFD.solution.Criterion")}}</el-checkbox>
  1342. </div>
  1343. </div>
  1344. <div v-else>
  1345. <el-checkbox
  1346. :indeterminate="Solution.volumout.isIndeterminate"
  1347. v-model="Solution.volumout.checkAll"
  1348. @change="solutionvCheckAllChange"
  1349. >{{ $t("HCFD.solution.all")}}</el-checkbox
  1350. >
  1351. <div class="displanblock">
  1352. <el-checkbox
  1353. v-model="parameterObj.nmlParam.v_u">{{ $t("HCFD.solution.Xcomponent")}}</el-checkbox>
  1354. <el-checkbox
  1355. v-model="parameterObj.nmlParam.v_v "
  1356. >{{ $t("HCFD.solution.Ycomponent")}}</el-checkbox>
  1357. <el-checkbox
  1358. v-model="parameterObj.nmlParam.v_w"
  1359. >{{ $t("HCFD.solution.Zcomponent")}}</el-checkbox>
  1360. <el-checkbox
  1361. v-model="parameterObj.nmlParam.v_p "
  1362. >{{ $t("HCFD.solution.Press")}}</el-checkbox>
  1363. <el-checkbox
  1364. v-model="parameterObj.nmlParam.v_cp"
  1365. >{{ $t("HCFD.solution.presscoefficient")}}</el-checkbox>
  1366. <el-checkbox
  1367. v-model="parameterObj.nmlParam.v_mach"
  1368. >{{ $t("HCFD.solution.mnumber")}}</el-checkbox>
  1369. <el-checkbox
  1370. v-model="parameterObj.nmlParam.v_vort_mag"
  1371. >{{ $t("HCFD.solution.magnitude")}}</el-checkbox>
  1372. <el-checkbox
  1373. v-model="parameterObj.nmlParam.v_vort_x "
  1374. >{{ $t("HCFD.solution.Xvorticity")}}</el-checkbox>
  1375. <el-checkbox
  1376. v-model="parameterObj.nmlParam.v_vort_y"
  1377. >{{ $t("HCFD.solution.Yvorticity")}}</el-checkbox>
  1378. <el-checkbox
  1379. v-model="parameterObj.nmlParam.v_vort_z "
  1380. >{{ $t("HCFD.solution.Zvorticity")}}</el-checkbox>
  1381. <el-checkbox
  1382. v-model="parameterObj.nmlParam.v_q_criterion"
  1383. >{{ $t("HCFD.solution.Criterion")}}</el-checkbox>
  1384. </div>
  1385. </div>
  1386. </el-form>
  1387. <div slot="footer" class="dialog-footer">
  1388. <el-button
  1389. type="info"
  1390. @click="referencevisiable(dialog.boundaryo_visiable = false)"
  1391. >{{ $t("HCFD.file.cancel")}} </el-button
  1392. >
  1393. <el-button type="primary" @click="hcfdparam(); dialog.boundaryo_visiable = false"
  1394. >{{ $t("HCFD.file.ok")}}</el-button
  1395. >
  1396. </div>
  1397. </el-dialog>
  1398. <el-dialog
  1399. class="lg-y-z"
  1400. :title="$t('HCFD.solution.specialPara')"
  1401. :visible.sync="dialog.specialp_visiable"
  1402. :close-on-click-modal="false"
  1403. @close='activecleer()'
  1404. v-if="active=='four4-0'"
  1405. :modal='false'
  1406. custom-class='dialoglocation dialog_color'
  1407. width="385px"
  1408. :style="styX"
  1409. >
  1410. <el-form>
  1411. <el-radio-group v-model="parameterObj.nmlParam.large_angle_fix">
  1412. <el-radio label="off">Off</el-radio>
  1413. <el-radio label="on">On</el-radio>
  1414. </el-radio-group>
  1415. </el-form>
  1416. <div slot="footer" class="dialog-footer">
  1417. <el-button
  1418. type="info"
  1419. @click="referencevisiable((dialog.specialp_visiable = false))"
  1420. >{{ $t("HCFD.file.cancel")}} </el-button
  1421. >
  1422. <el-button type="primary" @click="dialog.specialp_visiable = false"
  1423. >{{ $t("HCFD.file.ok")}}</el-button
  1424. >
  1425. </div>
  1426. </el-dialog>
  1427. <el-dialog
  1428. title="Swap Y-Z Axres"
  1429. :visible.sync="dialog.swap_visiable"
  1430. class="lg-y-z"
  1431. :close-on-click-modal="false"
  1432. @close='activecleer()'
  1433. v-if="active=='four4-1'"
  1434. :modal='false'
  1435. custom-class='dialoglocation dialog_color'
  1436. width="385px"
  1437.  :style="styX"
  1438. >
  1439. <el-form>
  1440. <el-radio-group v-model="parameterObj.nmlParam.swap_yz_axes">
  1441. <el-radio label="false">Off</el-radio>
  1442. <el-radio label="true">On</el-radio>
  1443. </el-radio-group>
  1444. </el-form>
  1445. <div slot="footer" class="dialog-footer">
  1446. <el-button type="info" @click="referencevisiable((dialog.swap_visiable = false))"
  1447. > {{ $t("HCFD.file.cancel")}} </el-button
  1448. >
  1449. <el-button type="primary" @click="dialog.swap_visiable = false"
  1450. >{{ $t("HCFD.file.ok")}}</el-button
  1451. >
  1452. </div>
  1453. </el-dialog>
  1454. <!-- 资源选择 -->
  1455. <el-dialog
  1456. :close-on-click-modal="false"
  1457. @close='activecleer()'
  1458. :title="$t('HCFD.solution.Resource')"
  1459. :visible.sync="dialog.ziyuan"
  1460. width="45%"
  1461. class="dialog"
  1462. custom-class='dialog_color'
  1463. >
  1464. <el-form>
  1465. <el-table
  1466. :data="ziyprojects"
  1467. border
  1468. :row-key="getRowKeys"
  1469. height="250"
  1470. row-class-name='table-color'
  1471. ref="multipleTable"
  1472. @selection-change="ziySelectionChange"
  1473. @select="ziySelectionSelect"
  1474. size="mini"
  1475. :fit="true"
  1476. >
  1477. <el-table-column type="selection" label="选择" :reserve-selection="true"/>
  1478. <el-table-column property="id" label="ID" />
  1479. <el-table-column property="resIp" label="资源内网IP" />
  1480. <el-table-column property="resShortname" label="资源简称" />
  1481. </el-table>
  1482. </el-form>
  1483. <div class="pagination">
  1484. <Pagination
  1485. :pagination-config="paginationConfig"
  1486. @putPagination="getPagination"
  1487. ></Pagination>
  1488. </div>
  1489. <div slot="footer" class="dialog-footer">
  1490. <el-button type="info" @click="dialog.ziyuan = false"> {{ $t("HCFD.file.cancel")}} </el-button>
  1491. <el-button type="primary" @click='resourceOK()'>{{ $t("HCFD.file.ok")}} </el-button>
  1492. </div>
  1493. </el-dialog>
  1494. <!-- 求解表面 -->
  1495. <el-dialog
  1496. :visible.sync="dialog.SurfaceGrid_visiable"
  1497. class="lg-y-z"
  1498. :close-on-click-modal="false"
  1499. :modal-append-to-body="false"
  1500. :append-to-body="false"
  1501. @close='activecleer()'
  1502. v-if="active=='five-0'"
  1503. :modal='false'
  1504. custom-class='dialoglocation dialog_color'
  1505. width="385px"
  1506.  :style="styX"
  1507. >
  1508. <div slot="title" class=dialog_header>
  1509. <el-image class="imge" :src="j1" fit="cover" />
  1510. <span class="text-color">{{$t('HCFD.results.Surfacegrid')}}</span>
  1511. </div>
  1512. <div class="flexpad30">
  1513. <div class="selecr">
  1514. <el-form>
  1515. <el-form-item :label="$t('HCFD.results.steps') " :label-width="formLabelWidth2">
  1516. <el-select size="mini" v-model="bStep" @change="bStepChange" placeholder="请选择">
  1517. <el-option
  1518. v-for="setep in boundaryStep"
  1519. :key="setep"
  1520. :label="setep"
  1521. :value="setep"
  1522. >
  1523. </el-option>
  1524. </el-select>
  1525. </el-form-item>
  1526. <el-form-item :label=" $t('HCFD.results.scalar') " :label-width="formLabelWidth2">
  1527. <el-select size="mini" v-model="bScalar" placeholder="请选择">
  1528. <el-option
  1529. v-for="scalar in boundaryScalars"
  1530. :key="scalar"
  1531. :label="scalar"
  1532. :value="scalar"
  1533. >
  1534. </el-option>
  1535. </el-select>
  1536. </el-form-item>
  1537. <div>
  1538. <el-form-item :label=" $t('HCFD.results.contour')" :label-width="formLabelWidth2">
  1539. <el-input-number v-model="Surfacenum" @change="SurfaceChange" :min="1" :max="10" label="描述文字"></el-input-number>
  1540. </el-form-item>
  1541. <li class="disflex lheig34 liitem">
  1542. <span class="span100 marb5 formLabelWidth15">{{ $t("HCFD.results.vector")}} </span>
  1543. <el-checkbox checked>Velocity</el-checkbox>
  1544. </li>
  1545. <li class="disflex lheig34 liitem">
  1546. <span class='span100 marb5 formLabelWidth15' >{{ $t("HCFD.results.show")}} </span>
  1547. <el-checkbox-group v-model="belementCheckeds" style="display:flex">
  1548. <el-checkbox label="Mesh" @change="Contourval('Mesh')"
  1549. ></el-checkbox>
  1550. <el-checkbox label="Contour" @change="Contourval('Contour')"
  1551. ></el-checkbox>
  1552. </el-checkbox-group>
  1553. </li>
  1554. </div>
  1555. <el-button
  1556. size="mini"
  1557. type="primary"
  1558. style="margin:30px 0 30px 40%"
  1559. @click="boundaryShow()"
  1560. > {{ $t("HCFD.results.Surface")}} </el-button>
  1561. >
  1562. </el-form>
  1563. </div>
  1564. </div>
  1565. <div slot="footer" class="dialog-footer">
  1566. <el-button type="info" @click="referencevisiable((dialog.SurfaceGrid_visiable = false))"
  1567. >{{ $t("HCFD.file.cancel")}} </el-button
  1568. >
  1569. <el-button type="primary" @click="dialog.SurfaceGrid_visiable = false"
  1570. >{{ $t("HCFD.file.ok")}}</el-button
  1571. >
  1572. </div>
  1573. </el-dialog>
  1574. <el-dialog
  1575. :visible.sync="dialog.VolumeGrid_visiable"
  1576. class="lg-y-z"
  1577. :close-on-click-modal="false"
  1578. @close='activecleer()'
  1579. v-if="active=='five-1'"
  1580. :modal='false'
  1581. custom-class='dialoglocation dialog_color'
  1582. width="385px"
  1583. >
  1584. <div slot="title" class=dialog_header>
  1585. <el-image class="imge" :src="j2" fit="cover" />
  1586. <span class="text-color">{{$t('HCFD.results.volume')}}</span>
  1587. </div>
  1588. <div class="selecr">
  1589. <el-form>
  1590. <el-form-item :label="$t('HCFD.results.steps') " :label-width="formLabelWidth2">
  1591. <el-select size="mini" v-model="vStep" @change="vStepChange" placeholder="请选择">
  1592. <el-option
  1593. label="请选择"
  1594. :value="0"
  1595. >
  1596. </el-option>
  1597. <el-option
  1598. v-for="setep in volumStep"
  1599. :key="setep"
  1600. :label="setep"
  1601. :value="setep"
  1602. >
  1603. </el-option>
  1604. </el-select>
  1605. </el-form-item>
  1606. <el-form-item :label="$t('HCFD.results.scalar') " :label-width="formLabelWidth2">
  1607. <el-select size="mini" v-model="vSalar" placeholder="请选择">
  1608. <el-option
  1609. v-for="scalar in volumScalars"
  1610. :key="scalar"
  1611. :label="scalar"
  1612. :value="scalar"
  1613. >
  1614. </el-option>
  1615. </el-select>
  1616. </el-form-item>
  1617. <div>
  1618. <li class="disflex lheig34 liitem">
  1619. <span class="span100 marb5 formLabelWidth15">{{ $t("HCFD.results.vector")}} </span>
  1620. <el-checkbox checked>Velocity</el-checkbox>
  1621. </li>
  1622. <el-form-item :label=" $t('HCFD.results.contour')" :label-width="formLabelWidth2">
  1623. <el-input-number v-model="Volumenum" @change="VolumenumChange" :min="1" :max="10" label="描述文字"></el-input-number>
  1624. </el-form-item>
  1625. <li class="disflex lheig34 liitem">
  1626. <span class="span100 marb5 formLabelWidth15">{{ $t("HCFD.results.show")}}</span>
  1627. <el-checkbox-group v-model="velementCheckeds" style="display:flex">
  1628. <el-checkbox
  1629. label="Mesh"
  1630. @change="ContourvalVolume('Mesh')"
  1631. ></el-checkbox>
  1632. <el-checkbox
  1633. label="Contour"
  1634. @change="ContourvalVolume('Contour')"
  1635. ></el-checkbox>
  1636. </el-checkbox-group>
  1637. </li>
  1638. </div>
  1639. <el-button
  1640. type="primary"
  1641. size="mini"
  1642. style="margin:30px 0 30px 40%"
  1643. @click="showVolume()"
  1644. >{{ $t("HCFD.results.ShowVolume")}}</el-button
  1645. >
  1646. </el-form>
  1647. </div>
  1648. <div slot="footer" class="dialog-footer">
  1649. <el-button type="info" @click="referencevisiable((dialog.VolumeGrid_visiable = false))"
  1650. >{{ $t("HCFD.file.cancel")}}</el-button
  1651. >
  1652. <el-button type="primary" @click="dialog.VolumeGrid_visiable = false"
  1653. >{{ $t("HCFD.file.ok")}}</el-button
  1654. >
  1655. </div>
  1656. </el-dialog>
  1657. <!-- 单位计算开始 -->
  1658. <el-dialog :visible.sync="visiable"
  1659. v-if="active=='six-0'"
  1660. :modal='false'
  1661. :close-on-click-modal="false"
  1662. @close='activecleer()'
  1663. custom-class='dialoglocation dialog_color'
  1664. width="385px"
  1665. :style="styX"
  1666. >
  1667. <div slot="title" class=dialog_header>
  1668. <el-image class="imge" :src="d1" fit="cover" />
  1669. <span class="text-color">单位换算</span>
  1670. </div>
  1671. <el-form :model="form1">
  1672. <el-form-item label="kelvin" :label-width="formLabelWidth1">
  1673. <el-input v-model="form1.kelvins" type="number" autocomplete="off"></el-input>
  1674. </el-form-item>
  1675. <el-form-item label="℃" :label-width="formLabelWidth1">
  1676. <el-input v-model="form1.ssd" type="number" autocomplete="off"></el-input>
  1677. </el-form-item>
  1678. <div>
  1679. <el-button @click="dialogbtnkew" style="margin:10px 0 0 65px" size="mini">摄氏度</el-button>
  1680. <el-button @click="dialogbtnssd" size="mini">开尔文</el-button>
  1681. </div>
  1682. </el-form>
  1683. </el-dialog>
  1684. <!-- Y+ Calculator -->
  1685. <el-dialog
  1686. :visible.sync="Yvisiable"
  1687. :close-on-click-modal="false"
  1688. @close='activecleer()'
  1689. v-if="active=='six-1'"
  1690. :modal='false'
  1691. custom-class='dialoglocation dialog_color'
  1692. width="385px"
  1693. :style="styX"
  1694. >
  1695. <div slot="title" class=dialog_header>
  1696. <el-image class="imge" :src="d2" fit="cover" />
  1697. <span class="text-color">Y+值计算</span>
  1698. </div>
  1699. <el-form :model="form" class="gongju">
  1700. <!-- Freestream velocity流速度U∞ -->
  1701. <el-form-item label="自由流速度U∞(m/s):" :label-width="formLabelWidth3">
  1702. <el-input v-model="form.u_freestream" autocomplete="off"></el-input>
  1703. </el-form-item>
  1704. <!--Density 自由氣流密度ρ -->
  1705. <el-form-item label="自由氣流密度ρ(kg/m^3):" :label-width="formLabelWidth3">
  1706. <el-input v-model="form.rho" autocomplete="off"></el-input>
  1707. </el-form-item>
  1708. <!-- Characteristic length 特征长度L-->
  1709. <el-form-item label="特征长度L:(m):" :label-width="formLabelWidth3">
  1710. <el-input
  1711. v-model="form.L"
  1712. type="number"
  1713. autocomplete="off"
  1714. ></el-input>
  1715. </el-form-item>
  1716. <!-- Dynamic viscosity表流运动粘贴系数μ: -->
  1717. <el-form-item label="表流运动粘贴系数μ(Pa·s):" :label-width="formLabelWidth3">
  1718. <el-input v-model="form.mu" autocomplete="off"></el-input>
  1719. </el-form-item>
  1720. <!-- Desired Y+ value: -->
  1721. <el-form-item label="Y+:" :label-width="formLabelWidth3">
  1722. <el-input
  1723. v-model="form.y_plus_desired"
  1724. type="number"
  1725. autocomplete="off"
  1726. ></el-input>
  1727. </el-form-item>
  1728. <!-- Reynolds number -->
  1729. <h3 class="Rex">雷诺数:&nbsp;&nbsp;&nbsp;&nbsp;{{ form.Rex }}</h3>
  1730. <!-- Estimated wall distance: -->
  1731. <h3 class="Rex">估计墙距:&nbsp;&nbsp;&nbsp;&nbsp;{{ form.dtc }}</h3>
  1732. <el-form-item style="margin-left: 0">
  1733. <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
  1734. <el-button type="primary" @click="dialogbtny" style="margin:0 0 0 55px">计算</el-button>
  1735. </el-form-item>
  1736. </el-form>
  1737. </el-dialog>
  1738. <!-- r雷诺数计算 -->
  1739. <el-dialog
  1740. :visible.sync="llsvisiable"
  1741. :close-on-click-modal="false"
  1742. v-if="active=='six-2'"
  1743. :modal='false'
  1744. custom-class='dialoglocation dialog_color'
  1745. width="385px"
  1746. :style="styX"
  1747. >
  1748. <div slot="title" class=dialog_header>
  1749. <el-image class="imge" :src="d3" fit="cover" />
  1750. <span class="text-color">雷诺数计算</span>
  1751. </div>
  1752. <el-form :model="form" class="leiluoshu">
  1753. <el-form-item label="流速v(m/s):" :label-width="formLabelWidth3">
  1754. <el-input v-model="form.lls" autocomplete="off" ></el-input>
  1755. </el-form-item>
  1756. <el-form-item label="密度ρ(kg/m^3)" :label-width="formLabelWidth3">
  1757. <el-input v-model="form.lmi" autocomplete="off"></el-input>
  1758. </el-form-item>
  1759. <el-form-item label="动力黏性系数η(Pa·s)" :label-width="formLabelWidth3">
  1760. <el-input v-model="form.ldlzxxs" autocomplete="off"></el-input>
  1761. </el-form-item>
  1762. <el-form-item label="特征长度(内径)d(m):" :label-width="formLabelWidth3">
  1763. <el-input v-model="form.lld" autocomplete="off"></el-input>
  1764. </el-form-item>
  1765. <el-form-item label="">
  1766. <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
  1767. <h3 class="Rex">雷诺数Re:{{ form.Re }}</h3>
  1768. <el-button type="primary" style="margin:0 0 0 60px" @click="leinsdialogbtny">计算</el-button>
  1769. </el-form-item>
  1770. </el-form>
  1771. </el-dialog>
  1772. <!-- 组件 -->
  1773. <filesload
  1774. ref="filesload"
  1775. :fileurls="fileurls"
  1776. @fileLoadeState="fileLoadeState($event)"
  1777. ></filesload>
  1778. <loading ref="loading" :loadObjs="loadObjs"></loading>
  1779. <!-- <hcfd-Calculator ref="Calculator"></hcfd-Calculator> -->
  1780. </div>
  1781. </template>
  1782. <script>
  1783. // 引入组件
  1784. import geometry from '../geometry/index.vue'
  1785. import meshindex from '../meshindex/index.vue'
  1786. import t1 from '@/assets/icon/u9588.png'
  1787. import t2 from '@/assets/icon/u9616.png'
  1788. import t3 from '@/assets/icon/u9637.png'
  1789. import t4 from '@/assets/icon/u212.png'
  1790. import t5 from '@/assets/icon/u3284.png'
  1791. import w1 from '@/assets/icon/u3250.png'
  1792. import w2 from '@/assets/icon/u9700.png'
  1793. import w3 from '@/assets/icon/u9872.png'
  1794. import w4 from '@/assets/icon/u3877.png'
  1795. import w5 from '@/assets/icon/u9823.png'
  1796. import w6 from '@/assets/icon/u3742.png'
  1797. import d1 from '@/assets/icon/u10148.png'
  1798. import d2 from '@/assets/icon/u10152.png'
  1799. import d3 from '@/assets/icon/u10156.png'
  1800. import d4 from '@/assets/icon/u10160.png'
  1801. import j1 from '@/assets/icon/u10140.png'
  1802. import j2 from '@/assets/icon/u10144.png'
  1803. import q1 from '@/assets/icon/u9681.png'
  1804. import q2 from '@/assets/icon/u10115.png'
  1805. import q3 from '@/assets/icon/u9987.png'
  1806. import q4 from '@/assets/icon/u3868.png'
  1807. import q5 from '@/assets/icon/u10048.png'
  1808. import q6 from '@/assets/icon/u10068.png'
  1809. import adilog from "@/assets/hcfd_images/adilog.png";
  1810. import Pagination from '@/components/Pagination'
  1811. import { Message, MessageBox } from "element-ui";
  1812. import store from "@/store";
  1813. import UgridLoad from "./loads/UgridLoad.vue";
  1814. import VolumLoad from "./loads/VolumLoad.vue";
  1815. import { request, uploadFile } from "@/utils/request";
  1816. import vueUploader from "./fileupload.vue";
  1817. import filesload from "./filesload.vue";
  1818. import { Caegw_ProUrl } from "@/settings"; // 引入settings.js
  1819. import loading from "./loading.vue";
  1820. import transformtool from "./loads/transformtool.vue";
  1821. import echartsHFCD from "./echartsHFCD.vue";
  1822. import TFileStream from "./TFileStream.vue";
  1823. export default {
  1824. components:{geometry,meshindex, vueUploader,
  1825. filesload,
  1826. loading,
  1827. UgridLoad,
  1828. VolumLoad,
  1829. transformtool,
  1830. Pagination,
  1831. // vtkLoad,
  1832. echartsHFCD,
  1833. TFileStream,},
  1834. // websocket,},
  1835. props:{
  1836. objopp:String,
  1837. pid:String,
  1838. femnum:String,
  1839. elodingfalse:{
  1840. type:Boolean,
  1841. default(){
  1842. return false
  1843. }
  1844. }
  1845. },
  1846. data() {
  1847. return {
  1848. checked:false,
  1849. solverConfigid:'',
  1850. mcnames:'apply1',
  1851. formLabelWidth: '60px',
  1852. formLabelWidth2:'73px',
  1853. formLabelWidth4:'37px',
  1854. formLabelWidth5:'100px',
  1855. formLabelWidth6:'120px',
  1856. formLabelWidth7:'170px',
  1857. switchvalue: '1',
  1858. styX:{
  1859. left:''
  1860. },
  1861. t1,
  1862. t2,
  1863. t3,
  1864. t4,
  1865. t5,
  1866. w1,
  1867. w2,
  1868. w3,
  1869. w4,
  1870. w5,
  1871. w6,
  1872. d1,
  1873. d2,
  1874. d3,
  1875. d4,
  1876. j1,
  1877. j2,
  1878. q1,
  1879. q2,
  1880. q3,
  1881. q4,
  1882. q5,
  1883. q6,
  1884. visibles:false,
  1885. restime:'',
  1886. numzhexian:'',
  1887. newlog:'',
  1888. luobj:{
  1889. projectName:'',
  1890. projectId:'',
  1891. projectDesc:'',
  1892. },
  1893. // current:0,
  1894. lsolverState:"2",
  1895. footerShow:true,
  1896. bMesh:0,
  1897. bContour:1,
  1898. vMesh:0,
  1899. vContour:1,
  1900. name:"New",
  1901. xiugai:{},
  1902. Surfacenum: 3,
  1903. Volumenum:3,
  1904. clearobj:{
  1905. projectId:'',
  1906. fileType:'',
  1907. step:Number
  1908. },
  1909. servertype:'ugrid',
  1910. tstep:Number,
  1911. wstep:'0',
  1912. step:'0',
  1913. srsurl:'ugrid',
  1914. footerval:'on',
  1915. top:'50px',
  1916. formLabelWidth1:'70px',
  1917. formLabelWidth3:'180px',
  1918. visiable:false,
  1919. dialogFormVisible: false,
  1920. form1: {
  1921. ssd: '',
  1922. kelvins:'',
  1923. delivery: false,
  1924. type: [],
  1925. resource: '',
  1926. desc: ''
  1927. },
  1928. sum:"",
  1929. formLabelWidth: '120px',
  1930. adilog: adilog,
  1931. activeName: 'one',
  1932. tabPosition: 'bottom',
  1933. showtrue:true,
  1934. drawer: true,
  1935. direction: 'rtl',
  1936. twolist:[
  1937. { icon:t1, titlie:'缩放'},
  1938. {icon:t2, titlie:'平移'},
  1939. {icon:t3, titlie:'旋转'},
  1940. {icon:t4, titlie:'分析类型'},
  1941. {icon:t5, titlie:'并行类型'},
  1942. ],
  1943. physicslist:[
  1944. { icon:w1, titlie:'控制方程'},
  1945. ],
  1946. physicslist2:[
  1947. { icon:w2, titlie:'粘性模型'},
  1948. // {icon:"icon-d-glassware", titlie:'层流'},
  1949. // {icon:"icon-xunhuanbofang", titlie:'湍流'},
  1950. { icon:w3, titlie:'边界条件'},
  1951. {icon:w4, titlie:'运动网格'},
  1952. ],
  1953. physicslist1:[
  1954. { icon:w5, titlie:'参考条件'},
  1955. { icon:w6, titlie:'非惯性参考系'}
  1956. ],
  1957. solutionlist:[
  1958. { icon:q1, titlie:'无粘通量方法'},
  1959. { icon:q2, titlie:'时间推进格式'},
  1960. ],
  1961. solutionlist2:[
  1962. { icon:q3, titlie:'线性方程组求解参数'},
  1963. { icon:q4, titlie:'初始化'},
  1964. ],
  1965. solutionlist3:[
  1966. { icon:q5, titlie:'运行控制'},
  1967. { icon:q6, titlie:'输出控制'},
  1968. ],
  1969. solutionlist4:[
  1970. { icon:"icon-xitongcanshupeizhi", titlie:'Advanced Option_特殊的参数'},
  1971. { icon:"icon-icon", titlie:'Advanced Option_Swap Y-Z Axres'},
  1972. { icon:"icon-yunhang", titlie:'运行'},
  1973. { icon:"icon-quxiantu", titlie:'Monitor'},
  1974. { icon:"icon-tuxingtuxiangchuli", titlie:'资源选择'},
  1975. ],
  1976. resultslist:[
  1977. // { icon:"icon-cankaowenjian", titlie:'下载求解结果'},
  1978. { icon:j1, titlie:'物面数据'},
  1979. { icon:j2, titlie:'流场数据'},
  1980. ],
  1981. unitlist:[
  1982. { icon:d1, titlie:'单位换算'},
  1983. { icon:d2, titlie:'Y+计算器'},
  1984. { icon:d3, titlie:'雷诺数计算'},
  1985. ],
  1986. selectlist1:[
  1987. {value:'inviscid',name:'无粘'},
  1988. {value:'laminar',name:'层流'},
  1989. {value:'turbulent',name:'湍流'},
  1990. ],
  1991. selectlist2:[
  1992. {value:'sa',name:'SA'},
  1993. {value:'k-omega-sst',name:'Menter-SST'},
  1994. {value:'sa-des',name:'SA-DES'},
  1995. {value:'k-omega-des',name:'k-omega-DES'},
  1996. {value:'linear-k-epsilon',name:'Linear-k-epsilon'},
  1997. {value:'abid-k-epsilon',name:'Abid-k-epsilon'},
  1998. {value:'menter-sst-les',name:'Menter-SST-LES'},
  1999. {value:'Wilcox-les',name:'Wilcox-LES'},
  2000. ],
  2001. qjklist:[
  2002. {value:'roe',name:'Roe'},
  2003. {value:'vanleer',name:'vanleer'},
  2004. {value:'hllc',name:'HLLC'},
  2005. {value:'aufs',name:'AUFS'},
  2006. {value:'central_diss',name:'Central_Diss'},
  2007. {value:'dlfss',name:'LDFSS'},
  2008. {value:'stvd',name:'STVD'},
  2009. {value:'stvd_modified',name:'STVD_modified'},
  2010. ],
  2011. qjklist2:[
  2012. {value:'none',name:'none'},
  2013. {value:'barth',name:'barth'},
  2014. {value:'venkat',name:'venkat'},
  2015. {value:'minmod',name:'minmod'},
  2016. {value:'vanleer',name:'vanleer'},
  2017. {value:'vanalbada',name:'vanalbada'},
  2018. {value:'smooth',name:'smooth'},
  2019. {value:'hminmod',name:'hminmod'},
  2020. {value:'hvanleer',name:'hvanleer'},
  2021. {value:'hvanalbada',name:'hvanalbada'},
  2022. {value:'hsmooth',name:'hsmooth'},
  2023. {value:'hvenkat',name:'hvenkat'},
  2024. ],
  2025. qjklist3:[
  2026. {value:'roe',name:'Roe'},
  2027. {value:'central_difference',name:'Central_Difference'},
  2028. {value:'hllc',name:'HLLC'},
  2029. {value:'aufs',name:'AUFS'},
  2030. {value:'dlfss',name:'LDFSS'},
  2031. ],
  2032. ydlist:[
  2033. {value:'0',name:'刚体'},
  2034. {value:'1',name:'变形'},
  2035. ],
  2036. tlist1:[
  2037. {value:'steady',name:"定常"},
  2038. {value:'1storder',name:'1阶差分'},
  2039. {value:'2ndorder',name:'2阶差分'},
  2040. {value:'2ndorderOPT',name:'最优2阶差分'},
  2041. {value:'3rdorder',name:'4阶差分'},
  2042. {value:'4thorderMEBDF4',name:'4阶差分'},
  2043. {value:'4thorderESDIRK4',name:'4阶差分'},
  2044. ],
  2045. ydval:'0',
  2046. ydlist2:[
  2047. {value:'0',name:'平动'},
  2048. {value:'1',name:'转动'},
  2049. ],
  2050. ydval2:'0',
  2051. ydlist3:[
  2052. {value:'0',name:'匀速'},
  2053. {value:'1',name:'正弦'},
  2054. ],
  2055. ydval3:'0',
  2056. ydlist4:[
  2057. {value:'0',name:'随体运动'},
  2058. {value:'1',name:'空间固定'},
  2059. ],
  2060. ydval4:'0',
  2061. loadlist:[
  2062. {value:'0',name:'盒子'},
  2063. {value:'1',name:'球'},
  2064. {value:'2',name:'圆柱'},
  2065. {value:'4',name:'圆锥'},
  2066. ],
  2067. loadval:'0',
  2068. objectplanelist:[
  2069. {value:'0',name:' 物面输出'},
  2070. {value:'1',name:'流场输出'},
  2071. ],
  2072. objectplaneval:'0',
  2073. active:'',
  2074. //大对象
  2075. ziyprojects:[],
  2076. paginationConfig: {
  2077. hideSinglePage: false,
  2078. page: 1,
  2079. size: 15,
  2080. sizeList: [10, 15, 30, 50],
  2081. layout: 'total, sizes, prev, pager, next, jumper',
  2082. total: 0,
  2083. },
  2084. getRowKeys(row) {
  2085. return row.id;
  2086. },
  2087. selsectid:[],
  2088. missType:true,
  2089. initialization: "freestreams",
  2090. upVisible: false,
  2091. Yvisiable: false,
  2092. llsvisiable: false,
  2093. newload: true,
  2094. runMonitor: true,
  2095. contourLevel: 3,
  2096. form: {
  2097. u_freestream: "",
  2098. rho: "",
  2099. L: "",
  2100. mu: "",
  2101. y_plus_desired: "",
  2102. dtc: "",
  2103. md: "",
  2104. ls: "",
  2105. cd: "",
  2106. Rex: "",
  2107. Re: "",
  2108. lys: "",
  2109. lmi: "",
  2110. ldlzxxs: "",
  2111. lld: "",
  2112. Re: "",
  2113. dtc: "",
  2114. lls: "",
  2115. },
  2116. uploadlist: [
  2117. {
  2118. name: "mapbc",
  2119. percentage: 0,
  2120. },
  2121. {
  2122. name: "ugrid",
  2123. percentage: 0,
  2124. },
  2125. ],
  2126. ContourSurface: false,
  2127. adilog: adilog,
  2128. loading: loading,
  2129. headMenu_2Show: false,
  2130. leftMenu_2Show: false,
  2131. gennealShow: false,
  2132. physicsShow: false,
  2133. solutionShow: false,
  2134. resultShow: false,
  2135. Consoleshow: true,
  2136. openshow:false,
  2137. TaskGenealshow: false,
  2138. TaskPhysicsshow: false,
  2139. TaskSolutionshow: false,
  2140. TaskSurfaceshow: false,
  2141. TaskVolumeshow: false,
  2142. ugridUrl: "",
  2143. bload: null,
  2144. websock: null,
  2145. logs: "欢迎来到HCFD",
  2146. islogload: true, //控制log请求(ture 发起 false 不发起)
  2147. outline: "OutLine",
  2148. fileNames: [],
  2149. belementCheckeds: ["Contour"],
  2150. boundaryStep: [],
  2151. bStep: 0,
  2152. boundaryScalars: [],
  2153. bScalar: "cp",
  2154. velementCheckeds: ["Contour"],
  2155. vStep: 0,
  2156. volumStep: [],
  2157. volumScalars: [],
  2158. vSalar: "p",
  2159. isSolverEnd: false, //判断是否求解完成
  2160. solverState: "0", //求解状态(0-未求解 1-求解中 2-求解完成)
  2161. menuList: [
  2162. {
  2163. id: "1",
  2164. label: "Setup",
  2165. children: [
  2166. {
  2167. id: "2",
  2168. label: "General",
  2169. },
  2170. {
  2171. id: "3",
  2172. label: "Physics",
  2173. },
  2174. {
  2175. id: "4",
  2176. label: "Solution",
  2177. },
  2178. ],
  2179. },
  2180. {
  2181. id: "5",
  2182. label: "Results",
  2183. children: [
  2184. {
  2185. id: "6",
  2186. label: "Monitor",
  2187. },
  2188. {
  2189. id: "7",
  2190. label: "Surface Grid",
  2191. },
  2192. {
  2193. id: "8",
  2194. label: "Volume Grid",
  2195. },
  2196. {
  2197. id: "9",
  2198. label: "Ugrid",
  2199. },
  2200. ],
  2201. },
  2202. ],
  2203. dialog: {
  2204. //弹出框 控制
  2205. new_visiable: false,
  2206. load_visiable: false,
  2207. ziyuan:false,
  2208. upload_visiable: false,
  2209. scale_visiable: false,
  2210. translation_visiable: false,
  2211. rotation_visiable: false,
  2212. type_visiable:false,
  2213. parallel_visiable:false,
  2214. equation_visiable:false,
  2215. inviscid_visiable:false,
  2216. laminar_visiable: false,
  2217. turbulent_visiable: false,
  2218. dynamic_visiable:false,
  2219. nonitertial_visiable:false,
  2220. border_visiable:false,
  2221. reference_visiable: false,
  2222. fluxrc_visiable: false,
  2223. time_visiable: false,
  2224. timeasm_visiable: false,
  2225. xian_visiable:false,
  2226. initialization_visiable:false,
  2227. specified_visiable: false, //未完成
  2228. runc_visiable: false,
  2229. boundaryo_visiable: false,
  2230. volumeo_visiable: false,
  2231. specialp_visiable: false,
  2232. swap_visiable: false,
  2233. SurfaceGrid_visiable:false,
  2234. VolumeGrid_visiable:false,
  2235. },
  2236. geneal: {
  2237. //数据存储
  2238. MeshTransform: {
  2239. Scale: {
  2240. Factor: 0,
  2241. },
  2242. Translation: {
  2243. Distance: 0,
  2244. X: 1,
  2245. Y: 0,
  2246. Z: 0,
  2247. },
  2248. Rotation: {
  2249. Angle: 0,
  2250. X: 0,
  2251. Y: 0,
  2252. Z: 0,
  2253. X1: 1,
  2254. Y1: 0,
  2255. Z1: 0,
  2256. },
  2257. },
  2258. },
  2259. Physics: {
  2260. Turbulent: {
  2261. TurbulentPrandtlNumber: 0.9,
  2262. },
  2263. Boundary: {
  2264. bquery: null, //hcfdBoundary 选中数据 id
  2265. hcfdBoundaryquery: null, //hcfdBoundary 选中数据
  2266. cquery: null,
  2267. /* 黎曼远场边界(Farfield) 5000
  2268. * 自由来流边界(Freestream)5050
  2269. * 无粘壁面(Inviscous Wall) 3000
  2270. * 粘性壁面(Viscous Wall)4000
  2271. * X-对称平面(X-symmetry Plane)6661
  2272. * Y-对称平面(Y-symmetry Plane ) 6662
  2273. * Z-对称平面Z-symmetry Plane) 6663
  2274. * 周期边界(Periodic) 6100*/
  2275. Conditions: [
  2276. { conditionsCode: 5000, name: "Farfield" },
  2277. { conditionsCode: 5050, name: "Freestream" },
  2278. { conditionsCode: 3000, name: "Inviscous Wall" },
  2279. { conditionsCode: 4000, name: "Viscous Wall" },
  2280. { conditionsCode: 6661, name: "X-symmetry Plane" },
  2281. { conditionsCode: 6662, name: "Y-symmetry Plane" },
  2282. { conditionsCode: 6663, name: "Z-symmetry Plane" },
  2283. { conditionsCode: 6100, name: "Periodic" },
  2284. ],
  2285. },
  2286. },
  2287. Solution: {
  2288. boundaryout: {
  2289. checkAll: false,
  2290. checkeds: [],
  2291. lists: [
  2292. "X-component of velocity",
  2293. "Y-component of velocity",
  2294. "Z-component of velocity",
  2295. "Press",
  2296. "Press coefficient",
  2297. "Mach Number",
  2298. "Vorticity magnitude",
  2299. "X-component of vorticity",
  2300. "Y-component of vorticity",
  2301. "Z-component of vorticity",
  2302. "Q Criterion",
  2303. ],
  2304. isIndeterminate: true,
  2305. },
  2306. volumout: {
  2307. checkAll: false,
  2308. checkeds: [],
  2309. lists: [
  2310. "X-component of velocity",
  2311. "Y-component of velocity",
  2312. "Z-component of velocity",
  2313. "Press",
  2314. "Press coefficient",
  2315. "Mach Number",
  2316. "Vorticity magnitude",
  2317. "X-component of vorticity",
  2318. "Y-component of vorticity",
  2319. "Z-component of vorticity",
  2320. "Q Criterion",
  2321. ],
  2322. isIndeterminate: true,
  2323. },
  2324. },
  2325. //state -1,0 ,1
  2326. //message
  2327. //type 1 一般 2 下载
  2328. loadObjs: [],
  2329. loadVVisiable: false,
  2330. loading: false,
  2331. fileurls: [],
  2332. project: {
  2333. projectId: "",
  2334. lesseeId:'',
  2335. projectName: "",
  2336. projectType: "hcfd",
  2337. projectDesc: "",
  2338. fileType: "ascii",
  2339. solverfiles: [],
  2340. solverVolumUrls: [],
  2341. solverBoundaryUrls: [],
  2342. loadfils: [],
  2343. converge: "",
  2344. uid: "",
  2345. },
  2346. projects: [],
  2347. parameterObjclone: [],
  2348. parameterObj: {
  2349. hcfdBoundarys: [
  2350. {
  2351. name: "WING1",
  2352. id: 1,
  2353. conditionsCode: 3000,
  2354. },
  2355. ],
  2356. nmlParam: {
  2357. a_vort_mag: "false",
  2358. case_title: "case_name",
  2359. angle_of_yaw: 0,
  2360. x_moment_center: 0,
  2361. eqn_type: "cal_perf_incompress",
  2362. schedule_cfl: [0, 0],
  2363. swap_yz_axes: "false",
  2364. v_vort_mag: "false",
  2365. pseudo_time_stepping: "on",
  2366. meanflow_sweeps: 15,
  2367. a_p: "true",
  2368. a_u: true,
  2369. a_w: "true",
  2370. a_v: "true",
  2371. dynamic_Mesh: "off",
  2372. jacobian_eval_freq: 10,
  2373. turb_model: "menter-sst",
  2374. grid_format: "aflr3",
  2375. turbulence_sweeps: 10,
  2376. mach_number: 0.5,
  2377. y_moment_length: 1,
  2378. area_reference: 1,
  2379. flux_limiter: "none",
  2380. a_cp: "true",
  2381. viscous_terms: "turbulent",
  2382. volume_animation_freq: 100,
  2383. steps: 1500,
  2384. flux_construction_lhs: "roe",
  2385. stopping_tolerance: 2.0e-1,
  2386. prandtlnumber_molecular: 0.72,
  2387. restart_write_freq: 250,
  2388. v_vort_x: "false",
  2389. schedule_iteration: [1, 50],
  2390. v_vort_y: "false",
  2391. v_vort_z: "false",
  2392. line_implicit: "off",
  2393. temperature_units: "Rankine",
  2394. number_of_Processors: 2,
  2395. x_moment_length: 1,
  2396. time_accuracy: "steady",
  2397. angle_of_attack: 0,
  2398. subiterations: 0,
  2399. artificial_compress: 15,
  2400. a_q_criterion: "false",
  2401. schedule_cflturb: [50, 50],
  2402. schedule: 1,
  2403. first_order_iterations: 0,
  2404. restart_read: "off",
  2405. temperature: 490,
  2406. input_version: 2.2,
  2407. namelist_verbosity: "off",
  2408. ignore_euler_number: "false",
  2409. data_format: "ascii",
  2410. v_cp: "true",
  2411. time_step_nondim: 0,
  2412. a_mach: "true",
  2413. large_angle_fix: "off",
  2414. v_p: "true",
  2415. animation_freq: 100,
  2416. v_mach: "true",
  2417. project_rootname: "tf",
  2418. v_v: "true",
  2419. v_q_criterion: "false",
  2420. v_u: "true",
  2421. y_moment_center: 0,
  2422. v_w: true,
  2423. z_moment_center: 0,
  2424. parallel_Optional: "Serial",
  2425. analysis_Type: "Steady",
  2426. noninertial_Reference_Frame: "off",
  2427. flux_construction: "roe",
  2428. a_vort_z: "false",
  2429. a_vort_y: "false",
  2430. a_vort_x: "false",
  2431. reynolds_number: 1000000,
  2432. },
  2433. },
  2434. renderer_hight: 500,
  2435. renderer_width: 500,
  2436. showUgridflag: false, //ugrid 是否显示过
  2437. showSurfaceflag: false, //surface 是否显示过
  2438. showVolumeflage: false, //Volume 是否显示过
  2439. showMonitorflage: false, //Monitor是否显示过
  2440. };
  2441. },
  2442. created(){
  2443. },
  2444. mounted() {
  2445. this.init();
  2446. },
  2447. // destroyed() {
  2448. // this.websock.close() //离开路由之后断开websocket连接
  2449. // },
  2450. methods:{
  2451. //数据加载参数配置obj
  2452. hcfdchange(obj,solverConfigid){
  2453. this.parameterObj = JSON.parse(obj);
  2454. sessionStorage.setItem("res", obj);
  2455. this.solverConfigid=solverConfigid;
  2456. },
  2457. //更新参数配置
  2458. hcfdparam(){
  2459. const params = {
  2460. transCode: 'C00004',
  2461. solverConfigid: this.solverConfigid,
  2462. parameterObj: JSON.stringify(this.parameterObj),
  2463. }
  2464. request(params)
  2465. .then((res) => {
  2466. this.$parent.solverchange(this.femnum);
  2467. })
  2468. .catch((err) => {
  2469. })
  2470. },
  2471. // 新版求解控制
  2472. Runsolve(){
  2473. this.hcfdparam();
  2474. this.dialog.runc_visiable = false;
  2475. // this.hcfdExe();
  2476. this.hcfdrun();
  2477. },
  2478. hcfdExe(){
  2479. var _this = this;
  2480. let params = {
  2481. transCode: "C00005",
  2482. solverConfigId:this.solverConfigid,
  2483. };
  2484. request(params)
  2485. .then((res) => {
  2486. Message({
  2487. type: "success",
  2488. message:res.returnMsg,
  2489. });
  2490. })
  2491. .catch((err) => {
  2492. setTimeout(function () {
  2493. _this.$refs.loading.visiable = false;
  2494. }, 4000);
  2495. if (err.returnCode == "EB8100017") {
  2496. MessageBox.confirm("你还未分配资源?", "提示", {
  2497. confirmButtonText: "分配资源",
  2498. cancelButtonText: "取消",
  2499. type: "warning",
  2500. })
  2501. .then(() => {
  2502. let errUril =
  2503. _this.$store.getters.proUrl +
  2504. "?projectId=" +
  2505. _this.project.projectId;
  2506. let params2 = {
  2507. transCode: "A00118",
  2508. lesseeId: _this.$store.getters.lesseeId
  2509. };
  2510. request(params2)
  2511. .then((res) => {
  2512. window.location.href =
  2513. errUril + "&authCode=" + res.authCode;
  2514. })
  2515. .catch((err) => {});
  2516. })
  2517. .catch(() => {
  2518. _this.$refs.loading.visiable = false;
  2519. Message({
  2520. type: "info",
  2521. message: "已取消",
  2522. });
  2523. });
  2524. }
  2525. });
  2526. },
  2527. /**
  2528. * 更新配置 并求解
  2529. */
  2530. async hcfdrun() {
  2531. if (this.solverState == "2") {
  2532. //上次求解完成
  2533. MessageBox.confirm(
  2534. "已完成计算,是否放弃上次计算结果,重新计算? 如果不放弃请自行下载上次结果文件!",
  2535. "提示",
  2536. {
  2537. confirmButtonText: "重新计算",
  2538. cancelButtonText: "取消",
  2539. type: "warning",
  2540. }
  2541. )
  2542. .then(() => {
  2543. MessageBox.close();
  2544. this.$emit("exlodingfalse",true)
  2545. this.isSolverEnd = false;
  2546. this.hcfdExe();
  2547. let _this = this;
  2548. let isStop = false;
  2549. // if (!isStop && !_this.isSolverEnd) {
  2550. this.$parent.fun();
  2551. // }
  2552. })
  2553. .catch(() => {
  2554. Message.info("已取消!");
  2555. MessageBox.close();
  2556. this.$emit("exlodingfalse",false)
  2557. });
  2558. } else {
  2559. this.$emit("exlodingfalse",true)
  2560. this.isSolverEnd = false;
  2561. this.hcfdExe();
  2562. let _this = this;
  2563. let isStop = false;
  2564. // if (!isStop && !_this.isSolverEnd) {
  2565. isStop = true;
  2566. this.$parent.fun();
  2567. // }
  2568. }
  2569. },
  2570. // 求解的日志
  2571. getlog(){
  2572. let params = {
  2573. transCode: "C00006",
  2574. pid:this.project.projectId,
  2575. };
  2576. request(params)
  2577. .then((res) => {
  2578. let rows = res.rows;
  2579. console.log(rows);
  2580. })
  2581. .catch((err) => {
  2582. });
  2583. },
  2584. handleClick(tab, event) {
  2585. // if(this.activeName=='five'){
  2586. // let params = {
  2587. // transCode: "A00107",
  2588. // projectId: this.project.projectId,
  2589. // };
  2590. // request(params)
  2591. // .then((res) => {
  2592. // this.lsolverState=res.solverState;
  2593. // } )
  2594. // if(this.lsolverState=='2'){
  2595. // // this.resultdata();
  2596. // }else{
  2597. // Message({
  2598. // type: "warning",
  2599. // message: "求解未完成,请完成求解",
  2600. // });
  2601. // }
  2602. // }else{
  2603. // }
  2604. // this.activecleer();
  2605. },
  2606. activecleer(){
  2607. this.active=11;
  2608. },
  2609. //模块选择
  2610. clickgeometry(e,index,key){
  2611. var e=e||window.Event
  2612. this.styX.left=e.clientX+'px';
  2613. this.active=key;
  2614. console.log(key);
  2615. switch(key){
  2616. case 'info1-0':
  2617. this.name="New"
  2618. this.clickNew();
  2619. break;
  2620. case 'info1-1':
  2621. this.loadProjects();
  2622. break;
  2623. case 'info1-2':
  2624. this.name="amend"
  2625. this.clickNew();
  2626. break;
  2627. case 'two-0':
  2628. this.dialog.scale_visiable = true;
  2629. break;
  2630. case 'two-1':
  2631. this.dialog.translation_visiable= true;
  2632. break;
  2633. case 'two-2':
  2634. this.dialog.rotation_visiable= true;
  2635. case 'two-3':
  2636. this.dialog.type_visiable= true;
  2637. break;
  2638. case 'two-4':
  2639. this.dialog.parallel_visiable= true;
  2640. break;
  2641. case 'three-0':
  2642. this.dialog.equation_visiable= true;
  2643. break;
  2644. case 'three2-0':
  2645. this.dialog.inviscid_visiable= true;
  2646. break;
  2647. case 'three2-1':
  2648. this.dialog.border_visiable= true;
  2649. break;
  2650. case 'three2-2':
  2651. this.dialog.dynamic_visiable= true;
  2652. break;
  2653. case 'three1-0':
  2654. this.dialog.reference_visiable = true;
  2655. break;
  2656. case 'three1-1':
  2657. this.dialog.nonitertial_visiable = true;
  2658. break;
  2659. case 'four-0':
  2660. this.dialog.fluxrc_visiable = true;
  2661. break;
  2662. case 'four-1':
  2663. this.dialog.time_visiable = true;
  2664. break;
  2665. case 'four2-0':
  2666. this.dialog.xian_visiable = true;
  2667. break;
  2668. case 'four2-1':
  2669. this.dialog.initialization_visiable = true;
  2670. break;
  2671. case 'four3-0':
  2672. this.dialog.runc_visiable = true;
  2673. break;
  2674. case 'four3-1':
  2675. this.dialog.boundaryo_visiable = true;
  2676. break;
  2677. case 'four4-0':
  2678. this.dialog.specialp_visiable = true;
  2679. break;
  2680. case 'four4-1':
  2681. this.dialog.swap_visiable = true;
  2682. break;
  2683. case 'four4-2':
  2684. this.hcfdrun(true);
  2685. break;
  2686. case 'four4-3':
  2687. break;
  2688. case 'four4-4':
  2689. break;
  2690. case 'five-0':
  2691. this.dialog.SurfaceGrid_visiable = true;
  2692. break;
  2693. case 'five-1':
  2694. this.dialog.VolumeGrid_visiable = true;
  2695. break;
  2696. case 'six-0':
  2697. this.visiable=true;
  2698. break;
  2699. case 'six-1':
  2700. this.Yvisiable= true;
  2701. break;
  2702. case 'six-2':
  2703. this.llsvisiable = true;
  2704. break;
  2705. }
  2706. },
  2707. //清除相关信息
  2708. clearAll() {
  2709. this.showUgridflag = false; //ugrid 是否显示过
  2710. this.showSurfaceflag = false; //surface 是否显示过
  2711. this.showVolumeflage = false; //Volume 是否显示过
  2712. this.showMonitorflage = false;
  2713. this.islogload = true;
  2714. this.logs = "";
  2715. this.project = {
  2716. projectId: "",
  2717. projectName: "",
  2718. projectType: "hcfd",
  2719. projectDesc: "",
  2720. fileType: "ascii",
  2721. solverfiles: [],
  2722. solverVolumUrls: [],
  2723. solverBoundaryUrls: [],
  2724. loadfils: [],
  2725. converge: "",
  2726. };
  2727. },
  2728. init() {
  2729. this.project.projectId = this.pid; //获取url 参数
  2730. this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
  2731. if (
  2732. this.project.projectId != undefined &&
  2733. this.project.projectId != null
  2734. ) {
  2735. // this.selectProjectOK();
  2736. }
  2737. this.missType=true
  2738. },
  2739. logtime(){
  2740. let self = this;
  2741. let projectId = self.project.projectId;
  2742. if (projectId != null && projectId != "" && self.islogload) {
  2743. self.islogload = false;
  2744. let params = {
  2745. transCode: "A00112",
  2746. projectId: projectId,
  2747. page: 0,
  2748. count: 30,
  2749. };
  2750. request(params)
  2751. .then((res) => {
  2752. console.log(res)
  2753. let rows = res.rows;
  2754. self.logs = ""; //只显示最新的数据
  2755. rows.forEach((row) => {
  2756. self.logs = row.log + "\n" + self.logs;
  2757. if (row.log.indexOf("Solver end") > 0) {
  2758. self.isSolverEnd = true;
  2759. }
  2760. });
  2761. self.islogload = true;
  2762. })
  2763. .catch((err) => {
  2764. self.islogload = true;
  2765. });
  2766. }
  2767. },
  2768. setVolumScalars(scalars) {
  2769. console.log(scalars)
  2770. this.volumScalars = scalars;
  2771. },
  2772. // 工具栏的点击事件
  2773. yCalchange() {
  2774. this.Yvisiable = true;
  2775. },
  2776. reyCalchange() {
  2777. this.llsvisiable = true;
  2778. },
  2779. atmoCalchange() {},
  2780. // 弹框执行事件
  2781. // 弹框执行事件
  2782. referencevisiable() {
  2783. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  2784. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  2785. // this.dialog.scale_visiable = false;
  2786. },
  2787. timeasmvisiable() {
  2788. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  2789. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  2790. this.dialog.timeasm_visiable = false;
  2791. },
  2792. runcvisiable() {
  2793. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  2794. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  2795. this.dialog.runc_visiable = false;
  2796. },
  2797. // this.$emit("visiable",this.visiable);
  2798. dialogbtnkew(){
  2799. this.form1.ssd="";
  2800. var kelvins=parseFloat(this.form1.kelvins)
  2801. this.form1.ssd = this.accAdd(kelvins,273.15);
  2802. // this.form.ssd = Math.floor((parseInt(this.form.kelvins) * 100) / 100)-273.15
  2803. if( this.form1.ssd <0){
  2804. this.form1.ssd =0;
  2805. }
  2806. },
  2807. accAdd(arg1,arg2){
  2808. var r1,r2,m;
  2809. try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
  2810. try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
  2811. m=Math.pow(10,Math.max(r1,r2))
  2812. return (arg1*m-arg2*m)/m
  2813. },
  2814. dialogbtnssd(){
  2815. this.form1.kelvins="";
  2816. var ssd=parseFloat(this.form1.ssd)
  2817. this.form1.kelvins= this.accAdd(ssd ,-273.15);
  2818. //this.form.kelvins = Math.floor((parseInt(this.form.ssd) * 100) / 100) +273.15
  2819. },
  2820. dialogbtny() {
  2821. let u_freestream = eval(this.form.u_freestream);
  2822. if (u_freestream <= 0.0) {
  2823. alert("Free stream velocity must be greater than zero");
  2824. return;
  2825. }
  2826. let rho = eval(this.form.rho);
  2827. if (rho <= 0.0) {
  2828. alert("Density must be greater than zero");
  2829. return;
  2830. }
  2831. let L = eval(this.form.L);
  2832. if (L <= 0.0) {
  2833. alert("Boundary layer reference length must be greater than zero");
  2834. return;
  2835. }
  2836. let mu = eval(this.form.mu);
  2837. if (mu <= 0.0) {
  2838. alert("Dynamic viscosity must be greater than zero");
  2839. return;
  2840. }
  2841. let y_plus_desired = eval(this.form.y_plus_desired);
  2842. if (y_plus_desired <= 0.0) {
  2843. alert("Desired y+ value must be greater than zero");
  2844. return;
  2845. }
  2846. let Re = (rho * u_freestream * L) / mu;
  2847. let C_f = 0.026 * Math.pow(Re, -(1.0 / 7.0));
  2848. C_f = 0.0576 * Math.pow(Re, -1.0 / 5.0);
  2849. C_f = 0.37 * Math.pow(Math.log(Re) / Math.log(10), -2.584);
  2850. C_f = Math.pow((2 * Math.log(Re)) / Math.log(10) - 0.65, -2.3);
  2851. let tau_w = C_f * 0.5 * rho * u_freestream * u_freestream;
  2852. let U_f = Math.sqrt(tau_w / rho);
  2853. let wall_distance_estimation = (y_plus_desired * mu) / (U_f * rho);
  2854. this.form.Rex = Re.toExponential(1);
  2855. this.form.dtc = wall_distance_estimation.toExponential(1);
  2856. },
  2857. leinsdialogbtny() {
  2858. this.form.Re =
  2859. (this.form.lmi * this.form.lls * this.form.lld) / this.form.ldlzxxs;
  2860. // console.log(this.form.Re);
  2861. },
  2862. unitConversion() {
  2863. this.$refs.Calculator.visiable = true;
  2864. },
  2865. taskchangGeneal() {
  2866. this.TaskGenealshow = false;
  2867. },
  2868. taskchangPhysics() {
  2869. this.TaskPhysicsshow = false;
  2870. },
  2871. taskchangSolution() {
  2872. this.TaskSolutionshow = false;
  2873. },
  2874. taskchangSurface() {
  2875. this.TaskSurfaceshow = false;
  2876. },
  2877. taskchangVolume() {
  2878. this.TaskVolumeshow = false;
  2879. },
  2880. // Contour
  2881. showLeftMenu(emt) {
  2882. this.leftMenu_2Show = true;
  2883. },
  2884. uploadRequest1(params) {
  2885. let param = new FormData();
  2886. param.append("transCode", "A00102");
  2887. param.append("file", params.file);
  2888. param.append("projectId", this.project.projectId);
  2889. uploadFile(param)
  2890. .then((res) => {
  2891. // console.log(res);
  2892. // this.fileId = res.fileId
  2893. this.findParam();
  2894. this.getHCFDLoadFiles();
  2895. })
  2896. .catch((err) => {});
  2897. },
  2898. uploadRequest2(params) {
  2899. let param = new FormData();
  2900. param.append("transCode", "A00102");
  2901. param.append("file", params.file);
  2902. param.append("projectId", this.project.projectId);
  2903. uploadFile(param)
  2904. .then((res) => {
  2905. // console.log(res);
  2906. // this.fileId = res.fileId
  2907. this.findParam();
  2908. })
  2909. .catch((err) => {});
  2910. },
  2911. //获取上传文件
  2912. async getHCFDLoadFiles() {
  2913. let params = {
  2914. transCode: "A00110",
  2915. projectId: this.project.projectId,
  2916. };
  2917. await request(params)
  2918. .then((res) => {
  2919. this.project.loadfils = res.files;
  2920. this.fileNames = [];
  2921. res.files.forEach((url) => {
  2922. let names = url.filepath.split("/");
  2923. let name = names[names.length - 1];
  2924. this.fileNames.push(name);
  2925. });
  2926. })
  2927. .catch((err) => {});
  2928. },
  2929. /**
  2930. * 更新配置 并求解
  2931. */
  2932. //选择step
  2933. bStepChange(val){
  2934. this.bStep=val;
  2935. if(this.bStep==0){
  2936. Message({
  2937. type: "warning",
  2938. message: "请选择setp有效值",
  2939. });
  2940. }else{
  2941. this.showboundary();
  2942. }
  2943. },
  2944. //选择step
  2945. vStepChange(val){
  2946. this.vStep=val;
  2947. if(val==0){
  2948. Message({
  2949. type: "warning",
  2950. message: "请选择setp有效值",
  2951. });
  2952. }else{
  2953. this.Volumeshow();
  2954. }
  2955. },
  2956. // 表面加载
  2957. SurfaceChange(value){// 选择色条个数
  2958. this.Surfacenum=value;
  2959. },
  2960. // 体积
  2961. VolumenumChange(value){// 选择色条个数
  2962. this.Volumenum=value;
  2963. },
  2964. async reUpload() {
  2965. this.$refs.mapbc.uploader.upload();
  2966. this.$refs.ugrid.uploader.upload();
  2967. },
  2968. async ugridShow() {
  2969. if (
  2970. this.project.projectId == "" ||
  2971. this.project.projectId == undefined ||
  2972. this.project.projectId == null
  2973. ) {
  2974. Message({
  2975. type: "error",
  2976. message: "缺少文件,请检查修改",
  2977. });
  2978. } else {
  2979. this.dialog.new_visiable = false;
  2980. this.tstep=0;
  2981. this.clearserver();
  2982. this.initWebSocket();
  2983. }
  2984. },
  2985. async findParam() {
  2986. let params = {
  2987. transCode: "A00107",
  2988. projectId: this.project.projectId,
  2989. };
  2990. // console.log(params);
  2991. await request(params)
  2992. .then((res) => {
  2993. // console.log("findParam:" + res);
  2994. this.project.projectName = res.projectName;
  2995. this.project.uid = res.uid;
  2996. let cjuserid = this.$route.query.cjuserid;
  2997. sessionStorage.setItem('projectName',res.projectName)
  2998. if(res.missionType==='3'||res.missionType==='4'){
  2999. this.missType=false
  3000. }else{
  3001. this.missType=true
  3002. }
  3003. console.log(this.parameterObj)
  3004. this.parameterObj = JSON.parse(res.parameterObj);
  3005. sessionStorage.setItem("res", res.parameterObj);
  3006. this.lsolverState=res.solverState;
  3007. })
  3008. .catch((err) => {});
  3009. },
  3010. //上传配置参数
  3011. async updateParam() {
  3012. delete this.parameterObj.nmlParam.initialization;
  3013. let params = {
  3014. transCode: "A00104",
  3015. parameterObj: JSON.stringify(this.parameterObj),
  3016. projectId: this.project.projectId,
  3017. lesseeId: this.$store.getters.lesseeId
  3018. };
  3019. console.log(this.parameterObj.nmlParam.a_u);
  3020. console.log(this.parameterObj);
  3021. await request(params)
  3022. .then((res) => {
  3023. this.solverState = res.solverState;
  3024. })
  3025. .catch((err) => {});
  3026. },
  3027. loadProjects() {
  3028. this.dialog.load_visiable=true;
  3029. let params = {
  3030. transCode: "A00101",
  3031. page: 1,
  3032. size: 1,
  3033. projectType: "hcfd",
  3034. lesseeId: this.$store.getters.lesseeId
  3035. };
  3036. this.loading = true;
  3037. request(params)
  3038. .then((res) => {
  3039. this.projects = res.rows;
  3040. this.loading = false;
  3041. })
  3042. .catch((err) => {});
  3043. },
  3044. projectsSelectionChange(val) {
  3045. this.clearAll();
  3046. if (val.length == 1) {
  3047. this.project.projectId = val[0].projectId;;
  3048. this.project.projectName =val[0].projectName;
  3049. this.project.projectDesc = val[0].projectDesc;
  3050. this.xiugai=val[0];
  3051. } else if (val.length > 1) {
  3052. this.project.projectId = val[1].projectId;;
  3053. this.project.projectName =val[1].projectName;
  3054. this.project.projectDesc = val[1].projectDesc;
  3055. this.xiugai=val[1];
  3056. }
  3057. },
  3058. projectsSelectionSelect(selection, row) {
  3059. if (selection.length <= 1) return;
  3060. this.$refs.projectsTable.clearSelection();
  3061. this.$refs.projectsTable.toggleRowSelection(row, true);
  3062. },
  3063. //load状态回调
  3064. fileLoadeState(files) {
  3065. files.forEach((file) => {
  3066. this.loadObjs.forEach((obj) => {
  3067. if (obj.type == 2) {
  3068. if (obj.filename === file.name) {
  3069. obj.percentage = file.percentage;
  3070. }
  3071. }
  3072. if (obj.type == 1) {
  3073. // obj.message=file.message;
  3074. }
  3075. });
  3076. });
  3077. },
  3078. boundaryChange(boundaryid) {
  3079. this.parameterObj.hcfdBoundarys.forEach((hcfdBoundary) => {
  3080. if (hcfdBoundary.id === boundaryid) {
  3081. this.Physics.hcfdBoundaryquery = hcfdBoundary;
  3082. this.Physics.Boundary.cquery = hcfdBoundary.conditionsCode;
  3083. return;
  3084. }
  3085. });
  3086. },
  3087. conditionsChange(conditionsCode) {
  3088. this.Physics.hcfdBoundaryquery.conditionsCode = conditionsCode;
  3089. },
  3090. solutionbCheckAllChange(val) {
  3091. if(val==true){
  3092. this.parameterObj.nmlParam.a_u = true;
  3093. this.parameterObj.nmlParam.a_v = true;
  3094. this.parameterObj.nmlParam.a_w = true;
  3095. this.parameterObj.nmlParam.a_p = true;
  3096. this.parameterObj.nmlParam.a_cp = true;
  3097. this.parameterObj.nmlParam.a_mach = true;
  3098. this.parameterObj.nmlParam.a_vort_mag = true;
  3099. this.parameterObj.nmlParam.a_vort_x = true;
  3100. this.parameterObj.nmlParam.a_vort_y = true;
  3101. this.parameterObj.nmlParam.a_vort_z = true;
  3102. this.parameterObj.nmlParam.a_q_criterion = true;
  3103. this.Solution.boundaryout.isIndeterminate = false;
  3104. //this.solutionbSetParam();
  3105. }else {
  3106. this.parameterObj.nmlParam.a_u = false;
  3107. this.parameterObj.nmlParam.a_v = false;
  3108. this.parameterObj.nmlParam.a_w = false;
  3109. this.parameterObj.nmlParam.a_p = false;
  3110. this.parameterObj.nmlParam.a_cp = false;
  3111. this.parameterObj.nmlParam.a_mach = false;
  3112. this.parameterObj.nmlParam.a_vort_mag = false;
  3113. this.parameterObj.nmlParam.a_vort_x = false;
  3114. this.parameterObj.nmlParam.a_vort_y = false;
  3115. this.parameterObj.nmlParam.a_vort_z = false;
  3116. this.parameterObj.nmlParam.a_q_criterion = false;
  3117. this.Solution.boundaryout.isIndeterminate = false;
  3118. }
  3119. },
  3120. solutionbCheckedCitiesChange(value) {
  3121. let checkedCount = value.length;
  3122. this.Solution.boundaryout.checkAll =
  3123. checkedCount === this.Solution.boundaryout.lists.length;
  3124. this.Solution.boundaryout.isIndeterminate =
  3125. checkedCount > 0 &&
  3126. checkedCount < this.Solution.boundaryout.lists.length;
  3127. this.solutionbSetParam();
  3128. },
  3129. solutionbSetParam() {
  3130. this.Solution.boundaryout.checkeds.forEach((cell) => {
  3131. switch (cell) {
  3132. case "X-component of velocity":
  3133. console.log( this.parameterObj.nmlParam.a_u);
  3134. this.parameterObj.nmlParam.a_u = true;
  3135. break;
  3136. case "Y-component of velocity":
  3137. this.parameterObj.nmlParam.a_v = true;
  3138. break;
  3139. case "Z-component of velocity":
  3140. this.parameterObj.nmlParam.a_w = true;
  3141. break;
  3142. case "Press":
  3143. this.parameterObj.nmlParam.a_p = true;
  3144. break;
  3145. case "Press coefficient":
  3146. this.parameterObj.nmlParam.a_cp = true;
  3147. break;
  3148. case "Mach Number":
  3149. this.parameterObj.nmlParam.a_mach = true;
  3150. break;
  3151. case "Vorticity magnitude":
  3152. this.parameterObj.nmlParam.a_vort_mag = true;
  3153. break;
  3154. case "X-component of vorticity":
  3155. this.parameterObj.nmlParam.a_vort_x = true;
  3156. break;
  3157. case "Y-component of vorticity":
  3158. this.parameterObj.nmlParam.a_vort_y = true;
  3159. break;
  3160. case "Z-component of vorticity":
  3161. this.parameterObj.nmlParam.a_vort_z = true;
  3162. break;
  3163. case "Q Criterion":
  3164. this.parameterObj.nmlParam.a_q_criterion = true;
  3165. break;
  3166. default:
  3167. break;
  3168. }
  3169. });
  3170. },
  3171. solutionvCheckAllChange(val) {
  3172. // this.Solution.volumout.checkeds = val ? this.Solution.volumout.lists : [];
  3173. // this.Solution.volumout.isIndeterminate = false;
  3174. // this.solutionbSetParam();
  3175. if(val==true){
  3176. this.parameterObj.nmlParam.v_u = true;
  3177. this.parameterObj.nmlParam.v_v = true;
  3178. this.parameterObj.nmlParam.v_w = true;
  3179. this.parameterObj.nmlParam.v_p = true;
  3180. this.parameterObj.nmlParam.v_cp = true;
  3181. this.parameterObj.nmlParam.v_mach = true;
  3182. this.parameterObj.nmlParam.v_vort_mag = true;
  3183. this.parameterObj.nmlParam.v_vort_x = true;
  3184. this.parameterObj.nmlParam.v_vort_y = true;
  3185. this.parameterObj.nmlParam.v_vort_z = true;
  3186. this.parameterObj.nmlParam.v_q_criterion = true;
  3187. }else{
  3188. this.parameterObj.nmlParam.v_u = false;
  3189. this.parameterObj.nmlParam.v_v = false;
  3190. this.parameterObj.nmlParam.v_w = false;
  3191. this.parameterObj.nmlParam.v_p = false;
  3192. this.parameterObj.nmlParam.v_cp = false;
  3193. this.parameterObj.nmlParam.v_mach = false;
  3194. this.parameterObj.nmlParam.v_vort_mag = false;
  3195. this.parameterObj.nmlParam.v_vort_x = false;
  3196. this.parameterObj.nmlParam.v_vort_y = false;
  3197. this.parameterObj.nmlParam.v_vort_z = false;
  3198. this.parameterObj.nmlParam.v_q_criterion = false;
  3199. this.Solution.volumout.isIndeterminate = false;
  3200. }
  3201. },
  3202. solutionvCheckedCitiesChange(value) {
  3203. let checkedCount = value.length;
  3204. console.log(value);
  3205. this.Solution.volumout.checkAll =
  3206. checkedCount === this.Solution.volumout.lists.length;
  3207. this.Solution.volumout.isIndeterminate =
  3208. checkedCount > 0 && checkedCount < this.Solution.volumout.lists.length;
  3209. this.solutionvSetParam();
  3210. },
  3211. solutionvSetParam() {
  3212. this.Solution.volumout.checkeds.forEach((cell) => {
  3213. switch (cell) {
  3214. case "X-component of velocity":
  3215. this.parameterObj.nmlParam.v_u = true;
  3216. break;
  3217. case "Y-component of velocity":
  3218. this.parameterObj.nmlParam.v_v = true;
  3219. break;
  3220. case "Z-component of velocity":
  3221. this.parameterObj.nmlParam.v_w = true;
  3222. break;
  3223. case "Press":
  3224. this.parameterObj.nmlParam.v_p = true;
  3225. break;
  3226. case "Press coefficient":
  3227. this.parameterObj.nmlParam.v_cp = true;
  3228. break;
  3229. case "Mach Number":
  3230. this.parameterObj.nmlParam.v_mach = true;
  3231. break;
  3232. case "Vorticity magnitude":
  3233. this.parameterObj.nmlParam.v_vort_mag = true;
  3234. break;
  3235. case "X-component of vorticity":
  3236. this.parameterObj.nmlParam.v_vort_x = true;
  3237. break;
  3238. case "Y-component of vorticity":
  3239. this.parameterObj.nmlParam.v_vort_y = true;
  3240. break;
  3241. case "Z-component of vorticity":
  3242. this.parameterObj.nmlParam.v_vort_z = true;
  3243. break;
  3244. case "Q Criterion":
  3245. this.parameterObj.nmlParam.v_q_criterion = true;
  3246. break;
  3247. default:
  3248. break;
  3249. }
  3250. });
  3251. },
  3252. //显示 UgridLoad
  3253. async showUgrid() {
  3254. console.log(this.showUgridflag);
  3255. this.$refs.monitor.hiden();
  3256. if (!this.showUgridflag) {
  3257. //是否显示过
  3258. this.$refs.ugridLoad.clear();
  3259. if (this.project.loadfils.length == 0) {
  3260. await this.getHCFDLoadFiles();
  3261. }
  3262. this.project.loadfils.forEach((url) => {
  3263. if (url.filepath.indexOf(".ugrid") > 0) {
  3264. this.ugridUrl = url.filepath;
  3265. }
  3266. });
  3267. this.$refs.ugridLoad.loadUgrid(this.ugridUrl, 1);
  3268. this.showUgridflag = true;
  3269. } else {
  3270. this.$refs.ugridLoad.nhiden();
  3271. }
  3272. },
  3273. //显示 Surface
  3274. async showSurface() {
  3275. let mesh = false;
  3276. let contour = false;
  3277. this.belementCheckeds.forEach((ele) => {
  3278. if ("Mesh" == ele) {
  3279. mesh = true;
  3280. } else if ("Contour" == ele) {
  3281. contour = true;
  3282. }
  3283. });
  3284. this.$refs.ugridLoad.hiden();
  3285. this.$refs.volumLoad.hiden();
  3286. this.$refs.monitor.hiden();
  3287. if (!this.showSurfaceflag) {
  3288. if (this.project.solverfiles.length == 0) {
  3289. }
  3290. let burl;
  3291. this.project.solverBoundaryUrls.forEach((url) => {
  3292. if (url.indexOf(this.bStep + ".dat") > 0) {
  3293. burl = url;
  3294. }
  3295. });
  3296. if (mesh) {
  3297. this.$refs.boundaryLoad.loadBoundary(burl, 1, this.bScalar);
  3298. }
  3299. if (contour) {
  3300. this.$refs.boundaryLoad.loadBoundary(burl, 2, this.bScalar);
  3301. }
  3302. this.showSurfaceflag = true;
  3303. } else {
  3304. this.$refs.boundaryLoad.clear();
  3305. this.$refs.boundaryLoad.nhiden();
  3306. if (mesh) {
  3307. this.$refs.boundaryLoad.mesh(this.bScalar);
  3308. }
  3309. if (contour) {
  3310. // console.log(222);
  3311. this.$refs.volumLoad.vdivb = false;
  3312. this.$refs.boundaryLoad.divb = true;
  3313. this.$refs.boundaryLoad.contour(this.bScalar);
  3314. }
  3315. }
  3316. },
  3317. large() {
  3318. this.$refs.ugridLoad.large();
  3319. this.$refs.boundaryLoad.large();
  3320. this.$refs.volumLoad.large();
  3321. },
  3322. small() {
  3323. this.$refs.ugridLoad.small();
  3324. this.$refs.boundaryLoad.small();
  3325. this.$refs.volumLoad.small();
  3326. },
  3327. positive(axis) {
  3328. this.$refs.ugridLoad.positive(axis);
  3329. this.$refs.boundaryLoad.positive(axis);
  3330. this.$refs.volumLoad.positive(axis);
  3331. },
  3332. negative(axis) {
  3333. this.$refs.ugridLoad.negative(axis);
  3334. this.$refs.boundaryLoad.negative(axis);
  3335. this.$refs.volumLoad.negative(axis);
  3336. },
  3337. // 资源选择代码
  3338. showresource(){
  3339. this.dialog.ziyuan=true;
  3340. this.getresource();
  3341. },
  3342. //获取资源代码
  3343. getresource(){
  3344. const loading = this.$loading({
  3345. lock: true,
  3346. text: 'Loading',
  3347. spinner: 'el-icon-loading',
  3348. background: 'rgba(0, 0, 0, 0.7)',
  3349. })
  3350. setTimeout(() => {
  3351. const params = {
  3352. transCode: 'HG00000',
  3353. page: this.paginationConfig.page,
  3354. count: this.paginationConfig.size,
  3355. lesseeId:this.$store.getters.lesseeId,
  3356. }
  3357. request(params)
  3358. .then((res) => {
  3359. loading.close()
  3360. this.ziyprojects = res.rows;
  3361. this.paginationConfig.total = res.total
  3362. this.resourcelook();
  3363. })
  3364. .catch((err) => {
  3365. loading.close()
  3366. })
  3367. }, 500)
  3368. },
  3369. getPagination(data) {
  3370. this.paginationConfig = data
  3371. this.getresource()
  3372. },
  3373. //选中
  3374. ziySelectionChange (val) {
  3375. let id= []
  3376. val.map((item)=> {
  3377. id.push(item.id)
  3378. })
  3379. this.selsectid= id.join(',')
  3380. },
  3381. ziySelectionSelect(selection, row) {
  3382. },
  3383. // 日志的文本框
  3384. footerShows(evt) {
  3385. if(evt=='claer'){
  3386. this.logs='';
  3387. }else{
  3388. this.footerShow=!this.footerShow
  3389. }
  3390. },
  3391. //保存
  3392. resourceOK(){
  3393. const params = {
  3394. transCode: 'HG00002',
  3395. otherId:this.project.projectId,
  3396. type:'1',
  3397. resourceIds:this.selsectid,
  3398. lesseeId:this.$store.getters.lesseeId,
  3399. }
  3400. request(params)
  3401. .then((res) => {
  3402. Message({
  3403. type: "success",
  3404. message: "保存成功",
  3405. });
  3406. this.dialog.ziyuan=false;
  3407. })
  3408. .catch((err) => {
  3409. })
  3410. },
  3411. changest(val){
  3412. },
  3413. // 查看已经中的
  3414. resourcelook(){
  3415. const loading = this.$loading({
  3416. lock: true,
  3417. text: 'Loading',
  3418. spinner: 'el-icon-loading',
  3419. background: 'rgba(0, 0, 0, 0.7)',
  3420. })
  3421. const params = {
  3422. transCode: 'HG00001',
  3423. otherId: this.project.projectId,
  3424. type:'1',
  3425. lesseeId:this.$store.getters.lesseeId,
  3426. }
  3427. request(params)
  3428. .then((res) => {
  3429. loading.close()
  3430. let rst=res.rows;
  3431. console.log(res)
  3432. this.$refs.multipleTable.clearSelection();
  3433. if (rst.length > 0) {
  3434. for (var i = 0; i < rst.length; i++) {
  3435. for ( let j = 0 ; j < this.ziyprojects.length; j++ ){
  3436. if (this.ziyprojects[j].id === rst[i].resourceId) {
  3437. this.$refs.multipleTable.toggleRowSelection(this.ziyprojects[j],true);
  3438. }
  3439. }
  3440. }
  3441. }else{
  3442. consolog.log(2222)
  3443. }
  3444. })
  3445. .catch((err) => {
  3446. loading.close()
  3447. })
  3448. },
  3449. closeOff(val){
  3450. if(val=='on'){
  3451. this.Consoleshow=true;
  3452. this.openshow=false;
  3453. }else{
  3454. console.log(val);
  3455. this.Consoleshow=false;
  3456. this.openshow=true;
  3457. }
  3458. },
  3459. }
  3460. }
  3461. </script>
  3462. <style lang="scss" >
  3463. @import '@/styles/variables.scss';
  3464. @import '@/styles/mixin.scss';
  3465. .hcfdlab{
  3466. .el-input__inner{
  3467. line-height: 30px;
  3468. height: 30px;
  3469. }
  3470. }
  3471. html,body{
  3472. width: 100%;
  3473. height: 100%;
  3474. }
  3475. .el-tabs__content{
  3476. padding: 0 5px;
  3477. }
  3478. .content{
  3479. display: flex;
  3480. height: 100%;
  3481. position: relative;
  3482. .left{
  3483. width: 200px;
  3484. height: 100%;
  3485. flex-direction: column;
  3486. padding: 15px;
  3487. position: relative;
  3488. height: 88vh;
  3489. // box-shadow: 2px 0 15px 0 rgb(232, 232, 232);
  3490. // -webkit-box-shadow: 2px 0 15px 0 rgb(232, 232, 232);
  3491. // -moz-box-shadow: 2px 0 15px 0 rgb(232, 232, 232);
  3492. }
  3493. .part-panel-collapse-handle {
  3494. position: absolute;
  3495. // right: -56px;
  3496. left: -38px;
  3497. top: 44%;
  3498. width: 94px;
  3499. height: 0;
  3500. cursor: pointer;
  3501. text-align: center;
  3502. border-width: 0 20px 18px;
  3503. line-height: 18px;
  3504. border-style: none solid solid;
  3505. transform: rotateZ(
  3506. 90deg);
  3507. font-size: 19px;
  3508. }
  3509. .lbg_color3 i:before{
  3510. transform: rotateZ(
  3511. 0);
  3512. }
  3513. .right{
  3514. flex: 1;
  3515. height: 100%;
  3516. height: 85vh;
  3517. position: relative;
  3518. }
  3519. .imgcontent img{
  3520. font-size: 16px;
  3521. }
  3522. .slide-fade-enter-active {
  3523. transition: all .3s ease;
  3524. }
  3525. }
  3526. .tablist{
  3527. border-bottom:1px solid #999;
  3528. padding: 3px 0;
  3529. }
  3530. .tablist .tabitem{
  3531. color: #b6b6b6;
  3532. font-size: 16px;
  3533. padding-right: 5px;
  3534. cursor: pointer;
  3535. &.current{
  3536. color: #Fff ;
  3537. }
  3538. }
  3539. .imgzong{
  3540. display: flex;
  3541. padding-top: 4px;
  3542. flex-wrap:wrap;
  3543. .el-image{
  3544. width: 30px;
  3545. }
  3546. }
  3547. .imgzong .item1{
  3548. padding-right: 4px;
  3549. padding: 4px 4px ;
  3550. }
  3551. .shu{
  3552. padding: 4px 10px;
  3553. color: #666;
  3554. }
  3555. .el-tabs__item{
  3556. color:#b6b6b6;
  3557. font-size: 16px;
  3558. }
  3559. .textlab{
  3560. display: inline-block;
  3561. vertical-align: middle;
  3562. margin-top: -28px;
  3563. }
  3564. </style>
  3565. <style>
  3566. .el-input-number__decrease, .el-input-number__increase{
  3567. position: absolute;
  3568. z-index: 1;
  3569. top: 4px;
  3570. width: 31px;
  3571. height: 30px;
  3572. text-align: center;
  3573. background: #F5F7FA;
  3574. color: #606266;
  3575. cursor: pointer;
  3576. font-size: 13px;
  3577. }
  3578. .el-tabs--bottom .el-tabs__header.is-bottom{
  3579. margin: 0;
  3580. }
  3581. .el-tabs__header{
  3582. margin: 0;
  3583. }
  3584. .imgcontent{
  3585. padding: 0 15px;
  3586. }
  3587. .el-tabs__item{
  3588. height: 30px;
  3589. line-height: 30px;
  3590. padding: 0 8px;
  3591. font-size: 12px;
  3592. }
  3593. .el-tabs--border-card{
  3594. background-color: none;
  3595. }
  3596. .baoshi{
  3597. margin-top: 4px;
  3598. color: #b6b6b6;
  3599. }
  3600. .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{
  3601. background-color: #757070;
  3602. }
  3603. .el-dialog__header{
  3604. padding: 15px 20px 10px;
  3605. }
  3606. .textselsect{
  3607. position: absolute;
  3608. z-index: 9;
  3609. bottom: 1px;
  3610. right: 7px;
  3611. z-index: 9;
  3612. }
  3613. .dialoglocation{
  3614. position: absolute;
  3615. top: -15vh;
  3616. left: 10px;
  3617. }
  3618. .el-dialog__wrapper{
  3619. top: 15vh;
  3620. }
  3621. </style>
  3622. // 样式大全
  3623. <style lang="scss" scoped>
  3624. .diyi i{
  3625. font-size: 14px;
  3626. color: #C0C4CC;
  3627. }
  3628. .tupian{
  3629. display: flex;
  3630. justify-content: center;
  3631. align-items: center;
  3632. }
  3633. .red{
  3634. color: red;
  3635. }
  3636. .dialog_header{
  3637. align-items: center;
  3638. display: flex;
  3639. }
  3640. .juli{
  3641. margin-top: 15px;
  3642. width: 100%
  3643. }
  3644. </style>
  3645. <style lang="scss">
  3646. @import '@/styles/variables.scss';
  3647. @import '@/styles/mixin.scss';
  3648. .heigeinput
  3649. {
  3650. .el-form-item{
  3651. margin-bottom: 5px;
  3652. }
  3653. }
  3654. .el-dialog__body{
  3655. padding: 10px 20px 10px 20px;
  3656. }
  3657. .line{
  3658. width: 100%;
  3659. height: 1px;
  3660. background-color: #999;
  3661. position: relative;
  3662. margin: 30px 0;
  3663. .linetext{
  3664. position: absolute;
  3665. left: 50%;
  3666. transform: translateX(-50%);
  3667. background-color: #ffff;
  3668. padding: 5px;
  3669. font-size: 12px;
  3670. top: -10px;
  3671. font-weight: 700;
  3672. }
  3673. }
  3674. .ulist ul{
  3675. display: flex;
  3676. margin: 0;
  3677. padding: 0;
  3678. li{
  3679. flex: 1;
  3680. border: 1px solid #666;
  3681. }
  3682. }
  3683. .liitem{
  3684. margin-bottom: 5px;
  3685. }
  3686. .inputwithd .el-input__inner{
  3687. width: 74px;
  3688. }
  3689. .inputtext .el-input{
  3690. margin-top: 5px;
  3691. }
  3692. .dancentent{
  3693. display: flex;
  3694. justify-content:center;
  3695. align-items: center;
  3696. }
  3697. .titleinput .el-input{
  3698. width: 100px;
  3699. }
  3700. .itemlist{
  3701. display: flex;
  3702. }
  3703. .listbtn{
  3704. display: flex;
  3705. margin-bottom: 5px;
  3706. .anniu{
  3707. flex: 1;
  3708. }
  3709. .el-checkbox{
  3710. flex: 1;
  3711. }
  3712. }
  3713. .anniu{
  3714. padding: 5px 28px;
  3715. font-size: 12px;
  3716. margin: 0;
  3717. }
  3718. .titleinput{
  3719. .el-row{
  3720. padding-left: 10px;
  3721. }
  3722. .el-button{
  3723. padding: 5px 28px;
  3724. font-size: 12px;
  3725. }
  3726. .el-button+.el-button{
  3727. margin: 0;
  3728. }
  3729. }
  3730. .el-dialog__wrapper{
  3731. z-index: 2300;
  3732. }
  3733. .tiele{
  3734. width: 324px;
  3735. background-color: #fff;
  3736. position: fixed;
  3737. top: 50%;
  3738. left: 50%;
  3739. z-index: 2049;
  3740. padding: 20px;
  3741. .heder{
  3742. width: 100%;
  3743. height: 40px;
  3744. line-height: 40px;
  3745. font-size: 14px;
  3746. padding: 0 20px;
  3747. border-bottom: 1px solid #eee;
  3748. }
  3749. .tiele_content{
  3750. padding: 20px 20px;
  3751. .el-checkbox{
  3752. display: block;
  3753. }
  3754. }
  3755. p{
  3756. text-align: center;
  3757. }
  3758. }
  3759. .el-form-item{
  3760. margin: 0;
  3761. }
  3762. .btntext{
  3763. text-align: center;
  3764. background-color: #757070;
  3765. color:#d5d5d5 ;
  3766. font-size: 12px;
  3767. padding: 4px 0;
  3768. margin: 5px 0;
  3769. border-radius: 5px;
  3770. }
  3771. .btnyiban{
  3772. width: 50%;
  3773. background-color: #757070;
  3774. color:#d5d5d5 ;
  3775. }
  3776. .fangxiang .el-row{
  3777. display: flex;
  3778. padding-bottom: 10px;
  3779. }
  3780. .input3{
  3781. display: flex;
  3782. flex-wrap:nowrap;
  3783. justify-content: space-around;
  3784. padding-bottom: 5px;
  3785. .el-input{
  3786. width: 30%;
  3787. }
  3788. }
  3789. .yiinpu .el-form-item__content{
  3790. display:flex;
  3791. .el-input{
  3792. margin-right: 5px;
  3793. }
  3794. }
  3795. .saninput{
  3796. display: flex;
  3797. flex-wrap:nowrap;
  3798. justify-content: space-around;
  3799. .el-input{
  3800. margin-right: 5px;
  3801. }
  3802. .el-form-item__label{
  3803. text-align: left;
  3804. }
  3805. }
  3806. // select样式
  3807. .selecr{
  3808. font-size: 12px;
  3809. .el-select{
  3810. width: 100%;
  3811. }
  3812. }
  3813. .btnringth{
  3814. text-align: right;
  3815. }
  3816. .juli .el-input__inner{
  3817. margin-bottom: 5px;
  3818. width:100%;
  3819. }
  3820. </style>
  3821. <style lang="scss" scoped>
  3822. /deep/.toolbar-part-detail{
  3823. position: relative;
  3824. }
  3825. /deep/ .el-form-item__label{
  3826. font-size: 12px;
  3827. line-height: 30px;
  3828. }
  3829. /deep/.el-form-item__content{
  3830. line-height: 30px;
  3831. font-size: 12px;
  3832. }
  3833. .el-form-item{
  3834. margin-bottom: 5px;
  3835. }
  3836. </style>
  3837. <style lang="scss" scoped>
  3838. .femFooter {
  3839. height: 135px !important;
  3840. padding: 0;
  3841. position: relative;
  3842. }
  3843. .footerTitle {
  3844. display: flex;
  3845. justify-content: space-between;
  3846. padding: 5px 20px;
  3847. font-size: 20px;
  3848. height: 30px !important;
  3849. background-color: #bbb;
  3850. }
  3851. .footerTitle div {
  3852. display: flex;
  3853. justify-content: space-around;
  3854. align-items: center;
  3855. }
  3856. .footerTitle p {
  3857. margin: 0;
  3858. }
  3859. .footerTitle span {
  3860. padding: 5px 10px;
  3861. cursor: default;
  3862. }
  3863. /deep/.footerText .el-textarea__inner{
  3864. width: 100%;
  3865. height: 135px !important;
  3866. border: 0;
  3867. font-size: 12px;
  3868. color: #333;
  3869. padding: 2px;
  3870. }
  3871. .radio_text{
  3872. line-height: 28px;
  3873. .el-radio__label{
  3874. color: #d5d5d5;
  3875. }
  3876. .disacent{
  3877. padding: 6px 0 6px 3.125vw;
  3878. font-size:12px;
  3879. }
  3880. }
  3881. .el-table th, .el-table tr{
  3882. background-color: #535353;
  3883. }
  3884. .beij-container {
  3885. width: 100%;
  3886. height: 100%;
  3887. background: linear-gradient(180deg, #ccd3e2 0%, rgba(255, 255, 255, 0) 100%);
  3888. }
  3889. .el-footer {
  3890. padding: 0;
  3891. height: 149px;
  3892. overflow-y: auto;
  3893. }
  3894. .logs_title {
  3895. background: #bfc5cb;
  3896. padding: 10px;
  3897. font-size: 16px;
  3898. }
  3899. .x {
  3900. cursor: default;
  3901. float: right;
  3902. }
  3903. .exloadbox {
  3904. float: right;
  3905. margin-right: 100px;
  3906. display: flex;
  3907. }
  3908. .maxh221{
  3909. max-height: calc(100vh - 10px);
  3910. }
  3911. .maxh400{
  3912. max-height: calc(100vh - 410px);
  3913. }
  3914. body {
  3915. position: relative;
  3916. background-color: #eceef0;
  3917. }
  3918. .el-loading-mask {
  3919. background: none;
  3920. }
  3921. .sblock{
  3922. width: 100px;
  3923. display: inline-block;
  3924. }
  3925. .groupradio .el-radio{
  3926. display: block;
  3927. padding: 5px;
  3928. }
  3929. .radiogroup{
  3930. display:flex;
  3931. }
  3932. .radiogroup label{
  3933. flex: 1;
  3934. }
  3935. /deep/ .radiogroup .el-radio-button--mini .el-radio-button__inner{
  3936. border-radius: 5px;
  3937. }
  3938. /deep/ .radiogroup .el-radio-button:last-child .el-radio-button__inner{
  3939. border-radius: 4px ;
  3940. }
  3941. /deep/ .heightclass{
  3942. height: 450px;
  3943. overflow-y: auto;
  3944. }
  3945. /deep/ .heightclass .el-dialog__header{
  3946. position: fixed;
  3947. z-index: 99;
  3948. width: 385px;
  3949. }
  3950. /deep/ .heightclass .el-dialog__body{
  3951. margin-top: 60px;
  3952. }
  3953. .displanblock .el-checkbox{
  3954. display: block;
  3955. }
  3956. .outline{
  3957. margin-left: 50px;
  3958. font-size: 20px;
  3959. }
  3960. /deep/.el-dialog__wrapper{
  3961. pointer-events:none;
  3962. }
  3963. /deep/.el-dialog{
  3964. pointer-events:auto;
  3965. }
  3966. /deep/ .asideTag2{
  3967. left: auto;
  3968. right: 10px;
  3969. top: 21px;
  3970. ul{
  3971. display: flex;
  3972. li{
  3973. margin-left: 4px;
  3974. width: 28px;
  3975. height: 28px;
  3976. }
  3977. }
  3978. }
  3979. .asideTag{
  3980. top: 30px;
  3981. }
  3982. /deep/ .asideTag ul{
  3983. display: flex;
  3984. li{
  3985. margin-left: 4px;
  3986. width: 28px;
  3987. height: 28px;
  3988. }
  3989. }
  3990. @media screen and (max-width:1330px){
  3991. .headMenu_2 .el-col{
  3992. transform:scale(0.8);
  3993. transform-origin: 0 0;
  3994. }
  3995. .headMenu_2{
  3996. height: 150px !important;
  3997. }
  3998. .asideTag2,.asideTag {
  3999. transform:scale(0.7);
  4000. transform-origin: 0 0;
  4001. }
  4002. }
  4003. @media screen and (max-width:1160px){
  4004. .headMenu_2 .el-col{
  4005. transform:scale(0.7);
  4006. transform-origin: 0 0;
  4007. }
  4008. .asideTag2{
  4009. left: 91%;
  4010. }
  4011. .el-aside{
  4012. width:170px !important;
  4013. }
  4014. .headMenu_2{
  4015. height: 135px !important;
  4016. }
  4017. }
  4018. .text{
  4019. color: #fff;
  4020. font-size:14px;
  4021. margin: 0;
  4022. }
  4023. .y{
  4024. width:100%;
  4025. height:100%;
  4026. background-image: url('../../../assets/3d_images/y.png') center 100%;
  4027. }
  4028. .y2{
  4029. background-image: url('../../../assets/3d_images/y2.png');
  4030. }
  4031. body{
  4032. font-family:'微软雅黑'
  4033. }
  4034. .classfelx{
  4035. flex:1;
  4036. }
  4037. .liitem .formLabelWidth8{
  4038. width: 343px;
  4039. }
  4040. .formLabelWidth15{
  4041. width:70px;
  4042. text-align:center;
  4043. }
  4044. </style>
  4045. <style>
  4046. .imge{
  4047. width:25px;
  4048. vertical-align:middle;
  4049. }
  4050. </style>