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(); + } }