liuqiao %!s(int64=2) %!d(string=hai) anos
pai
achega
4a1915cef6
Modificáronse 3 ficheiros con 118 adicións e 61 borrados
  1. 80 45
      src/views/index/FEMLab/fem.vue
  2. 8 4
      src/views/index/HCFDLab/index.vue
  3. 30 12
      src/views/index/index.vue

+ 80 - 45
src/views/index/FEMLab/fem.vue

@@ -131,6 +131,12 @@
             </div>
             </div>
                </div>
+                <div class="listitem lbg_color3 bkcolor3"   v-for="(item,index) in fexkz7"  :key="'five6-'+ index" :class="{activeOrange:active=='five6-'+ index}" @click="clickgeometry($event,index,'five6-'+ index)" >
+             <div class="item2 "   >
+                 <el-image :src="item.icon" fit="cover" />  
+                   <span >{{item.titlie}}</span>
+            </div>
+            </div>
             </div>
          
           </el-tab-pane>
@@ -210,7 +216,7 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button  @click="dialog.fem_upload = false">{{ $t("HCFD.file.cancel")}}</el-button>
-        <el-button type="primary" @click="runugrid();dialog.fem_upload = false"
+        <el-button type="primary" @click="dialog.fem_upload = false"
           >{{ $t("HCFD.file.ok")}}</el-button
         >
       </div>
@@ -942,7 +948,7 @@
   <div class="selecr">
       <el-form>
        <el-form-item label="分析类型" :label-width="formLabelWidth2">
-      <el-select  @change="changest" v-model="bxval"  placeholder="请选择">
+      <el-select  @change="changestleixing" v-model="bxval"  placeholder="请选择">
     <el-option
       v-for="item in bxlist"
       :key="item.value"
@@ -1092,14 +1098,27 @@
           <el-radio label="1">关</el-radio>
         </el-radio-group>
    </el-form-item>
+     <div class="line">
+      <div class="linetext">方法</div>
+    </div> 
+    <el-radio-group
+                          v-model="parameterObj.eigv_method.value"
+                        >
+                          <el-radio label="1">{{
+                            $t("FEM.solution.inverse")
+                          }}</el-radio>
+                          <el-radio label="2">{{
+                            $t("FEM.solution.lanczos")
+                          }}</el-radio>
+                        </el-radio-group>
     <div class="line">
       <div class="linetext">输出控制</div>
     </div> 
             <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
       <el-input v-model="form.name" autocomplete="off"></el-input>
     </el-form-item>
-    <el-checkbox v-model="parameterObj.dump_stiff.value"  true-label="true" false-label="false">刚度矩阵</el-checkbox>
-    <el-checkbox v-model="parameterObj.dump_mass.value"  true-label="true" false-label="false" >节点应变</el-checkbox>
+    <el-checkbox v-model="parameterObj.dump_stiff.value"  true-label="true" false-label="false">刚度矩阵输出</el-checkbox>
+    <el-checkbox v-model="parameterObj.dump_mass.value"  true-label="true" false-label="false" >质量矩阵输出</el-checkbox>
       </el-form>
   </div>
       <div slot="footer" class="dialog-footer">
@@ -1161,7 +1180,7 @@
       <div class="linetext">属性</div>
     </div> 
   <el-form-item label="求解方法" :label-width="formLabelWidth5">
-      <el-select  @change="changest" v-model="jliaval3"  placeholder="请选择">
+      <el-select  @change="changest" v-model="parameterObj.f_transient.value"  placeholder="请选择">
     <el-option
       v-for="item in jlialist3"
       :key="item.value"
@@ -1180,6 +1199,9 @@
          <div class="line">
       <div class="linetext">分析步控制</div>
     </div> 
+      <el-form-item :label="$t('FEM.solution.caseNum')" :label-width="formLabelWidth5">
+            <el-input v-model="parameterObj.sid.value"></el-input>
+          </el-form-item>
     <el-form-item label="总时间" :label-width="formLabelWidth5">
       <el-input v-model="parameterObj.num_steps.value" autocomplete="off"></el-input>
     </el-form-item>
@@ -1204,11 +1226,11 @@
       <div class="linetext">输出控制</div>
     </div> 
             <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
-      <el-input v-model="parameterObj.result_file.value" autocomplete="off"></el-input>
+      <el-input v-model="parameterObj.result_file.value" disabled autocomplete="off"></el-input>
     </el-form-item>
