Commit 61d2716f authored by Asutosh Padhy's avatar Asutosh Padhy
Browse files

Sme - Initial austenite phase and Mart with initial martensite phase, division...

Sme - Initial austenite phase and Mart with initial martensite phase, division made to check shape memory effect
parent eb532a08
Loading
Loading
Loading
Loading
−29 B (17 KiB)

File changed.

No diff preview for this file type.

+385 B (18.5 KiB)

File changed.

No diff preview for this file type.

+3 −3
Original line number Diff line number Diff line
@@ -17,11 +17,11 @@ public class Lag {
          model.param().set("t5", "0.56[s]");
          model.param().set("dt", "0.001 [s]");

          model.param().set("T_ref", "325[K]", "Applied Temperature");
          model.param().set("T_ref", "350[K]", "Applied Temperature");
          model.param().set("para", "0", "Continuation paramater");
          model.param().set("width", "15.1[mm]", "Length");
          model.param().set("height", "1.67[mm]", "width");
          model.param().set("alpha", "0");

          model.param().set("d", "0.034[mm]", "thickness");
          model.param().set("maxdisp", "0.85 [mm]", "Strain dependent");

@@ -349,7 +349,7 @@ public class Lag {
          model.result("pg2").feature("glob2").set("data", "dset1");
          model.result("pg2").feature("glob2").setIndex("expr", "aveop1(solid.mises)", 0);
          model.result("pg2").feature("glob2").set("xdata", "expr");
          model.result("pg2").feature("glob2").set("xdataexpr", "comp1.T");
          model.result("pg2").feature("glob2").set("xdataexpr", "aveop1(T)");
          model.result("pg2").run();         
          
          return model;
+58 −29
Original line number Diff line number Diff line
@@ -10,20 +10,22 @@ public class Lag_sme{
          model.label("Lag_sme.mph");
// Global Definitions block

          model.param().set("t1", "0.01 [s]");
          model.param().set("t2", "0.19 [s]");
          model.param().set("t3", "0.38 [s]");
          model.param().set("t4", "0.55 [s]");
          model.param().set("t5", "0.56[s]");
          model.param().set("t1", "0.01 [s]"); // Ramping starts
          model.param().set("t2", "0.25 [s]"); // Saturation 
          model.param().set("t3", "0.5 [s]"); // Reduction
          model.param().set("t4", "0.75 [s]"); // Temperature increase and load set to zero
          model.param().set("t5", "5.0 [s]");
                   
          model.param().set("dt", "0.001 [s]");

          model.param().set("T_ref", "305[K]", "Applied Temperature");
          model.param().set("para", "0", "Continuation paramater");
          model.param().set("width", "15.1[mm]", "Length");
          model.param().set("height", "1.67[mm]", "width");
          model.param().set("alpha", "0");
          model.param().set("d", "0.034[mm]", "thickness");
          model.param().set("maxdisp", "0.85 [mm]", "Strain dependent");
          model.param().set("T_ref", "295[K]", "Applied Temperature");
          model.param().set("T_rec", "350[K]", "Recovery Temperature");
          
          model.param().set("width", "15[mm]", "Length");
          model.param().set("height", "1.5[mm]", "width");

          model.param().set("d", "0.030[mm]", "thickness");
          model.param().set("maxload", "4e8 [Pa]", "Max pressure on edge");

          model.param().set("p_ratio", "0.33", "Poissonsratio");
          model.param().set("rho_", "6500", "Density");
@@ -55,11 +57,26 @@ public class Lag_sme{
          model.func("pw1")
          .set("pieces", new String[][]{
              {"0", "t1", "1e-8"},
              {"t1", "t2", "maxdisp/(t2-t1)*(t-t1)"},
              {"t2", "t3", "maxdisp"},
              {"t3", "t4", "maxdisp/(t3-t4)*(t-t4)"},
              {"t1", "t2", "maxload/(t2-t1)*(t-t1)"},
              {"t2", "t3", "maxload"},
              {"t3", "t4", "maxload/(t3-t4)*(t-t4)"},
              {"t4", "t5", "1e-8"}});
          
// Function temperature interpolation
          model.func().create("pw2", "Piecewise");
          model.func("pw2").label("pw2");
          model.func("pw2").set("arg", "t");
          model.func("pw2").set("smooth", "contd2");
          model.func("pw2").set("smoothzone", "0.001");
          model.func("pw2")
          .set("pieces", new String[][]{
              {"0", "t1", "T_ref"},
              {"t1", "t2", "T_ref"},
              {"t2", "t3", "T_ref"},
              {"t3", "t4", "T_ref"},
              {"t4", "t5", "((T_rec-T_ref)/(t5-t4))*(t-t4)+T_ref"}});
          
          
// Function Random normal distribution

          model.func().create("rn1", "Random");
@@ -218,7 +235,8 @@ public class Lag_sme{

          // sma1
          model.component("comp1").physics("solid").create("sma1", "ShapeMemoryAlloy", 2);
          model.component("comp1").physics("solid").feature("sma1").set("minput_temperature_src", "root.comp1.T");
          model.component("comp1").physics("solid").feature("sma1").set("minput_temperature_src", "userdef");
          model.component("comp1").physics("solid").feature("sma1").set("minput_temperature", "pw2(t)");
          model.component("comp1").physics("solid").feature("sma1").selection().set(1);

          model.component("comp1").physics("solid").feature("sma1").set("ShapeMemoryAlloyModel", "Lagoudas");
@@ -238,6 +256,8 @@ public class Lag_sme{
          model.component("comp1").physics("solid").feature("sma1").set("xi0", "xi_0");

          model.component("comp1").physics("solid").feature("sma1").set("TransformationFunction", "Quadratic");
//          model.component("comp1").physics("solid").feature("sma1").feature("trdir1")
//          .set("TransformationDirectionType", "Automatic");
          model.component("comp1").physics("solid").feature("sma1").set("TransformationDirectionType", "UserDefined");
          model.component("comp1").physics("solid").feature("sma1").set("trdir", "if(t<t3,1,-1)");

@@ -259,13 +279,19 @@ public class Lag_sme{
          model.component("comp1").physics("solid").feature("disp1").setIndex("Direction", true, 1);


          // disp2
          model.component("comp1").physics("solid").create("disp2", "Displacement1", 1);
          model.component("comp1").physics("solid").feature("disp2").selection().set(4);
//          // disp2
//          model.component("comp1").physics("solid").create("disp2", "Displacement1", 1);
//          model.component("comp1").physics("solid").feature("disp2").selection().set(4);
//
//          model.component("comp1").physics("solid").feature("disp2").setIndex("Direction", true, 0);
//          model.component("comp1").physics("solid").feature("disp2").setIndex("Direction", true, 1);
//          model.component("comp1").physics("solid").feature("disp2").setIndex("U0", "pw1(t)", 0);

          // Boundary load
          model.component("comp1").physics("solid").create("bndl1", "BoundaryLoad", 1);
          model.component("comp1").physics("solid").feature("bndl1").selection().set(4);
          model.component("comp1").physics("solid").feature("bndl1").set("FperArea", new String[]{"pw1(t)", "0", "0"});
          
          model.component("comp1").physics("solid").feature("disp2").setIndex("Direction", true, 0);
          model.component("comp1").physics("solid").feature("disp2").setIndex("Direction", true, 1);
          model.component("comp1").physics("solid").feature("disp2").setIndex("U0", "pw1(t)", 0);
          

          //free2
@@ -275,7 +301,7 @@ public class Lag_sme{

          // Displacements activated
          model.component("comp1").physics("solid").feature("disp1").active(true);
          model.component("comp1").physics("solid").feature("disp2").active(true);
//          model.component("comp1").physics("solid").feature("disp2").active(true);

          // Total power dissipation density Heat transfer in Solids
          model.component("comp1").physics("ht").feature("hs1").set("Q0_src", "root.comp1.solid.Qh");
@@ -295,7 +321,6 @@ public class Lag_sme{
          model.study("std1").feature("time").set("tlist", "range(0,dt,t5)");
          model.study("std1").feature("time").set("usertol", true);
          model.study("std1").feature("time").set("plot", true);

          model.study("std1").feature("time").set("useadvanceddisable", true);
          model.study("std1").feature("time").activate("solid", true);

@@ -310,7 +335,7 @@ public class Lag_sme{

          // Dependent variables v1
          model.sol("sol1").feature("v1").set("resscalemethod", "auto");
          model.sol("sol1").feature("v1").set("clist", new String[]{"range(0,dt,t5)", "0.0017[s]"});
          model.sol("sol1").feature("v1").set("clist", new String[]{"range(0,dt,t5)", "0.002[s]"});

          // Time dependent solver t1
          model.sol("sol1").feature("t1").set("control", "user");
@@ -386,7 +411,11 @@ public class Lag_sme{
          model.result("pg2").feature("glob2").set("data", "dset1");
          model.result("pg2").feature("glob2").setIndex("expr", "aveop1(solid.mises)", 0);
          model.result("pg2").feature("glob2").set("xdata", "expr");
          model.result("pg2").feature("glob2").set("xdataexpr", "comp1.T");
          model.result("pg2").feature("glob2").set("xdataexpr", "aveop1(T)");
          model.result("pg2").run();

          model.sol("sol1").feature("t1").set("plotgroup", "pg2");
          model.result("pg2").feature("glob2").active(false);
          model.result("pg2").run();
          
          return model;
+427 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading