Search in sources :

Example 41 with Foundation

use of org.concord.energy3d.model.Foundation in project energy3d by concord-consortium.

the class FresnelReflectorAnnualAnalysis method toJson.

@Override
public String toJson() {
    String s = "{\"Months\": " + getNumberOfDataPoints();
    final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
    if (selectedPart != null) {
        if (selectedPart instanceof FresnelReflector) {
            s += ", \"Fresnel Reflector\": \"" + selectedPart.toString().substring(0, selectedPart.toString().indexOf(')') + 1) + "\"";
        } else if (selectedPart instanceof Foundation) {
            s += ", \"Foundation\": \"" + selectedPart.toString().substring(0, selectedPart.toString().indexOf(')') + 1) + "\"";
        } else if (selectedPart.getTopContainer() instanceof Foundation) {
            s += ", \"Foundation\": \"" + selectedPart.getTopContainer().toString().substring(0, selectedPart.getTopContainer().toString().indexOf(')') + 1) + "\"";
        }
    } else {
        s += ", \"Fresnel Reflector\": \"All\"";
    }
    final String name = "Solar";
    final List<Double> data = graph.getData(name);
    s += ", \"" + name + "\": {";
    s += "\"Monthly\": [";
    for (final Double x : data) {
        s += Graph.ENERGY_FORMAT.format(x) + ",";
    }
    s = s.substring(0, s.length() - 1);
    s += "]\n";
    s += ", \"Total\": " + Graph.ENERGY_FORMAT.format(getResult(name));
    s += "}";
    s += "}";
    return s;
}
Also used : FresnelReflector(org.concord.energy3d.model.FresnelReflector) Foundation(org.concord.energy3d.model.Foundation) HousePart(org.concord.energy3d.model.HousePart)

Example 42 with Foundation

use of org.concord.energy3d.model.Foundation in project energy3d by concord-consortium.

the class FresnelReflectorDailyAnalysis method updateGraph.

@Override
public void updateGraph() {
    for (int i = 0; i < 24; i++) {
        SolarRadiation.getInstance().computeEnergyAtHour(i);
        final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
        if (selectedPart != null) {
            if (selectedPart instanceof FresnelReflector) {
                final FresnelReflector r = (FresnelReflector) selectedPart;
                graph.addData("Solar", r.getSolarPotentialNow() * r.getSystemEfficiency());
            } else if (selectedPart instanceof Foundation) {
                double output = 0;
                for (final HousePart p : Scene.getInstance().getParts()) {
                    if (p instanceof FresnelReflector && p.getTopContainer() == selectedPart) {
                        final FresnelReflector r = (FresnelReflector) p;
                        output += r.getSolarPotentialNow() * r.getSystemEfficiency();
                    }
                }
                graph.addData("Solar", output);
            } else if (selectedPart.getTopContainer() instanceof Foundation) {
                double output = 0;
                for (final HousePart p : Scene.getInstance().getParts()) {
                    if (p instanceof FresnelReflector && p.getTopContainer() == selectedPart.getTopContainer()) {
                        final FresnelReflector r = (FresnelReflector) p;
                        output += r.getSolarPotentialNow() * r.getSystemEfficiency();
                    }
                }
                graph.addData("Solar", output);
            }
        } else {
            double output = 0;
            for (final HousePart p : Scene.getInstance().getParts()) {
                if (p instanceof FresnelReflector) {
                    final FresnelReflector r = (FresnelReflector) p;
                    output += r.getSolarPotentialNow() * r.getSystemEfficiency();
                }
            }
            graph.addData("Solar", output);
        }
    }
    graph.repaint();
}
Also used : FresnelReflector(org.concord.energy3d.model.FresnelReflector) Foundation(org.concord.energy3d.model.Foundation) HousePart(org.concord.energy3d.model.HousePart)

Example 43 with Foundation

use of org.concord.energy3d.model.Foundation in project energy3d by concord-consortium.

the class GroupAnnualAnalysis method updateGraph.

