Unstable Geom

Embed Size (px)

Citation preview

/* * To change this template, choose Tools | Templates * and open the template in the editor. */package genus.geometry;import genus.GenusStarter;import genus.TheModules;import genus.inputs.Inputs;import genus.geometry.GeometricMod.LS.*;import genus.geometry.formats.GFORMAT;import genus.geometry.airfoils.Airfoil;import genus.geometry.airfoils.NACA4;import genus.inputs.intiEntry;import genus.inputs.listiEntry;import genus.inputs.numiEntry;import java.util.ArrayList;import java.util.Arrays;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author c082462 */public class GEOM_BWB extends Geometry{ @Override public void writeOutputArray() { myOutputs = new numiEntry[3]; myOutputs[0] = new numiEntry("Total wingspan", LSurfaces[0].btotal); myOutputs[1] = new numiEntry("Net wing area", LSurfaces[0].Snet); myOutputs[2] = new numiEntry("Gross wing area",LSurfaces[0].Sgross); } @Override public void execute() { executed = false; // OldLS = new genus.geometry.GeometricMod.LS.LiftingSurface[LSurfaces.length]; //System.arraycopy(LSurfaces,0,OldLS,0,LSurfaces.length); } @Override public String writeResults() { String myResults = ""; for (int i = 0; i < LSurfaces[0].LExyz.length; i++) { myResults = myResults + "X: "+LSurfaces[0].LExyz[i][0]+" Y: "+LSurfaces[0].LExyz[i][1]+" Z: "+LSurfaces[0].LExyz[i][2]+" C: "+LSurfaces[0].c[i]+"\n"; } for (int i = 0; i < LSurfaces[1].LExyz.length; i++) { myResults = myResults + "X: "+LSurfaces[0].LExyz[i][0]+" Y: "+LSurfaces[0].LExyz[i][1]+" Z: "+LSurfaces[0].LExyz[i][2]+" C: "+LSurfaces[0].c[i]+"\n"; } for (int i = 0; i < LSurfaces.length; i++) { myResults = myResults+"Surface."+i+"."+LSurfaces[i].getClass().getSimpleName()+"\n"; myResults = myResults+"Volume: "+LSurfaces[i].getTotalVolume()+"\n"; myResults = myResults+"Surface area: "+LSurfaces[i].getTotalSurfaceArea()+"\n"; } genus.geometry.formats.GFORMAT_AVL pointcloud = (genus.geometry.formats.GFORMAT_AVL) this.getFormat(TheModules.GeomFormatList.AVL); for (int i = 0; i < pointcloud.cxyzlesy1d.length; i++) { myResults = myResults + ("X: " + pointcloud.cxyzlesy1d[i] + " Y: " + pointcloud.cxyzlesy21d[i] + " Z: " + pointcloud.cxyzlesy31d[i] + "\n"); } myResults = myResults+"Wing done\n"; return myResults; } public enum ConfigType{ withTail(new LiftingSurface[]{new Wing(0),new VerticalTail()}), tailless(new LiftingSurface[]{new Wing(0)}) ; public LiftingSurface[] newLS; // public int currentkinks; private ConfigType(LiftingSurface[] iLS){ newLS = iLS; } } public enum VTailType{ Single,Winglet } /** * Which side the tail is on */ public enum VTailSide{ High,Low } public ConfigType cConfigType; public VTailSide cVTailSide; public VTailType cVTailType; genus.geometry.GeometricMod.LS.LiftingSurface[] OldLS; public void setLSBCfromEnum(BWBGeometry ienum){ cVTailType = ienum.myVTailType; cVTailSide = ienum.myVTailSide; cConfigType = ienum.myConfigType; LSurfaces = new LiftingSurface[cBWBGeometry.LSurfs.length]; System.out.println("LS "+LSurfaces.length ); for (int i = 0; i < LSurfaces.length; i++) { if(genus.geometry.GeometricMod.LS.Wing.class.isAssignableFrom(ienum.LSurfs[i].getClass())){ LSurfaces[i] = new Wing(ienum.LSurfs[i].m); } else if(genus.geometry.GeometricMod.LS.VerticalTail.class.isAssignableFrom(ienum.LSurfs[i].getClass())){ LSurfaces[i] = new VerticalTail(); } LSurfaces[i].setMeFromLS(cBWBGeometry.LSurfs[i]); } } public GEOM_BWB() { myID = 0; myName = this.getClass().getSimpleName(); hasInputs = true; hasOutputs = true; hasResults = true; isExecutable = false; executed=false; toReset = true; cBWBGeometry = BWBGeometry.Custom; setLSBCfromEnum(cBWBGeometry); //OldLS = new genus.geometry.GeometricMod.LS.LiftingSurface[LSurfaces.length]; // System.arraycopy(LSurfaces, 0, OldLS, 0, LSurfaces.length); writeInputArray(); setModule(myInputs); writeOutputArray(); //generatedFormats = new GFORMAT[0]; } @Override public void resetMe() { generatedFormats = new GFORMAT[0]; executed = false; } @Override public void setModule(genus.inputs.Inputs[] newInputs) { generatedFormats = new GFORMAT[0]; setOptimizerEntries(newInputs); for(int i=0;i