diff --git a/Classical_Laminated_Plate_Theory/src/de/elamx/clt/CLT_Laminate.java b/Classical_Laminated_Plate_Theory/src/de/elamx/clt/CLT_Laminate.java
index a6cc0db..1a2aa4f 100644
--- a/Classical_Laminated_Plate_Theory/src/de/elamx/clt/CLT_Laminate.java
+++ b/Classical_Laminated_Plate_Theory/src/de/elamx/clt/CLT_Laminate.java
@@ -56,8 +56,6 @@ public class CLT_Laminate extends CLT_Object{
private double tges = 0.0; // Gesamtdicke des Laminats
private boolean isSym = false; // Flag, ob das Laminat symmetrisch aufgebaut ist
- private boolean negativeDtildeEntries; // Flag, ob Dtilde-Matrix negative Einträge besitzt
-
// Dimensionslose Parameter der D-Matrix
private double beta_D; // Seydel's orthotropy parameter
private double nu_D; // Transverse contraction parameter
@@ -209,20 +207,10 @@ private void calcDtilde() {
double [][] helpMat1 = MatrixTools.MatMult(B, Ainv);
double [][] helpMat2 = MatrixTools.MatMult(helpMat1, B);
-
- /*
- Hier wird zur Vereinfachung und aus Effizienzgründen die D-Matrix
- genutzt, da Dtilde noch nicht zur Verfügung steht.
- */
- double zero = -EPS*MatrixTools.getMaximumNorm(D);
-
- negativeDtildeEntries = false;
+
for (int ii = 0; ii < Dtilde.length; ii++) {
for (int jj = 0; jj < Dtilde[0].length; jj++) {
Dtilde[ii][jj] = D[ii][jj] - helpMat2[ii][jj];
- if ((!negativeDtildeEntries) && (Dtilde[ii][jj] < zero)) {
- negativeDtildeEntries = true;
- }
}
}
}
@@ -375,14 +363,6 @@ public double[][] getdMatrix(){
return dmat;
}
- /**
- * Liefert zurück, ob die D-Tilde Matrix negative Einträge besitzt.
- * @return true, wenn D-Tilde Matrix einen oder mehrere negative Einträge besitzt
- */
- public boolean hasNegativeDtildeEntries() {
- return negativeDtildeEntries;
- }
-
/** Liefert Seydels Orthotropieparameter der D-Matrix des Laminats.
* @return Seydels Orthotropieparameter der D-Matrix des Laminats
*/
diff --git a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle.properties b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle.properties
index 909bc91..56e6d15 100644
--- a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle.properties
+++ b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle.properties
@@ -33,7 +33,6 @@ InputPanel.jLabel3.text=BC x:
BucklingModule.name=Plate Buckling
Warning.unsymmetriclaminate=This is an unsymmetric laminate.
So the result will be wrong!
Warning.baddmatrixoptioncombination=Options "neglect D16, D26" and "D\u0303 approximation" cannot be combined.
-Warning.negativedtildeentries=D\u0303 matrix has negative entries.
Calculation cannot be performed.
forceButton.tip=Push to display all applied forces
Warning.aspectratio=The aspect ratio of the plate is higher then the number of terms
or lower then 1 divided by the number of terms.
Task.bucklingcalc=Buckling Calculation
diff --git a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle_de.properties b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle_de.properties
index ecbaaad..6c05800 100644
--- a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle_de.properties
+++ b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/Bundle_de.properties
@@ -17,7 +17,6 @@ InputPanel.jLabel2.text=Breite:
InputPanel.jLabel3.text=RB x:
Warning.unsymmetriclaminate=Dieses Laminat ist unsymmetrisch.
Infolgedessen sind die Ergebnisse fragw\u00fcrdig.
Warning.baddmatrixoptioncombination=Die Optionen "D16,D26 vernachl\u00e4ssigen" und "D\u0303 N\u00e4herung" k\u00f6nnen nicht kombiniert werden.
-Warning.negativedtildeentries=D\u0303 Matrix besitzt negative Eintr\u00e4ge.
Die Berechnung kann nicht durchgef\u00fchrt werden.
forceButton.tip=Anzeigen aller aufgebrachten Kr\u00e4fte
Warning.aspectratio=Das Seitenverh\u00e4ltnis der Platte ist gr\u00f6\u00dfer als die Anzahl der Terme
oder kleiner als 1 durch die Anzahl der Terme.
Task.bucklingcalc=Beulberechnung
diff --git a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/ControlPanel.java b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/ControlPanel.java
index 498a017..9bf29f8 100644
--- a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/ControlPanel.java
+++ b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/ControlPanel.java
@@ -164,11 +164,7 @@ private boolean checkInput(BucklingInput input, CLT_Laminate laminat) {
DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(NbBundle.getMessage(ControlPanel.class, "Warning.ffff-boundaryconditions"), NotifyDescriptor.ERROR_MESSAGE));
return false;
}
- if (input.isDtilde() && laminat.hasNegativeDtildeEntries()) {
- DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(NbBundle.getMessage(ControlPanel.class, "Warning.negativedtildeentries"), NotifyDescriptor.ERROR_MESSAGE));
- return false;
- }
- if (!laminat.isSymmetric()) {
+ if ((!input.isDtilde()) && (!laminat.isSymmetric())) {
DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(NbBundle.getMessage(ControlPanel.class, "Warning.unsymmetriclaminate"), NotifyDescriptor.WARNING_MESSAGE));
}
int m = input.getM();
diff --git a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/batchrun/BucklingOutputWriterServiceImpl.java b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/batchrun/BucklingOutputWriterServiceImpl.java
index 28c34b6..3acc341 100644
--- a/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/batchrun/BucklingOutputWriterServiceImpl.java
+++ b/Classical_Laminated_Plate_Theory_Plate_UI/src/de/elamx/clt/plateui/buckling/batchrun/BucklingOutputWriterServiceImpl.java
@@ -65,33 +65,26 @@ public void writeResults(PrintStream out, BucklingModuleData data, Laminat lamin
out.println();
out.println("Laminat: " + laminate.getName());
out.println();
- if (! data.getLaminat().getLookup().lookup(CLT_Laminate.class).hasNegativeDtildeEntries()) {
- out.println("D-matrix option: " + dMatrixOption);
- out.println("D-matrix used:");
- for (int ii=0; ii<3; ii++) {
- out.printf(lo," %10.1f %10.1f %10.1f%n" , dmat[ii][0], dmat[ii][1], dmat[ii][2]);
- };
- out.println();
- out.println("critical load");
- double[] ncrit = result.getN_crit();
- out.printf(lo," nx_crit = %17.10E%n" , ncrit[0]);
- out.printf(lo," ny_crit = %17.10E%n" , ncrit[1]);
- out.printf(lo," nxy_crit = %17.10E%n" , ncrit[2]);
- out.println();
- out.println("Eigenvalues 1 to 5");
- double[] eigenvalues = result.getEigenvalues_();
- out.printf(lo," Eigenv1 = %17.10E%n" , eigenvalues[0]);
- out.printf(lo," Eigenv2 = %17.10E%n" , eigenvalues[1]);
- out.printf(lo," Eigenv3 = %17.10E%n" , eigenvalues[2]);
- out.printf(lo," Eigenv4 = %17.10E%n" , eigenvalues[3]);
- out.printf(lo," Eigenv5 = %17.10E%n" , eigenvalues[4]);
- out.println();
- out.println();
- } else {
- out.printf("D̃ matrix has negative entries.%n");
- out.printf("Buckling calculation cannot be performed.%n");
- out.println();
- out.println();
- }
- }
+ out.println("D-matrix option: " + dMatrixOption);
+ out.println("D-matrix used:");
+ for (int ii=0; ii<3; ii++) {
+ out.printf(lo," %10.1f %10.1f %10.1f%n" , dmat[ii][0], dmat[ii][1], dmat[ii][2]);
+ };
+ out.println();
+ out.println("critical load");
+ double[] ncrit = result.getN_crit();
+ out.printf(lo," nx_crit = %17.10E%n" , ncrit[0]);
+ out.printf(lo," ny_crit = %17.10E%n" , ncrit[1]);
+ out.printf(lo," nxy_crit = %17.10E%n" , ncrit[2]);
+ out.println();
+ out.println("Eigenvalues 1 to 5");
+ double[] eigenvalues = result.getEigenvalues_();
+ out.printf(lo," Eigenv1 = %17.10E%n" , eigenvalues[0]);
+ out.printf(lo," Eigenv2 = %17.10E%n" , eigenvalues[1]);
+ out.printf(lo," Eigenv3 = %17.10E%n" , eigenvalues[2]);
+ out.printf(lo," Eigenv4 = %17.10E%n" , eigenvalues[3]);
+ out.printf(lo," Eigenv5 = %17.10E%n" , eigenvalues[4]);
+ out.println();
+ out.println();
+ }
}