@Override
public void updateGraph() {
    for (final HousePart p : selectedParts) {
        final String customText = p.getLabelCustomText();
        if (p instanceof Window) {
            final Window window = (Window) p;
            final double solar = p.getSolarPotentialToday() * window.getSolarHeatGainCoefficient();
            graph.addData("Solar " + p.getId(), solar);
            final double[] loss = p.getHeatLoss();
            double sum = 0;
            for (final double x : loss) {
                sum += x;
            }
            graph.addData("Heat Gain " + p.getId(), -sum);
        } else if (p instanceof Wall || p instanceof Roof) {
            final double[] loss = p.getHeatLoss();
            double sum = 0;
            for (final double x : loss) {
                sum += x;
            }
            graph.addData("Heat Gain " + p.getId(), -sum);
        } else if (p instanceof SolarPanel) {
            if (customText != null) {
                graph.addData("Solar " + p.getId() + graph.getDataNameDelimiter() + customText, ((SolarPanel) p).getYieldToday());
            } else {
                graph.addData("Solar " + p.getId(), ((SolarPanel) p).getYieldToday());
            }
        } else if (p instanceof Rack) {
            if (customText != null) {
                graph.addData("Solar " + p.getId() + graph.getDataNameDelimiter() + customText, ((Rack) p).getYieldToday());
            } else {
                graph.addData("Solar " + p.getId(), ((Rack) p).getYieldToday());
            }
        } else if (p instanceof Mirror) {
            final Mirror mirror = (Mirror) p;
            final double solar = mirror.getSolarPotentialToday() * mirror.getSystemEfficiency();
            if (customText != null) {
                graph.addData("Solar " + p.getId() + graph.getDataNameDelimiter() + customText, solar);
            } else {
                graph.addData("Solar " + p.getId(), solar);
            }
        } else if (p instanceof ParabolicTrough) {
            final ParabolicTrough trough = (ParabolicTrough) p;
            final double solar = trough.getSolarPotentialToday() * trough.getSystemEfficiency();
            if (customText != null) {
                graph.addData("Solar " + p.getId() + graph.getDataNameDelimiter() + customText, solar);
            } else {
                graph.addData("Solar " + p.getId(), solar);
            }
        } else if (p instanceof ParabolicDish) {
            final ParabolicDish dish = (ParabolicDish) p;
            final double solar = dish.getSolarPotentialToday() * dish.getSystemEfficiency();
            if (customText != null) {
                graph.addData("Solar " + p.getId() + graph.getDataNameDelimiter() + customText, solar);
            } else {
                graph.addData("Solar " + p.getId(), solar);
            }
        } else if (p instanceof FresnelReflector) {
            final FresnelReflector reflector = (FresnelReflector) p;
            final double solar = reflector.getSolarPotentialToday() * reflector.getSystemEfficiency();
            if (customText != null) {
                graph.addData("Solar " + p.getId() + graph.getDataNameDelimiter() + customText, solar);
            } else {
                graph.addData("Solar " + p.getId(), solar);
            }
        } else if (p instanceof Foundation) {
            final boolean mean = group.getType().endsWith("(Mean)");
            final Foundation foundation = (Foundation) p;
            switch(foundation.getProjectType()) {
                case Foundation.TYPE_PV_PROJECT:
                    double pv = foundation.getPhotovoltaicToday();
                    if (mean) {
                        pv /= foundation.getNumberOfSolarPanels();
                        if (customText != null) {
                            graph.addData("PV " + p.getId() + graph.getDataNameDelimiter() + customText + " mean", pv);
                        } else {
                            graph.addData("PV " + p.getId() + " mean", pv);
                        }
                    } else {
                        if (customText != null) {
                            graph.addData("PV " + p.getId() + graph.getDataNameDelimiter() + customText, pv);
                        } else {
                            graph.addData("PV " + p.getId(), pv);
                        }
                    }
                    break;
                case Foundation.TYPE_CSP_PROJECT:
                    double csp = foundation.getCspToday();
                    if (mean) {
                        csp /= foundation.countParts(new Class[] { Mirror.class, ParabolicTrough.class, ParabolicDish.class });
                        if (customText != null) {
                            graph.addData("CSP " + p.getId() + graph.getDataNameDelimiter() + customText + " mean", csp);
                        } else {
                            graph.addData("CSP " + p.getId() + " mean", csp);
                        }
                    } else {
                        if (customText != null) {
                            graph.addData("CSP " + p.getId() + graph.getDataNameDelimiter() + customText, csp);
                        } else {
                            graph.addData("CSP " + p.getId(), csp);
                        }
                    }
                    break;
                case Foundation.TYPE_BUILDING:
                    final double totalEnergy = foundation.getTotalEnergyToday();
                    graph.addData("Building " + p.getId(), totalEnergy);
                    break;
            }
        }
    }
    graph.repaint();
}
Also used : Window(org.concord.energy3d.model.Window) ParabolicTrough(org.concord.energy3d.model.ParabolicTrough) FresnelReflector(org.concord.energy3d.model.FresnelReflector) Wall(org.concord.energy3d.model.Wall) ParabolicDish(org.concord.energy3d.model.ParabolicDish) Rack(org.concord.energy3d.model.Rack) Roof(org.concord.energy3d.model.Roof) SolarPanel(org.concord.energy3d.model.SolarPanel) Foundation(org.concord.energy3d.model.Foundation) Mirror(org.concord.energy3d.model.Mirror) HousePart(org.concord.energy3d.model.HousePart)

