From 926a010a2278b22ed4c2f602d72a08d5062dd976 Mon Sep 17 00:00:00 2001
From: Stefan Neukamm <stefan.neukamm@tu-dresden.de>
Date: Thu, 7 Jul 2022 12:04:02 +0200
Subject: [PATCH] results

---
 geometries/material_neukamm.py          |  6 +--
 inputs/cellsolver.parset                |  2 +-
 microstructure_testsuite/plot.py        |  4 +-
 outputs/Results/{ => 2x2}/1/BMatrix.txt |  0
 outputs/Results/{ => 2x2}/1/QMatrix.txt |  0
 outputs/Results/{ => 2x2}/1/output.txt  |  0
 outputs/Results/{ => 2x2}/1/parameter   |  0
 outputs/Results/{ => 2x2}/2/BMatrix.txt |  0
 outputs/Results/{ => 2x2}/2/QMatrix.txt |  0
 outputs/Results/{ => 2x2}/2/output.txt  |  0
 outputs/Results/{ => 2x2}/2/parameter   |  0
 outputs/Results/2x2/3/BMatrix.txt       |  3 ++
 outputs/Results/2x2/3/QMatrix.txt       |  9 ++++
 outputs/Results/2x2/3/output.txt        | 61 +++++++++++++++++++++++++
 outputs/Results/2x2/3/parameter         | 19 ++++++++
 outputs/Results/2x2/4/BMatrix.txt       |  3 ++
 outputs/Results/2x2/4/QMatrix.txt       |  9 ++++
 outputs/Results/2x2/4/output.txt        | 40 ++++++++++++++++
 outputs/Results/2x2/4/parameter         | 19 ++++++++
 outputs/Results/4x4/1/BMatrix.txt       |  3 ++
 outputs/Results/4x4/1/QMatrix.txt       |  9 ++++
 outputs/Results/4x4/1/parameter         | 15 ++++++
 outputs/Results/4x4/2/BMatrix.txt       |  3 ++
 outputs/Results/4x4/2/QMatrix.txt       |  9 ++++
 outputs/Results/4x4/2/parameter         | 15 ++++++
 25 files changed, 223 insertions(+), 6 deletions(-)
 rename outputs/Results/{ => 2x2}/1/BMatrix.txt (100%)
 rename outputs/Results/{ => 2x2}/1/QMatrix.txt (100%)
 rename outputs/Results/{ => 2x2}/1/output.txt (100%)
 rename outputs/Results/{ => 2x2}/1/parameter (100%)
 rename outputs/Results/{ => 2x2}/2/BMatrix.txt (100%)
 rename outputs/Results/{ => 2x2}/2/QMatrix.txt (100%)
 rename outputs/Results/{ => 2x2}/2/output.txt (100%)
 rename outputs/Results/{ => 2x2}/2/parameter (100%)
 create mode 100644 outputs/Results/2x2/3/BMatrix.txt
 create mode 100644 outputs/Results/2x2/3/QMatrix.txt
 create mode 100644 outputs/Results/2x2/3/output.txt
 create mode 100644 outputs/Results/2x2/3/parameter
 create mode 100644 outputs/Results/2x2/4/BMatrix.txt
 create mode 100644 outputs/Results/2x2/4/QMatrix.txt
 create mode 100644 outputs/Results/2x2/4/output.txt
 create mode 100644 outputs/Results/2x2/4/parameter
 create mode 100644 outputs/Results/4x4/1/BMatrix.txt
 create mode 100644 outputs/Results/4x4/1/QMatrix.txt
 create mode 100644 outputs/Results/4x4/1/parameter
 create mode 100644 outputs/Results/4x4/2/BMatrix.txt
 create mode 100644 outputs/Results/4x4/2/QMatrix.txt
 create mode 100644 outputs/Results/4x4/2/parameter

diff --git a/geometries/material_neukamm.py b/geometries/material_neukamm.py
index ae706749..883afefe 100644
--- a/geometries/material_neukamm.py
+++ b/geometries/material_neukamm.py
@@ -6,12 +6,12 @@ import math
 # x[1] : y2-component
 # x[2] : x3-component
 def f(x):
