Skip to content

Commit

Permalink
+ erste noch ungeprüfte Variante der micromechanischen Gleichungen de…
Browse files Browse the repository at this point in the history
…s HSB 37102-02 implementiert

Task #12 - mikromechanischen Formeln aus dem Handbuch Strukturberechnung (HSB)
  • Loading branch information
Andreas Hauffe committed Nov 18, 2023
1 parent f1e7135 commit 2190aa0
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,17 @@ HopkinsChamis.Color.r=0.5
HopkinsChamis.Color.g=0.5
HopkinsChamis.Color.b=0.5
HSB3710202.displayName=HSB 37102-02
HSB3710202.description=Description
HSB3710202.rhoHTMLDescription=<html>see HSB 37102-02</html>
HSB3710202.e11HTMLDescription=<html>see HSB 37102-02</html>
HSB3710202.e22HTMLDescription=<html>see HSB 37102-02</html>
HSB3710202.nue12HTMLDescription=<html>see HSB 37102-02</html>
HSB3710202.g12HTMLDescription=<html>see HSB 37102-02</html>
HSB3710202.Color.r=0
HSB3710202.Color.g=0.5
HSB3710202.Color.b=0.5
Puck.displayName=Puck
Puck.description=Description
Puck.rhoHTMLDescription=<html>&rho;<sub>F</sub> &phi; + &rho;<sub>M</sub> (1 - &phi;)</html>
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
OpenIDE-Module-Name=Zus\u00e4tzliche mikromechanische Modelle

HSB3710202.rhoHTMLDescription=<html>siehe HSB 37102-02</html>
HSB3710202.e11HTMLDescription=<html>siehe HSB 37102-02</html>
HSB3710202.e22HTMLDescription=<html>siehe HSB 37102-02</html>
HSB3710202.nue12HTMLDescription=<html>siehe HSB 37102-02</html>
HSB3710202.g12HTMLDescription=<html>siehe HSB 37102-02</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/*
* This program developed in Java is based on the netbeans platform and is used
* to design and to analyse composite structures by means of analytical and
* numerical methods.
*
* Further information can be found here:
* http://www.elamx.de
*
* Copyright (C) 2021 Technische Universität Dresden - Andreas Hauffe
*
* This file is part of eLamX².
*
* eLamX² is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* eLamX² is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with eLamX². If not, see <http://www.gnu.org/licenses/>.
*/
package de.elamx.micromechanics.addmicromechanicmodels;

import de.elamx.micromechanics.Fiber;
import de.elamx.micromechanics.Matrix;
import de.elamx.micromechanics.models.MicroMechModel;
import org.openide.filesystems.FileObject;


/**
*
* Diese micromechanische Modell stammt aus dem Handbuch für Strukturberechnung
* (HSB) Arbeitsplatz 37102-2, wobei darin auf die Quelle
* R. M. Jones: Mechanics of Composite Materials, Scripta Book Company,
* Washington, D.C. 1975 verwiesen wird.
*
* @author Andreas Hauffe
*/
public class HSB3710202 extends MicroMechModel{

public static HSB3710202 getDefault(FileObject obj) {
return new HSB3710202(obj);
}

public HSB3710202(FileObject obj) {
super(obj);
}

@Override
public double getE11(Fiber fiber, Matrix matrix, double phi) {
return fiber.getEpar() * phi + matrix.getEpar() * (1.0-phi);
}

@Override
public double getE22(Fiber fiber, Matrix matrix, double phi) {
double val1 = (1.0 - 2.0 * Math.sqrt(phi/Math.PI));
double val2 = Math.PI / (2.0 * (1.0 - matrix.getEnor()/fiber.getEnor()));
double val3 = 2.0 / ((1.0 - matrix.getEnor()/fiber.getEnor()) * Math.sqrt(1.0 - 4.0 * phi / Math.PI * (1.0 - matrix.getEnor()/fiber.getEnor()) * (1.0 - matrix.getEnor()/fiber.getEnor())));
double val4 = Math.atan(Math.sqrt(
(1.0 + 2.0 * Math.sqrt(phi / Math.PI) * (1.0 - matrix.getEnor()/fiber.getEnor())) /
(1.0 - 2.0 * Math.sqrt(phi / Math.PI) * (1.0 - matrix.getEnor()/fiber.getEnor()))));

return matrix.getEnor() * (val1 - val2 + val3 * val4);
}

@Override
public double getNue12(Fiber fiber, Matrix matrix, double phi) {
return fiber.getNue12()*phi + matrix.getNue12()*(1-phi);
}

@Override
public double getG12(Fiber fiber, Matrix matrix, double phi) {
double val1 = (1.0 - 2.0 * Math.sqrt(phi/Math.PI));
double val2 = Math.PI / (2.0 * (1.0 - matrix.getG()/fiber.getG()));
double val3 = 2.0 / ((1.0 - matrix.getG()/fiber.getG()) * Math.sqrt(1.0 - 4.0 * phi / Math.PI * (1.0 - matrix.getG()/fiber.getG()) * (1.0 - matrix.getG()/fiber.getG())));
double val4 = Math.atan(Math.sqrt(
(1.0 + 2.0 * Math.sqrt(phi / Math.PI) * (1.0 - matrix.getG()/fiber.getG())) /
(1.0 - 2.0 * Math.sqrt(phi / Math.PI) * (1.0 - matrix.getG()/fiber.getG()))));

return matrix.getG() * (val1 - val2 + val3 * val4);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,20 @@
<attr name="color.g" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#Puck.Color.g"/>
<attr name="color.b" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#Puck.Color.b"/>
</file>
<file name="HSB3710202.instance">
<attr name="instanceCreate" methodvalue="de.elamx.micromechanics.addmicromechanicmodels.HSB3710202.getDefault"/>
<attr name="instanceOf" stringvalue="de.elamx.micromechanics.models.MicroMechModel"/>
<attr name="displayName" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.displayName"/>
<attr name="description" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.description"/>
<attr name="rhoHTMLDescription" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.rhoHTMLDescription"/>
<attr name="e11HTMLDescription" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.e11HTMLDescription"/>
<attr name="e22HTMLDescription" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.e22HTMLDescription"/>
<attr name="nue12HTMLDescription" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.nue12HTMLDescription"/>
<attr name="g12HTMLDescription" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.g12HTMLDescription"/>
<attr name="color.r" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.Color.r"/>
<attr name="color.g" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.Color.g"/>
<attr name="color.b" bundlevalue="de.elamx.micromechanics.addmicromechanicmodels.Bundle#HSB3710202.Color.b"/>
</file>
</folder>
</folder>
</filesystem>

0 comments on commit 2190aa0

Please sign in to comment.