Example 44 with Foundation

use of org.concord.energy3d.model.Foundation in project energy3d by concord-consortium.

the class HeliostatAnnualAnalysis method updateGraph.

@Override
public void updateGraph() {
    final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
    if (selectedPart != null) {
        if (selectedPart instanceof Mirror) {
            final Mirror m = (Mirror) selectedPart;
            graph.addData("Solar", m.getSolarPotentialToday() * m.getSystemEfficiency());
        } else if (selectedPart instanceof Foundation) {
            double output = 0;
            for (final HousePart p : Scene.getInstance().getParts()) {
                if (p instanceof Mirror && p.getTopContainer() == selectedPart) {
                    final Mirror m = (Mirror) p;
                    output += m.getSolarPotentialToday() * m.getSystemEfficiency();
                }
            }
            graph.addData("Solar", output);
        } else if (selectedPart.getTopContainer() instanceof Foundation) {
            double output = 0;
            for (final HousePart p : Scene.getInstance().getParts()) {
                if (p instanceof Mirror && p.getTopContainer() == selectedPart.getTopContainer()) {
                    final Mirror m = (Mirror) p;
                    output += m.getSolarPotentialToday() * m.getSystemEfficiency();
                }
            }
            graph.addData("Solar", output);
        }
    } else {
        double output = 0;
        for (final HousePart p : Scene.getInstance().getParts()) {
            if (p instanceof Mirror) {
                final Mirror m = (Mirror) p;
                output += m.getSolarPotentialToday() * m.getSystemEfficiency();
            }
        }
        graph.addData("Solar", output);
    }
    graph.repaint();
}
Also used : Foundation(org.concord.energy3d.model.Foundation) Mirror(org.concord.energy3d.model.Mirror) HousePart(org.concord.energy3d.model.HousePart)

Example 45 with Foundation

use of org.concord.energy3d.model.Foundation in project energy3d by concord-consortium.

the class HeliostatAnnualAnalysis method toJson.

@Override
public String toJson() {
    String s = "{\"Months\": " + getNumberOfDataPoints();
    final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
    if (selectedPart != null) {
        if (selectedPart instanceof Mirror) {
            s += ", \"Heliostat\": \"" + selectedPart.toString().substring(0, selectedPart.toString().indexOf(')') + 1) + "\"";
        } else if (selectedPart instanceof Foundation) {
            s += ", \"Foundation\": \"" + selectedPart.toString().substring(0, selectedPart.toString().indexOf(')') + 1) + "\"";
        } else if (selectedPart.getTopContainer() instanceof Foundation) {
            s += ", \"Foundation\": \"" + selectedPart.getTopContainer().toString().substring(0, selectedPart.getTopContainer().toString().indexOf(')') + 1) + "\"";
        }
    } else {
        s += ", \"Heliostat\": \"All\"";
    }
    final String name = "Solar";
    final List<Double> data = graph.getData(name);
    s += ", \"" + name + "\": {";
    s += "\"Monthly\": [";
    for (final Double x : data) {
        s += Graph.ENERGY_FORMAT.format(x) + ",";
    }
    s = s.substring(0, s.length() - 1);
    s += "]\n";
    s += ", \"Total\": " + Graph.ENERGY_FORMAT.format(getResult(name));
    s += "}";
    s += "}";
    return s;
}
Also used : Foundation(org.concord.energy3d.model.Foundation) Mirror(org.concord.energy3d.model.Mirror) HousePart(org.concord.energy3d.model.HousePart)

Aggregations

Foundation (org.concord.energy3d.model.Foundation)174 HousePart (org.concord.energy3d.model.HousePart)153 Rack (org.concord.energy3d.model.Rack)47 SolarPanel (org.concord.energy3d.model.SolarPanel)45 Window (org.concord.energy3d.model.Window)39 ActionEvent (java.awt.event.ActionEvent)38 ActionListener (java.awt.event.ActionListener)38 Roof (org.concord.energy3d.model.Roof)38 Wall (org.concord.energy3d.model.Wall)37 ArrayList (java.util.ArrayList)35 JDialog (javax.swing.JDialog)35 JMenuItem (javax.swing.JMenuItem)33 Mirror (org.concord.energy3d.model.Mirror)32 FresnelReflector (org.concord.energy3d.model.FresnelReflector)27 Door (org.concord.energy3d.model.Door)24 ParabolicTrough (org.concord.energy3d.model.ParabolicTrough)24 Tree (org.concord.energy3d.model.Tree)24 Vector3 (com.ardor3d.math.Vector3)22 ReadOnlyVector3 (com.ardor3d.math.type.ReadOnlyVector3)22 ParabolicDish (org.concord.energy3d.model.ParabolicDish)22