-    theta=0.25
-    factor=0.8
+    theta=0.5
+    factor=.9
     # --- replace with your definition of indicatorFunction:
     if ((abs(x[0]) < theta/2) and x[2]<-1/2+theta):
         return 1    #Phase1
-    elif ((abs(x[1]) < factor*theta/2) and x[2]>1/2-theta):
+    elif ((abs(x[1]) < factor*theta/2) and x[2]>1/2-factor*theta):
         return 1    #Phase1
     else :
         return 0    #Phase2
diff --git a/inputs/cellsolver.parset b/inputs/cellsolver.parset
index e977338d..9e0eb36b 100644
--- a/inputs/cellsolver.parset
+++ b/inputs/cellsolver.parset
@@ -27,7 +27,7 @@ cellDomain=1
 ## {start,finish} computes on all grid from 2^(start) to 2^finish refinement
 #----------------------------------------------------
 
-numLevels=2 2
+numLevels=4 4
 #numLevels =  1 1   # computes all levels from first to second entry
 #numLevels =  2 2   # computes all levels from first to second entry
 #numLevels =  1 3   # computes all levels from first to second entry
diff --git a/microstructure_testsuite/plot.py b/microstructure_testsuite/plot.py
index b05ba650..677a1aaf 100644
--- a/microstructure_testsuite/plot.py
+++ b/microstructure_testsuite/plot.py
@@ -54,7 +54,7 @@ elif case==-1: # Read from outputs
 # 
 
 #    
-length=0.05
+length=2
 N=200
 h=length/N
 E=np.zeros([N,N])
@@ -75,7 +75,7 @@ ax.set_aspect(1)
 ax.set_xticks([-length/4,0,length/4])
 ax.set_yticks([])
 #pcm = plt.pcolor(X,Y,E, norm=colors.LogNorm(vmin=E.min(), vmax=E.max()), cmap='winter', shading='auto')
-pcm = plt.pcolor(X,Y,E, norm=colors.PowerNorm(gamma=0.2), cmap='winter', shading='auto')
+pcm = plt.pcolor(X,Y,E, norm=colors.PowerNorm(gamma=0.3), cmap='winter', shading='auto')
 plt.colorbar(pcm, extend='max')
 #plt.imshow(np.log(E-np.min(E)+0.0001)) # normalize to min = 0 and log scale to emphasize energy landscape
 # TODO: Beschriftung der Axen sollte von [-h*N/2, h*N/2] sein!
