/* * fea_workflow_unsolved.java */ import com.comsol.model.*; import com.comsol.model.util.*; /** Model exported on Aug 12 2019, 17:57 by COMSOL 5.3.1.348. */ public class fea_workflow_unsolved { public static Model run() { Model model = ModelUtil.create("Model"); model.modelPath("C:\\Users\\Ron\\Documents\\Columbia\\Altair\\Comsol_automation_files"); model.component().create("comp1", true); model.component("comp1").geom().create("geom1", 3); model.component("comp1").mesh().create("mesh1"); model.component("comp1").geom("geom1").create("imp1", "Import"); model.component("comp1").geom("geom1").feature("imp1") .set("filename", "C:\\Users\\Ron\\Downloads\\beam_test.stl"); model.component("comp1").geom("geom1").feature("imp1").set("simplifymesh", false); model.component().create("mcomp1", "MeshComponent"); model.geom().create("mgeom1", 3); model.mesh().create("mpart1", "mgeom1"); model.component("comp1").geom("geom1").feature("imp1").set("mesh", "mpart1"); model.mesh("mpart1").create("imp1", "Import"); model.mesh("mpart1").feature("imp1").set("filename", "C:\\Users\\Ron\\Downloads\\beam_test.stl"); model.component("comp1").geom("geom1").feature("imp1").set("meshfilename", ""); model.mesh("mpart1").run(); model.component("comp1").geom("geom1").runPre("fin"); model.component("comp1").material().create("mat1", "Common"); model.component("comp1").material("mat1").label("Aluminum"); model.component("comp1").material("mat1").set("family", "aluminum"); model.component("comp1").material("mat1").propertyGroup("def").set("relpermeability", "1"); model.component("comp1").material("mat1").propertyGroup("def").set("heatcapacity", "900[J/(kg*K)]"); model.component("comp1").material("mat1").propertyGroup("def").set("thermalconductivity", "238[W/(m*K)]"); model.component("comp1").material("mat1").propertyGroup("def").set("electricconductivity", "3.774e7[S/m]"); model.component("comp1").material("mat1").propertyGroup("def").set("relpermittivity", "1"); model.component("comp1").material("mat1").propertyGroup("def").set("thermalexpansioncoefficient", "23e-6[1/K]"); model.component("comp1").material("mat1").propertyGroup("def").set("density", "2700[kg/m^3]"); model.component("comp1").material("mat1").propertyGroup().create("Enu", "Young's modulus and Poisson's ratio"); model.component("comp1").material("mat1").propertyGroup("Enu").set("poissonsratio", "0.33"); model.component("comp1").material("mat1").propertyGroup("Enu").set("youngsmodulus", "70e9[Pa]"); model.component("comp1").material("mat1").propertyGroup().create("Murnaghan", "Murnaghan"); model.component("comp1").material("mat1").propertyGroup("Murnaghan").set("n", "-3.5e11[Pa]"); model.component("comp1").material("mat1").propertyGroup("Murnaghan").set("m", "-3.3e11[Pa]"); model.component("comp1").material("mat1").propertyGroup("Murnaghan").set("l", "-2.5e11[Pa]"); model.component("comp1").material("mat1").propertyGroup().create("Lame", "Lam\u00e9 parameters"); model.component("comp1").material("mat1").propertyGroup("Lame").set("muLame", "2.6e10[Pa]"); model.component("comp1").material("mat1").propertyGroup("Lame").set("lambLame", "5.1e10[Pa]"); model.component("comp1").material("mat1").set("family", "aluminum"); model.component("comp1").geom("geom1").run(); model.component("comp1").physics().create("solid", "SolidMechanics", "geom1"); model.component("comp1").physics("solid").create("fix1", "Fixed", 2); model.component("comp1").physics("solid").feature("fix1").selection().set(new int[]{3}); model.component("comp1").physics("solid").create("bndl1", "BoundaryLoad", 2); model.component("comp1").physics("solid").feature("bndl1").selection().set(new int[]{4}); model.component("comp1").mesh("mesh1").run(); model.study().create("std1"); model.study("std1").create("stat", "Stationary"); model.study("std1").feature("stat").activate("solid", true); model.sol().create("sol1"); model.sol("sol1").study("std1"); model.study("std1").feature("stat").set("notlistsolnum", 1); model.study("std1").feature("stat").set("notsolnum", "1"); model.study("std1").feature("stat").set("listsolnum", 1); model.study("std1").feature("stat").set("solnum", "1"); model.sol("sol1").create("st1", "StudyStep"); model.sol("sol1").feature("st1").set("study", "std1"); model.sol("sol1").feature("st1").set("studystep", "stat"); model.sol("sol1").create("v1", "Variables"); model.sol("sol1").feature("v1").set("control", "stat"); model.sol("sol1").create("s1", "Stationary"); model.sol("sol1").feature("s1").create("fc1", "FullyCoupled"); model.sol("sol1").feature("s1").feature("fc1").set("termonres", "auto"); model.sol("sol1").feature("s1").feature("fc1").set("reserrfact", 1000); model.sol("sol1").feature("s1").create("d1", "Direct"); model.sol("sol1").feature("s1").feature("d1").set("linsolver", "mumps"); model.sol("sol1").feature("s1").feature("d1").label("Suggested Direct Solver (solid)"); model.sol("sol1").feature("s1").create("i1", "Iterative"); model.sol("sol1").feature("s1").feature("i1").set("linsolver", "gmres"); model.sol("sol1").feature("s1").feature("i1").set("rhob", 400); model.sol("sol1").feature("s1").feature("i1").set("nlinnormuse", true); model.sol("sol1").feature("s1").feature("i1").label("Suggested Iterative Solver (solid)"); model.sol("sol1").feature("s1").feature("i1").create("mg1", "Multigrid"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").set("prefun", "gmg"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("pr").create("so1", "SOR"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("pr").feature("so1").set("relax", 0.8); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("po").create("so1", "SOR"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("po").feature("so1").set("relax", 0.8); model.sol("sol1").feature("s1").feature("fc1").set("linsolver", "d1"); model.sol("sol1").feature("s1").feature("fc1").set("termonres", "auto"); model.sol("sol1").feature("s1").feature("fc1").set("reserrfact", 1000); model.sol("sol1").feature("s1").feature().remove("fcDef"); model.sol("sol1").attach("std1"); model.result().create("pg1", "PlotGroup3D"); model.result("pg1").set("data", "dset1"); model.result("pg1").create("surf1", "Surface"); model.result("pg1").feature("surf1").set("expr", new String[]{"solid.mises"}); model.result("pg1").label("Stress (solid)"); model.result("pg1").feature("surf1").set("colortable", "RainbowLight"); model.result("pg1").feature("surf1").set("resolution", "normal"); model.result("pg1").feature("surf1").create("def", "Deform"); model.result("pg1").feature("surf1").feature("def").set("expr", new String[]{"u", "v", "w"}); model.result("pg1").feature("surf1").feature("def").set("descr", "Displacement field"); model.sol("sol1").runAll(); model.result("pg1").run(); model.component("comp1").physics("solid").feature("bndl1").set("FperArea", new int[]{10000, 0, 0}); model.sol("sol1").study("std1"); model.study("std1").feature("stat").set("notlistsolnum", 1); model.study("std1").feature("stat").set("notsolnum", "1"); model.study("std1").feature("stat").set("listsolnum", 1); model.study("std1").feature("stat").set("solnum", "1"); model.sol("sol1").feature().remove("s1"); model.sol("sol1").feature().remove("v1"); model.sol("sol1").feature().remove("st1"); model.sol("sol1").create("st1", "StudyStep"); model.sol("sol1").feature("st1").set("study", "std1"); model.sol("sol1").feature("st1").set("studystep", "stat"); model.sol("sol1").create("v1", "Variables"); model.sol("sol1").feature("v1").set("control", "stat"); model.sol("sol1").create("s1", "Stationary"); model.sol("sol1").feature("s1").create("fc1", "FullyCoupled"); model.sol("sol1").feature("s1").feature("fc1").set("termonres", "auto"); model.sol("sol1").feature("s1").feature("fc1").set("reserrfact", 1000); model.sol("sol1").feature("s1").create("d1", "Direct"); model.sol("sol1").feature("s1").feature("d1").set("linsolver", "mumps"); model.sol("sol1").feature("s1").feature("d1").label("Suggested Direct Solver (solid)"); model.sol("sol1").feature("s1").create("i1", "Iterative"); model.sol("sol1").feature("s1").feature("i1").set("linsolver", "gmres"); model.sol("sol1").feature("s1").feature("i1").set("rhob", 400); model.sol("sol1").feature("s1").feature("i1").set("nlinnormuse", true); model.sol("sol1").feature("s1").feature("i1").label("Suggested Iterative Solver (solid)"); model.sol("sol1").feature("s1").feature("i1").create("mg1", "Multigrid"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").set("prefun", "gmg"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("pr").create("so1", "SOR"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("pr").feature("so1").set("relax", 0.8); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("po").create("so1", "SOR"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("po").feature("so1").set("relax", 0.8); model.sol("sol1").feature("s1").feature("fc1").set("linsolver", "d1"); model.sol("sol1").feature("s1").feature("fc1").set("termonres", "auto"); model.sol("sol1").feature("s1").feature("fc1").set("reserrfact", 1000); model.sol("sol1").feature("s1").feature().remove("fcDef"); model.sol("sol1").attach("std1"); model.sol("sol1").runAll(); model.result("pg1").run(); model.result().numerical().create("max1", "MaxLine"); model.result().numerical("max1").selection().set(new int[]{1}); model.result().numerical("max1").set("expr", new String[]{"u"}); model.result().numerical("max1").set("descr", new String[]{"Displacement field, X component"}); model.result().table().create("tbl1", "Table"); model.result().table("tbl1").comments("Line Maximum 1 (u)"); model.result().numerical("max1").set("table", "tbl1"); model.result().numerical("max1").setResult(); model.component("comp1").geom("geom1").feature("imp1").set("type", "file"); model.component("comp1").geom("geom1").feature("imp1").importData(); model.component("comp1").geom("geom1").run(); model.sol("sol1").study("std1"); model.study("std1").feature("stat").set("notlistsolnum", 1); model.study("std1").feature("stat").set("notsolnum", "1"); model.study("std1").feature("stat").set("listsolnum", 1); model.study("std1").feature("stat").set("solnum", "1"); model.sol("sol1").feature().remove("s1"); model.sol("sol1").feature().remove("v1"); model.sol("sol1").feature().remove("st1"); model.sol("sol1").create("st1", "StudyStep"); model.sol("sol1").feature("st1").set("study", "std1"); model.sol("sol1").feature("st1").set("studystep", "stat"); model.sol("sol1").create("v1", "Variables"); model.sol("sol1").feature("v1").set("control", "stat"); model.sol("sol1").create("s1", "Stationary"); model.sol("sol1").feature("s1").create("fc1", "FullyCoupled"); model.sol("sol1").feature("s1").feature("fc1").set("termonres", "auto"); model.sol("sol1").feature("s1").feature("fc1").set("reserrfact", 1000); model.sol("sol1").feature("s1").create("d1", "Direct"); model.sol("sol1").feature("s1").feature("d1").set("linsolver", "mumps"); model.sol("sol1").feature("s1").feature("d1").label("Suggested Direct Solver (solid)"); model.sol("sol1").feature("s1").create("i1", "Iterative"); model.sol("sol1").feature("s1").feature("i1").set("linsolver", "gmres"); model.sol("sol1").feature("s1").feature("i1").set("rhob", 400); model.sol("sol1").feature("s1").feature("i1").set("nlinnormuse", true); model.sol("sol1").feature("s1").feature("i1").label("Suggested Iterative Solver (solid)"); model.sol("sol1").feature("s1").feature("i1").create("mg1", "Multigrid"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").set("prefun", "gmg"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("pr").create("so1", "SOR"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("pr").feature("so1").set("relax", 0.8); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("po").create("so1", "SOR"); model.sol("sol1").feature("s1").feature("i1").feature("mg1").feature("po").feature("so1").set("relax", 0.8); model.sol("sol1").feature("s1").feature("fc1").set("linsolver", "d1"); model.sol("sol1").feature("s1").feature("fc1").set("termonres", "auto"); model.sol("sol1").feature("s1").feature("fc1").set("reserrfact", 1000); model.sol("sol1").feature("s1").feature().remove("fcDef"); model.sol("sol1").attach("std1"); model.sol("sol1").runAll(); model.result("pg1").run(); model.label("fea_workflow.mph"); model.result("pg1").run(); return model; } public static void main(String[] args) { run(); } }