Skip to content

Commit

Permalink
+ Bei negativen Werten in D-Tilde-Matrix in Plattenbeul-Modul erfolgt…
Browse files Browse the repository at this point in the history
… nun die Berechnung ohne Ausgabe eines Fehlers;

+ Prüfung auf negative Einträge in D-Tilde-Matrix entfernt, da nun überflüssig;
  • Loading branch information
FloDX committed May 13, 2024
1 parent 17e1f2a commit 872b5ed
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
}
}
}
}
Expand Down Expand Up @@ -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
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ InputPanel.jLabel3.text=BC x:
BucklingModule.name=Plate Buckling
Warning.unsymmetriclaminate=<html>This is an unsymmetric laminate.<br>So the result will be wrong!</html>
Warning.baddmatrixoptioncombination=<html>Options "neglect D<sub>16</sub>, D<sub>26</sub>" and "D\u0303 approximation" cannot be combined.</html>
Warning.negativedtildeentries=<html>D\u0303 matrix has negative entries.<br>Calculation cannot be performed.</html>
forceButton.tip=Push to display all applied forces
Warning.aspectratio=<html>The aspect ratio of the plate is higher then the number of terms<br>or lower then 1 divided by the number of terms.</html>
Task.bucklingcalc=Buckling Calculation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ InputPanel.jLabel2.text=Breite:
InputPanel.jLabel3.text=RB x:
Warning.unsymmetriclaminate=<html>Dieses Laminat ist unsymmetrisch.<br>Infolgedessen sind die Ergebnisse fragw\u00fcrdig.</html>
Warning.baddmatrixoptioncombination=<html>Die Optionen "D<sub>16</sub>,D<sub>26</sub> vernachl\u00e4ssigen" und "D\u0303 N\u00e4herung" k\u00f6nnen nicht kombiniert werden.</html>
Warning.negativedtildeentries=<html>D\u0303 Matrix besitzt negative Eintr\u00e4ge.<br>Die Berechnung kann nicht durchgef\u00fchrt werden.</html>
forceButton.tip=Anzeigen aller aufgebrachten Kr\u00e4fte
Warning.aspectratio=<html>Das Seitenverh\u00e4ltnis der Platte ist gr\u00f6\u00dfer als die Anzahl der Terme<br>oder kleiner als 1 durch die Anzahl der Terme.</html>
Task.bucklingcalc=Beulberechnung
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}

0 comments on commit 872b5ed

Please sign in to comment.