diff --git a/outputs/Results/1/BMatrix.txt b/outputs/Results/2x2/1/BMatrix.txt
similarity index 100%
rename from outputs/Results/1/BMatrix.txt
rename to outputs/Results/2x2/1/BMatrix.txt
diff --git a/outputs/Results/1/QMatrix.txt b/outputs/Results/2x2/1/QMatrix.txt
similarity index 100%
rename from outputs/Results/1/QMatrix.txt
rename to outputs/Results/2x2/1/QMatrix.txt
diff --git a/outputs/Results/1/output.txt b/outputs/Results/2x2/1/output.txt
similarity index 100%
rename from outputs/Results/1/output.txt
rename to outputs/Results/2x2/1/output.txt
diff --git a/outputs/Results/1/parameter b/outputs/Results/2x2/1/parameter
similarity index 100%
rename from outputs/Results/1/parameter
rename to outputs/Results/2x2/1/parameter
diff --git a/outputs/Results/2/BMatrix.txt b/outputs/Results/2x2/2/BMatrix.txt
similarity index 100%
rename from outputs/Results/2/BMatrix.txt
rename to outputs/Results/2x2/2/BMatrix.txt
diff --git a/outputs/Results/2/QMatrix.txt b/outputs/Results/2x2/2/QMatrix.txt
similarity index 100%
rename from outputs/Results/2/QMatrix.txt
rename to outputs/Results/2x2/2/QMatrix.txt
diff --git a/outputs/Results/2/output.txt b/outputs/Results/2x2/2/output.txt
similarity index 100%
rename from outputs/Results/2/output.txt
rename to outputs/Results/2x2/2/output.txt
diff --git a/outputs/Results/2/parameter b/outputs/Results/2x2/2/parameter
similarity index 100%
rename from outputs/Results/2/parameter
rename to outputs/Results/2x2/2/parameter
diff --git a/outputs/Results/2x2/3/BMatrix.txt b/outputs/Results/2x2/3/BMatrix.txt
new file mode 100644
index 00000000..0fb3c029
--- /dev/null
+++ b/outputs/Results/2x2/3/BMatrix.txt
@@ -0,0 +1,3 @@
+1 1 -0.0144287202371896055
+1 2 0.014428690223795131
+1 3 -2.0320334857961725e-11
diff --git a/outputs/Results/2x2/3/QMatrix.txt b/outputs/Results/2x2/3/QMatrix.txt
new file mode 100644
index 00000000..9d8813d5
--- /dev/null
+++ b/outputs/Results/2x2/3/QMatrix.txt
@@ -0,0 +1,9 @@
+1 1 12.4813265250416485
+1 2 2.0831795458888962
+1 3 3.83811740666402797e-10
+2 1 2.0831795513179836
+2 2 12.481326525238547
+2 3 1.78942192122814843e-10
+3 1 -6.40561063029264521e-10
+3 2 -1.00945173229121783e-09
+3 3 10.3922965257922275
diff --git a/outputs/Results/2x2/3/output.txt b/outputs/Results/2x2/3/output.txt
new file mode 100644
index 00000000..215cb327
--- /dev/null
+++ b/outputs/Results/2x2/3/output.txt
@@ -0,0 +1,61 @@
+material_prestrain used: material_neukamm
+----- Input Parameters -----: 
+alpha: 8
+gamma: 1
+theta: 0.25
+beta: 3
+material parameters: 
+mu1: 1
+mu2: 3
+lambda1: 1
+lambda2: 3
+----------------------------: 
+Number of Elements in each direction: [4,4,4]
+size of FiniteElementBasis: 240
+Solver-type used:  CG-Solver
+---------- OUTPUT ----------
+ --------------------
+Corrector-Matrix M_1: 
+-0.00922212 -2.49142e-10 0
+-2.49142e-10 -0.00494017 0
+0 0 0
+
+ --------------------
+Corrector-Matrix M_2: 
+0.00494016 -2.03726e-10 0
+-2.03726e-10 0.00922211 0
+0 0 0
+
+ --------------------
+Corrector-Matrix M_3: 
+1.90697e-10 -4.74653e-11 0
+-4.74653e-11 1.93256e-10 0
+0 0 0
+
+ --------------------
+Effective Matrix Q: 
+12.4813 2.08318 3.83812e-10
+2.08318 12.4813 1.78942e-10
+-6.40561e-10 -1.00945e-09 10.3923
+
+--- Prestrain Output --- 
+B_hat: -0.150032 0.150032 -2.16498e-10
+B_eff: -0.0144287 0.0144287 -2.03203e-11 (Effective Prestrain)
+------------------------ 
+q1=12.4813
+q2=12.4813
+q3=10.3923
+q12=2.08318
+b1=-0.0144287
+b2=0.0144287
+b3=-2.03203e-11
+b1_hat: -0.150032
+b2_hat: 0.150032
+b3_hat: -2.16498e-10
+mu_gamma=10.3923
+q_onetwo=2.083180
+---------------------------------------------------------------------------------------------------------
+  Levels     |      q1      |      q2      |      q3      |      b1      |      b2      |      b3      | 
+---------------------------------------------------------------------------------------------------------
+     2       & 1.24813e+01  & 1.24813e+01  & 1.03923e+01  & -1.44287e-02 & 1.44287e-02  & -2.03203e-11 & 
+---------------------------------------------------------------------------------------------------------
diff --git a/outputs/Results/2x2/3/parameter b/outputs/Results/2x2/3/parameter
new file mode 100644
index 00000000..8fbb9f5a
--- /dev/null
+++ b/outputs/Results/2x2/3/parameter
@@ -0,0 +1,19 @@
+mu=80 60
+lambda=80 25
+rho=1.0 0
+
+#Indicator function that determines both phases
+# x[0] : y1-component
+# x[1] : y2-component
+# x[2] : x3-component
+def f(x):
+    theta=0.5
+    factor=1
+    # --- replace with your definition of indicatorFunction:
+    if ((abs(x[0]) < theta/2) and x[2]<-1/2+theta):
+        return 1    #Phase1
+    elif ((abs(x[1]) < factor*theta/2) and x[2]>1/2-factor*theta):
+        return 1    #Phase1
+    else :
+        return 0    #Phase2
+
diff --git a/outputs/Results/2x2/4/BMatrix.txt b/outputs/Results/2x2/4/BMatrix.txt
new file mode 100644
index 00000000..be6a7591
--- /dev/null
+++ b/outputs/Results/2x2/4/BMatrix.txt
@@ -0,0 +1,3 @@
+1 1 -2.74206114740746898
+1 2 -3.10270304357049476
+1 3 3.0398257121603124e-09
diff --git a/outputs/Results/2x2/4/QMatrix.txt b/outputs/Results/2x2/4/QMatrix.txt
new file mode 100644
index 00000000..245d4d77
--- /dev/null
+++ b/outputs/Results/2x2/4/QMatrix.txt
@@ -0,0 +1,9 @@
+1 1 14.4975598095779166
+1 2 3.98327256772200711
+1 3 -6.56940620062560124e-09
+2 1 3.98327260564529295
+2 2 14.8275228823281235
+2 3 -6.51275988527633122e-09
+3 1 -2.09762192341099332e-09
+3 2 -1.83361834006557389e-09
+3 3 10.6556275724235974
diff --git a/outputs/Results/2x2/4/output.txt b/outputs/Results/2x2/4/output.txt
new file mode 100644
index 00000000..d7694ae7
--- /dev/null
+++ b/outputs/Results/2x2/4/output.txt
@@ -0,0 +1,40 @@
+material_prestrain used: material_neukamm
+----- Input Parameters -----: 
+alpha: 8
+gamma: 1
+theta: 0.25
+beta: 3
+material parameters: 
+mu1: 1
+mu2: 3
+lambda1: 1
+lambda2: 3
+----------------------------: 
+Number of Elements in each direction: [4,4,4]
+size of FiniteElementBasis: 240
+Solver-type used:  CG-Solver
+---------- OUTPUT ----------
+ --------------------
+Corrector-Matrix M_1: 
+-0.277147 1.10701e-09 0
+1.10701e-09 -0.334813 0
+0 0 0
+
+ --------------------
+Corrector-Matrix M_2: 
+-0.478197 8.17764e-10 0
+8.17764e-10 -0.188937 0
+0 0 0
+
+ --------------------
+Corrector-Matrix M_3: 
+2.06316e-11 0.115943 0
+0.115943 3.27431e-10 0
+0 0 0
+
+ --------------------
+Effective Matrix Q: 
+14.4976 3.98327 -6.56941e-09
+3.98327 14.8275 -6.51276e-09
+-2.09762e-09 -1.83362e-09 10.6556
+
diff --git a/outputs/Results/2x2/4/parameter b/outputs/Results/2x2/4/parameter
new file mode 100644
index 00000000..cbe045d5
--- /dev/null
+++ b/outputs/Results/2x2/4/parameter
@@ -0,0 +1,19 @@
+mu=80 60
+lambda=80 25
+rho=1.0 0
+
+#Indicator function that determines both phases
+# x[0] : y1-component
+# x[1] : y2-component
+# x[2] : x3-component
+def f(x):
+    theta=0.5
+    factor=0.5
+    # --- replace with your definition of indicatorFunction:
+    if ((abs(x[0]) < theta/2) and x[2]<-1/2+theta):
+        return 1    #Phase1
+    elif ((abs(x[1]) < factor*theta/2) and x[2]>1/2-factor*theta):
+        return 1    #Phase1
+    else :
+        return 0    #Phase2
+
diff --git a/outputs/Results/4x4/1/BMatrix.txt b/outputs/Results/4x4/1/BMatrix.txt
new file mode 100644
index 00000000..f9f6228b
--- /dev/null
+++ b/outputs/Results/4x4/1/BMatrix.txt
@@ -0,0 +1,3 @@
+1 1 0.660848323245719738
+1 2 -0.66084827993852846
+1 3 -6.068513378040036e-10
diff --git a/outputs/Results/4x4/1/QMatrix.txt b/outputs/Results/4x4/1/QMatrix.txt
new file mode 100644
index 00000000..dc3f2b32
--- /dev/null
+++ b/outputs/Results/4x4/1/QMatrix.txt
@@ -0,0 +1,9 @@
+1 1 14.3859585372529803
+1 2 2.77236599298506281
+1 3 -2.42147260956249048e-10
+2 1 2.77236599345047274
+2 2 14.3859585326148895
+2 3 2.60356423062366068e-08
+3 1 7.61360853362081604e-10
+3 2 5.6448884340256504e-10
+3 3 11.4617831133878436
diff --git a/outputs/Results/4x4/1/parameter b/outputs/Results/4x4/1/parameter
new file mode 100644
index 00000000..dc094c07
--- /dev/null
+++ b/outputs/Results/4x4/1/parameter
@@ -0,0 +1,15 @@
+mu=80 60
+lambda=80 25
+rho=1.0 0
+
+def f(x):
+    theta=0.5
+    factor=1
+    # --- replace with your definition of indicatorFunction:
+    if ((abs(x[0]) < theta/2) and x[2]<-1/2+theta):
+        return 1    #Phase1
+    elif ((abs(x[1]) < factor*theta/2) and x[2]>1/2-factor*theta):
+        return 1    #Phase1
+    else :
+        return 0    #Phase2
+
diff --git a/outputs/Results/4x4/2/BMatrix.txt b/outputs/Results/4x4/2/BMatrix.txt
new file mode 100644
index 00000000..70af8f44
--- /dev/null
+++ b/outputs/Results/4x4/2/BMatrix.txt
@@ -0,0 +1,3 @@
+1 1 0.44108759919650381
+1 2 -0.849701612828117514
+1 3 1.21280778469193972e-10
diff --git a/outputs/Results/4x4/2/QMatrix.txt b/outputs/Results/4x4/2/QMatrix.txt
new file mode 100644
index 00000000..a7de0e2d
--- /dev/null
+++ b/outputs/Results/4x4/2/QMatrix.txt
@@ -0,0 +1,9 @@
+1 1 14.2867186772455206
+1 2 2.75022913560156557
+1 3 -9.16110146344798329e-08
+2 1 2.75022913428882676
+2 2 14.3273497791238853
+2 3 -2.0330618105908734e-08
+3 1 8.45189208141952012e-10
+3 2 7.32785036249211903e-10
+3 3 11.4128457014374884
diff --git a/outputs/Results/4x4/2/parameter b/outputs/Results/4x4/2/parameter
new file mode 100644
index 00000000..0f7d8246
--- /dev/null
+++ b/outputs/Results/4x4/2/parameter
@@ -0,0 +1,15 @@
+mu=80 60
+lambda=80 25
+rho=1.0 0
+
+def f(x):
+    theta=0.5
+    factor=.9
+    # --- replace with your definition of indicatorFunction:
+    if ((abs(x[0]) < theta/2) and x[2]<-1/2+theta):
+        return 1    #Phase1
+    elif ((abs(x[1]) < factor*theta/2) and x[2]>1/2-factor*theta):
+        return 1    #Phase1
+    else :
+        return 0    #Phase2
+
-- 
GitLab