package com.miniframe.solverconfig.fem; import com.fasterxml.jackson.core.JsonProcessingException; import com.miniframe.solverconfig.SolverParam; import com.miniframe.tools.XiJsonUtil; import java.util.ArrayList; import java.util.List; public class FEMParam implements SolverParam { /** * 上传文件名称 * "mesh_inp "3" "2.2_flat_dynamicResponse-transient.bdf" */ private FEMElement mesh_inp =new FEMElement("mesh_inp","3",null); /** * Static(静态) * "static "3" "false"/"static "3" "true" */ private FEMElement f_static =new FEMElement("static","3","false"); /** * Stiffness Matrix Output(刚度矩阵输出) * "dump_stiff "1" "true"/“dump_stiff "1" "false" */ private FEMElement dump_stiff =new FEMElement("dump_stiff","1","false"); /** * Mass Matrix Output(质量矩阵输出) * "dump_mass" "1" "true"/"dump_mass“ "1" "false" */ private FEMElement dump_mass =new FEMElement("dump_mass","1","true"); /** * Node Strains Output(节点压力输出) * "strain_o "1" "true"/"strain_o "1" "false" */ private FEMElement strain_o =new FEMElement("strain_o","1","false"); /** * Modes(模式) * "eigenv" "3" "true" */ private FEMElement eigenv =new FEMElement("eigenv","3","false"); /** * Num of Eigenvalue(特征值)5 * "num_eigv" "1" "5" */ private FEMElement num_eigv =new FEMElement("num_eigv","1",null); /** * Method(方法) * Inverse iteration(逆迭代) "eigv_method "1" "1" * Lanczos(兰索斯) "eigv_method "1" "2" */ private FEMElement eigv_method =new FEMElement("eigv_method","1",null); /** * Mass Coupled(质量耦合) * "coupled "1" "1"/"coupled" "1" "0" */ private FEMElement coupled =new FEMElement("coupled","1","0"); /** * C=αM+βK * α alphad "2" "12" * β betad "2" "0.00001" */ private FEMElement alphad =new FEMElement("alphad","2","0.0"); /** * C=αM+βK * α alphad "2" "12" * β betad "2" "0.00001" */ private FEMElement betad =new FEMElement("betad","2","0.00001"); /** * Method(方法) * HHT transient "1" "3" * Newmark(纽马克) transient "1" "2" * δn gam_newmark "2" "0.5" * αn bet_newmark "2" "0.25" * Direct(直接) transient "1" "1" */ private FEMElement f_transient =new FEMElement("transient","1","1"); /** * Method(方法) * HHT transient "1" "3" * Newmark(纽马克) transient "1" "2" * δn gam_newmark "2" "0.5" * αn bet_newmark "2" "0.25" * Direct(直接) transient "1" "1" */ private FEMElement gam_newmark =new FEMElement("gam_newmark","2",null); /** * Method(方法) * HHT transient "1" "3" * Newmark(纽马克) transient "1" "2" * δn gam_newmark "2" "0.5" * αn bet_newmark "2" "0.25" * Direct(直接) transient "1" "1" */ private FEMElement bet_newmark =new FEMElement("bet_newmark","2",null); /** * Step Control(步控制) * Case Num(案例数) "SID" "1" "1" */ private FEMElement sid =new FEMElement("SID","1","1"); /** * Total Time Steps(总时间的步骤) num_steps "1" "2" */ private FEMElement num_steps =new FEMElement("num_steps","1","1"); /** * Time Step(sencond)(时间步) dt_str "2" "0.25" */ private FEMElement dt_str =new FEMElement("dt_str","2","0.0"); /** * Output Interval(输出时间间隔) freq "1" "3" */ private FEMElement freq =new FEMElement("freq","1","1"); /** * Output Format (输出格式) * 1 sort "1" "1" * 2 sort "1" "2" */ private FEMElement sort =new FEMElement("sort","1","1"); /** * Nonlinear(非线性) * "nlgeom" "1" "0"/"nlgeom" "1" "1" */ private FEMElement nlgeom =new FEMElement("nlgeom","1","0"); /** * Solver(解算器) * MUMPS Direct Solver(MUMPS 直接解算器) solver "1" "0" * PCG Iterative Solver(PCG迭代解算器) solver "1" "1" * LDL Direct Solver(LDL 直接解算器) solver "1" "2" */ private FEMElement solver =new FEMElement("solver","1","2"); /** * Result FileName(结果文件名) * result_file "3" "2.2_flat_dynamicResponse-transient" */ private FEMElement result_file =new FEMElement("result_file","3",null); public FEMElement getMesh_inp() { return mesh_inp; } public void setMesh_inp(FEMElement mesh_inp) { this.mesh_inp = mesh_inp; } public FEMElement getF_static() { return f_static; } public void setF_static(FEMElement f_static) { this.f_static = f_static; } public FEMElement getDump_stiff() { return dump_stiff; } public void setDump_stiff(FEMElement dump_stiff) { this.dump_stiff = dump_stiff; } public FEMElement getDump_mass() { return dump_mass; } public void setDump_mass(FEMElement dump_mass) { this.dump_mass = dump_mass; } public FEMElement getStrain_o() { return strain_o; } public void setStrain_o(FEMElement strain_o) { this.strain_o = strain_o; } public FEMElement getEigenv() { return eigenv; } public void setEigenv(FEMElement eigenv) { this.eigenv = eigenv; } public FEMElement getNum_eigv() { return num_eigv; } public void setNum_eigv(FEMElement num_eigv) { this.num_eigv = num_eigv; } public FEMElement getEigv_method() { return eigv_method; } public void setEigv_method(FEMElement eigv_method) { this.eigv_method = eigv_method; } public FEMElement getCoupled() { return coupled; } public void setCoupled(FEMElement coupled) { this.coupled = coupled; } public FEMElement getAlphad() { return alphad; } public void setAlphad(FEMElement alphad) { this.alphad = alphad; } public FEMElement getBetad() { return betad; } public void setBetad(FEMElement betad) { this.betad = betad; } public FEMElement getF_transient() { return f_transient; } public void setF_transient(FEMElement f_transient) { this.f_transient = f_transient; } public FEMElement getGam_newmark() { return gam_newmark; } public void setGam_newmark(FEMElement gam_newmark) { this.gam_newmark = gam_newmark; } public FEMElement getBet_newmark() { return bet_newmark; } public void setBet_newmark(FEMElement bet_newmark) { this.bet_newmark = bet_newmark; } public FEMElement getSid() { return sid; } public void setSID(FEMElement sid) { this.sid = sid; } public FEMElement getNum_steps() { return num_steps; } public void setNum_steps(FEMElement num_steps) { this.num_steps = num_steps; } public FEMElement getDt_str() { return dt_str; } public void setDt_str(FEMElement dt_str) { this.dt_str = dt_str; } public FEMElement getFreq() { return freq; } public void setFreq(FEMElement freq) { this.freq = freq; } public FEMElement getSort() { return sort; } public void setSort(FEMElement sort) { this.sort = sort; } public FEMElement getNlgeom() { return nlgeom; } public void setNlgeom(FEMElement nlgeom) { this.nlgeom = nlgeom; } public FEMElement getSolver() { return solver; } public void setSolver(FEMElement solver) { this.solver = solver; } public FEMElement getResult_file() { return result_file; } public void setResult_file(FEMElement result_file) { this.result_file = result_file; } public List showAnalysisWindow() { List analysisList=new ArrayList<>(); if(this.alphad.showAnalysisStr()!=null) analysisList.add(this.alphad.showAnalysisStr()); if(this.bet_newmark.showAnalysisStr()!=null) analysisList.add(this.bet_newmark.showAnalysisStr()); if(this.betad.showAnalysisStr()!=null) analysisList.add(this.betad.showAnalysisStr()); if(this.coupled.showAnalysisStr()!=null) analysisList.add(this.coupled.showAnalysisStr()); if(this.dt_str.showAnalysisStr()!=null) analysisList.add(this.dt_str.showAnalysisStr()); if(this.dump_mass.showAnalysisStr()!=null) analysisList.add(this.dump_mass.showAnalysisStr()); if(this.dump_stiff.showAnalysisStr()!=null) analysisList.add(this.dump_stiff.showAnalysisStr()); if(this.eigenv.showAnalysisStr()!=null) analysisList.add(this.eigenv.showAnalysisStr()); if(this.eigv_method.showAnalysisStr()!=null) analysisList.add(this.eigv_method.showAnalysisStr()); if(this.f_static.showAnalysisStr()!=null) analysisList.add(this.f_static.showAnalysisStr()); if(this.f_transient.showAnalysisStr()!=null) analysisList.add(this.f_transient.showAnalysisStr()); if(this.freq.showAnalysisStr()!=null) analysisList.add(this.freq.showAnalysisStr()); if(this.gam_newmark.showAnalysisStr()!=null) analysisList.add(this.gam_newmark.showAnalysisStr()); if(this.mesh_inp.showAnalysisStr()!=null) analysisList.add(this.mesh_inp.showAnalysisStr()); if(this.nlgeom.showAnalysisStr()!=null) analysisList.add(this.nlgeom.showAnalysisStr()); if(this.num_eigv.showAnalysisStr()!=null) analysisList.add(this.num_eigv.showAnalysisStr()); if(this.num_steps.showAnalysisStr()!=null) analysisList.add(this.num_steps.showAnalysisStr()); if(this.result_file.showAnalysisStr()!=null) analysisList.add(this.result_file.showAnalysisStr()); if(this.sid.showAnalysisStr()!=null) analysisList.add(this.sid.showAnalysisStr()); if(this.solver.showAnalysisStr()!=null) analysisList.add(this.solver.showAnalysisStr()); if(this.sort.showAnalysisStr()!=null) analysisList.add(this.sort.showAnalysisStr()); if(this.strain_o.showAnalysisStr()!=null) analysisList.add(this.strain_o.showAnalysisStr()); return analysisList; } @Override public String paramJson() throws JsonProcessingException { String t = XiJsonUtil.objectToJson(this); return t; } }