-    <el-checkbox  v-model="parameterObj.dump_stiff.value"  true-label="true" false-label="false">刚度矩阵</el-checkbox>
-    <el-checkbox  v-model="parameterObj.strain_o.value"  true-label="true" false-label="false">节点应变</el-checkbox>
-        <el-checkbox v-model="parameterObj.dump_mass.value"  true-label="true" false-label="false">质量矩阵</el-checkbox>
+    <el-checkbox  v-model="parameterObj.dump_stiff.value"  true-label="true" false-label="false">刚度矩阵输出</el-checkbox>
+    <el-checkbox  v-model="parameterObj.strain_o.value"  true-label="true" false-label="false">节点压力输出</el-checkbox>
+        <el-checkbox v-model="parameterObj.dump_mass.value"  true-label="true" false-label="false">质量矩阵输出</el-checkbox>
       </el-form>
   </div>
       <div slot="footer" class="dialog-footer">
@@ -1964,16 +1986,18 @@ import p15 from '@/assets/icon/result_slice.png'
 import p16 from '@/assets/icon/result_stream.png'
 import p17 from '@/assets/icon/animation.png'
 import p18 from '@/assets/icon/result_curve.png'
+import p19 from '@/assets/hcfd_images/run.png'
 
 export default {
     components:{geometry,meshindex,result,toolindex,filesload,vueUploader,Addtabs},
     props:{
     femnum:String,
-    Logs:String,
+    logs:String,
+    pid:String,
     },
   data() {
     return {
-      p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,
+      p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,
         isVolume:"",
         outlineobj:{
        scalarName:'',
@@ -2078,9 +2102,9 @@ export default {
           dump_mass: {key: 'dump_mass', order: '1', value: 'true'},
           dump_stiff: {key: 'dump_stiff', order: '1', value: 'true'},
           eigenv: {key: 'eigenv', order: '3', value: 'false'},
-          eigv_method: {key: 'eigv_method', order: '1', value: null},
-          f_static: {key: 'static', order: '3', value: 'false'},
-          f_transient: {key: 'transient', order: '1', value: ''},
+          eigv_method: {key: 'eigv_method', order: '1', value: 'false'},
+          f_static: {key: 'static', order: '3', value: 'true'},
+          f_transient: {key: 'transient', order: '1', value: '1'},
           freq: {key: 'freq', order: '1', value: ''},
           gam_newmark: {key: 'gam_newmark', order: '2', value: null},
           mesh_inp: {key: 'mesh_inp', order: '3', value: null},
@@ -2092,6 +2116,7 @@ export default {
           solver: {key: 'solver', order: '1', value: ''},
           sort: {key: 'sort', order: '1', value: ''},
           strain_o: {key: 'strain_o', order: '1', value: 'false'},
+          dynamic: {key: 'dynamic', order: '1', value: 'true'}
         // solution: {
         //   f_static: "true",
         //   solver: "",
@@ -2262,6 +2287,9 @@ export default {
         ],
       fexkz6:[
             { icon:shx28, titlie:'创建分析'},
+        ],
+         fexkz7:[
+            { icon:p19, titlie:'运行'},
         ],
         jhlist:[
              {value:'0',name:'节点集合'},
@@ -2346,7 +2374,7 @@ export default {
                {value:'1',name:'HHT'},
                 {value:'2',name:'Direct'},
         ],
-        jliaval3:'0',
+       
             jlialist4:[
                {value:'0',name:'1'},
                {value:'1',name:'2'},
@@ -2379,8 +2407,8 @@ this.init();
   methods:{
        init() {
       //this.project.projectId = this.pid; //获取url 参数
-      this.pid='342e86b234af41a0bca0b9adeef0120d'
       this.project.projectId = this.pid;
+      console.log(this.project.projectId);
       this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
     },
       handfiles(file) {
@@ -2390,6 +2418,24 @@ this.init();
      upDisOk(){
       this.disOK=false
       // this.loadObjs[1].state=1
+    },
+    changestleixing(val){
+      console.log(val);
+     if(val=='0'){
+       this.parameterObj.f_static.value=true;
+     }else{
+       this.parameterObj.f_static.value=false;
+     }
+     if(val=="1"){
+            this.parameterObj.eigenv.value=true;
+     }else{
+        this.parameterObj.eigenv.value=false;
+     }
+     if(val=='2'){
+       this.parameterObj.dynamic.value=true; 
+     }else{
+        this.parameterObj.dynamic.value=false;
+     }
     },
       //load状态回调
     fileLoadeState(files) {
@@ -2410,14 +2456,21 @@ this.init();
     femchange(obj,solverConfigid){
          console.log(  this.parameterObj);
        this.parameterObj = JSON.parse(obj);//JSON.parse(obj);
-    
       sessionStorage.setItem("res", obj);
       this.femsolverConfigid=solverConfigid;
+      console.log(this.femsolverConfigid);
+      if(this.parameterObj.f_static.value==true){
+        this.bxval='0';
+      }else if(this.parameterObj.eigenv.value=true){
+          this.bxval='1';
+      }else if(this.parameterObj.dynamic.value=true){
+        this.bxval='2';
+      }
+      
     },
        async femRun() {
       //更新参数,求解,抓取日志
       await this.femparam();
-      await this.femExe();
       // this.getLogs();
     },
     //更新参数配置
@@ -2428,7 +2481,7 @@ femparam(){
         solverConfigid:this.femsolverConfigid,
         parameterObj: JSON.stringify(this.parameterObj),
         }
-        
+ 
         request(params)
           .then((res) => { 
           Message({
@@ -2456,7 +2509,7 @@ femparam(){
             MessageBox.confirm("你还未分配资源?", "提示", {
               confirmButtonText: "分配资源",
               cancelButtonText: "取消",
-              type: "warning",
+              type: "warning",  
             })
               .then(() => {
                 let errUril =
@@ -2587,7 +2640,11 @@ this.styX.left=e.clientX+'px';
       break; 
       case 'six4-0':
           this.dialog.an_Animation=true;
-      break; 
+      break;
+       case 'five6-0':
+        this.femExe();
+      break 
+    
   }
 
   },
@@ -2675,9 +2732,7 @@ this.styX.left=e.clientX+'px';
           console.log(params);
           request(params)
             .then((res) => {
-            console.log(11111);
             console.log(res);
-            console.log(22222)
            
             })
             .catch((err) => {
@@ -2768,29 +2823,9 @@ this.styX.left=e.clientX+'px';
       console.log(e);
       //数据接收
    try{
-            const redata = JSON.parse(e.data);
-            console.log(redata);
-            if(typeof redata==='object'&& redata){
+         const redata = JSON.parse(e.data);
               if(redata.type == "log"){
-               // this.$emit('getthislog',redata.stats+redata.value);
-              }
-            if (redata.type == "iter") {
-       
-              // this.convergeDateLoad(redata.value);
-               //获取运行多少步了
-                const lines = redata.value;
-                 var patiter = /^ iter /;
-                  if (patiter.exec(lines) !== null) {
-              const onelines = kgReplace(lines.trim()).split(" ")
-                .map((str) => str.trim());
-              this.s1= onelines.slice(1,2).map((str) => Number(str));
-               console.log(this.s1);
-          
-            }
-               this.timedata(redata.startTime,redata.time,this.s1[0]);
-             
-            
-            }
+                this.$emit('getthislog',redata.stats+redata.value);
               }
             }catch(error){
                 return false;

+ 8 - 4
src/views/index/HCFDLab/index.vue

@@ -2280,11 +2280,11 @@
           <el-form-item label="方向" :label-width="formLabelWidth5">
       <el-select 
                   size="mini"
-                  v-model="vectorobj.dataU"
+                  v-model="direval"
                   placeholder="select boundary"
                 >
                    <el-option
-                            v-for="scalar in vectorobj.dataUarr"
+                            v-for="scalar in directionlist"
                             :key="scalar"
                             :label="scalar"
                             :value="scalar"
@@ -2298,11 +2298,11 @@
           <el-form-item label="StreamStyle" :label-width="formLabelWidth5">
       <el-select 
                   size="mini"
-                  v-model="vectorobj.dataU"
+                  v-model="strsval"
                   placeholder="select boundary"
                 >
                    <el-option
-                            v-for="scalar in vectorobj.dataUarr"
+                            v-for="scalar in streamstylelist"
                             :key="scalar"
                             :label="scalar"
                             :value="scalar"
@@ -3140,6 +3140,10 @@ export default {
              {value:'0',name:'平动'},
             {value:'1',name:'转动'},
           ],
+          directionlist:['both','forward','backward'],
+          direval:"both",
+          streamstylelist:['Line','Ribbon','Tube'],
+          strsval:"line",
           ydval2:'0',
             ydlist3:[
              {value:'0',name:'匀速'},

+ 30 - 12
src/views/index/index.vue

@@ -10,7 +10,7 @@
         <hcfd ref="hcfd" :objopp="objopp" :ytdata="ytdata" :vectorparam="vectorparam" :pid="pid" @fun="fun()" @changelines="changelines()" @linezhexian="linezhexian()" :elodingfalse="elodingfalse" @exlodingfalse="exlodingfalse" :femnum="femnum"></hcfd>
         </div>
           <div v-else-if="value2=='FEMLab(结构力学)'">
-        <fem ref="fem" :femnum="femnum" :logs='logs' :pid="pid"></fem>
+        <fem ref="fem" :femnum="femnum" :logs='logs' @getthislog='getthislog' :pid="pid"></fem>
         </div>
         <div v-else-if="value2=='FEMLab(结构力学)版本2'">
         <fem2 ref="fem2" :femnum="femnum" :logs='logs' :pid="pid" ></fem2>
@@ -484,10 +484,12 @@ linezhexian(num){
         sessionStorage.setItem('params',JSON.stringify(params))
         request(params)
           .then((res) => { 
+            if(res.returnCode=='000000000'){
         this.objopp=res.parameterObj;
         let datas=res;
         if(val=='HCFDLab'){
            this.$nextTick(()=>{
+              this.logs='HCFDLab';
           this.$refs.hcfd.hcfdchange(this.objopp,res.solverConfigid,datas);
           this.solverConfigid=res.solverConfigid;
          let data= JSON.parse(this.objopp);
@@ -500,8 +502,8 @@ linezhexian(num){
            })   
         }else if(val=='FEMLab(结构力学)'){
             
-                 console.log(1111)
-              this.$refs.fem.femchange(res.parameterObj,'abc6db6cb2c0482eb7964df6fea02c70');
+             this.logs='FEMLab(结构力学)';
+              this.$refs.fem.femchange(res.parameterObj,res.solverConfigid);
               this.$refs.TFileStream.imgtupian=false;
               this.$refs.monitor.container_show=false;
              this.$nextTick(()=>{
@@ -510,6 +512,9 @@ linezhexian(num){
         }else{
           
         }
+            }else{
+              console.log(2222)
+            }
           })
           .catch((err) => {
           })
@@ -527,21 +532,23 @@ linezhexian(num){
         sessionStorage.setItem('params',JSON.stringify(params))
         request(params)
           .then((res) => { 
+               if(res.returnCode=='000000000'){
           let datas=res;
         this.objopp=res.parameterObj;
-      
         if(val=='HCFDLab'){
            this.$nextTick(()=>{
+            this.logs='HCFDLab'
                this.state=datas.state;
           this.$refs.hcfd.hcfdchange(this.objopp,res.solverConfigid,datas.state);
           this.solverConfigid=res.solverConfigid;
          let data= JSON.parse(this.objopp);
           this.numsteps=data.nmlParam.steps;
-         console.log(this.numsteps);
+          that.$refs.TFileStream.imgtupian=true;
+            that.$refs.monitor.container_show=true;
            })   
         }else if(val=='FEMLab(结构力学)'){
-          console.log(1111)
-              this.$refs.fem.femchange(res.parameterObj,'abc6db6cb2c0482eb7964df6fea02c70');
+            this.logs='FEMLab(结构力学)'
+              this.$refs.fem.femchange(res.parameterObj,res.solverConfigid);
             that.$refs.TFileStream.imgtupian=false;
             that.$refs.monitor.container_show=false;
               
@@ -552,6 +559,9 @@ linezhexian(num){
         }else{
           
         }
+         }else{
+              console.log(2222)
+            }
           })
           .catch((err) => {
           })
@@ -590,8 +600,8 @@ changehcfd(pare){
    this.newlog = log+"\n"+this.newlog;
     this.logs=this.newlog;
      if ( this.logs.indexOf("newSolver end") >= 0) {
-               this.elodingfalse=false;
-                  this.isSolverEnd = true;
+            this.elodingfalse=false;
+            this.isSolverEnd = true;
       }
     },
     // 剩余时间
@@ -625,11 +635,15 @@ let params = {
       this.loading = true;
       request(params)
         .then((res) => {
-            console.log(res);
+              if(res.returnCode=='000000000'){
             this.startimgloaddata(action2)
-           
+              }else{
+
+              }
+
         })
         .catch((err) => {
+           this.loadingend(this.loadingopen());
 
         }); 
   },
@@ -645,8 +659,12 @@ let params = {
       this.loading = true;
       request(params)
         .then((res) => {
+      
+
+
         })
         .catch((err) => {
+           this.loadingend(this.loadingopen());
               
 
         }); 
@@ -670,7 +688,7 @@ let params = {
               this.websock.close() 
       },
       websocketonmessage(e){ //数据接收
-          this.loadingopen();
+           this.loadingopen();
           //  this.$refs.monitor.container_show=true;
 
         try{