From 72e354fc0b5290782068c408db0899067bb49e74 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 10:18:28 -0600 Subject: [PATCH 01/58] Add redeclaration of allowFlowReverseSer=true --- .../load_connectors/templates/TimeSeriesBuildingWithETS.mot | 1 + 1 file changed, 1 insertion(+) diff --git a/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot b/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot index ca8058ffc..6caa07074 100644 --- a/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot +++ b/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot @@ -2,6 +2,7 @@ within {{ project_name }}.Loads.{{ model_name }}; {% raw %}model building "Model of a building with an internal ETS. Building loads provided as time series" extends Buildings.Experimental.DHC.Loads.Combined.BaseClasses.PartialBuildingWithETS( + final allowFlowReversalSer=true, // redeclare Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingTimeSeries bui( {% endraw %}redeclare {{ project_name }}.Loads.{{ model_name }}.BuildingTimeSeries bui( {% raw %}have_hotWat=false, From 8e62c40ba6aecd4903f7a0f53caafed03225cf67 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 10:20:03 -0600 Subject: [PATCH 02/58] Inital implementation of district system template with single GHE --- .../districts/templates/SingleGHE.mo | 191 ++++++++++++++++ .../districts/templates/SingleGHE.mot | 205 ++++++++++++++++++ 2 files changed, 396 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo create mode 100644 geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot diff --git a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo new file mode 100644 index 000000000..0d9b15f19 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo @@ -0,0 +1,191 @@ +within GHP.System; +model SingleGHE "One-pipe system model with only one GHE component." + + extends Modelica.Icons.Example; + replaceable package Medium = Buildings.Media.Water constrainedby + Modelica.Media.Interfaces.PartialMedium + "Medium in the component" + annotation (choices( + choice(redeclare package Medium = Buildings.Media.Water "Water"), + choice(redeclare package Medium = + Buildings.Media.Antifreeze.PropyleneGlycolWater ( + property_T=293.15, + X_a=0.40) + "Propylene glycol water, 40% mass fraction"))); + // borefiled parameters + parameter Modelica.Units.SI.Time tLoaAgg(displayUnit="min")=3600 + "Time resolution of load aggregation"; + parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; + parameter Integer nSeg(min=1)=10 + "Number of segments to use in vertical discretization of the boreholes"; + parameter Modelica.Units.SI.Temperature TGro=283.15 "Initial ground temperature"; + parameter String gFunFilNam = "modelica://GHP/Resources/Data/System/SampleGFunction.mat" + "Library path of the g-function file in MAT format"; + parameter Integer nRowGFun = 76 + "Total length of g-function vector"; + // building parameters + parameter Integer nBui = datDes.nBui + "Number of buildings connected to DHC system" + annotation (Evaluate=true); + parameter String filNam[nBui]={ + "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissOffice_20190916.mos", + "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos", + "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissHospital_20190916.mos"} + "Library paths of the files with thermal loads as time series"; + constant Real facMul = 10 + "Building loads multiplier factor"; + parameter Boolean allowFlowReversalSer = true + "Set to true to allow flow reversal in the service lines" + annotation(Dialog(tab="Assumptions"), Evaluate=true); + parameter Boolean allowFlowReversalBui = false + "Set to true to allow flow reversal for in-building systems" + annotation(Dialog(tab="Assumptions"), Evaluate=true); + + Buildings.Fluid.Geothermal.Borefields.OneUTube borFieUTub( + redeclare package Medium = Medium, + nCel=nCel, + nSeg=nSeg, + forceGFunCalc=true, + tLoaAgg=tLoaAgg, + gFunFilNam=Modelica.Utilities.Files.loadResource(gFunFilNam), + nTimTot=nRowGFun, + dynFil=false, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + TExt0_start=TGro, + borFieDat=borFieDat) + "Borefield with a U-tube borehole configuration" + annotation (Placement(transformation(extent={{0,0},{20,20}}))); + //gFunFilNam=Modelica.Utilities.Files.loadResource(gFunFilNam), + Buildings.Fluid.Sensors.TemperatureTwoPort TUTubIn( + redeclare package Medium = Medium, + m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, + tau=0) + "Inlet temperature of the borefield with UTube configuration" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + Buildings.Fluid.Sensors.TemperatureTwoPort TUTubOut( + redeclare package Medium = Medium, + m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, + tau=0) + "Inlet temperature of the borefield with UTube configuration" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + inner parameter + Buildings.Experimental.DHC.Examples.Combined.BaseClasses.DesignDataSeries + datDes( + mPumDis_flow_nominal=95, + mPipDis_flow_nominal=datDes.mPumDis_flow_nominal, + dp_length_nominal=250, + final mCon_flow_nominal=bui.ets.mSerWat_flow_nominal) + "Design data" + annotation (Placement(transformation(extent={{-140,80},{-120,100}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMaxSet[nBui](k=bui.THeaWatSup_nominal) + "Heating water supply temperature set point - Maximum value" + annotation (Placement(transformation(extent={{-120,20},{-100,40}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TChiWatSupSet[nBui](k=bui.TChiWatSup_nominal) + "Chilled water supply temperature set point" + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMinSet[nBui](each k= + 28 + 273.15) + "Heating water supply temperature set point - Minimum value" + annotation (Placement(transformation(extent={{-120,50},{-100,70}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THotWatSupSet[nBui](k=fill( + 63 + 273.15, nBui)) + "Hot water supply temperature set point" + annotation (Placement(transformation(extent={{-120,-40},{-100,-20}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TColWat[nBui](k=fill(15 + + 273.15, nBui)) + "Cold water temperature" + annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}))); + Buildings.Experimental.DHC.Networks.Combined.UnidirectionalSeries + dis( + redeclare final package Medium = Medium, + final nCon=nBui, + show_TOut=true, + final mDis_flow_nominal=datDes.mPipDis_flow_nominal, + final mCon_flow_nominal=datDes.mCon_flow_nominal, + final dp_length_nominal=datDes.dp_length_nominal, + final lDis=datDes.lDis, + final lCon=datDes.lCon, + final lEnd=datDes.lEnd, + final allowFlowReversal=allowFlowReversalSer) "Distribution network" + annotation (Placement(transformation(extent={{70,0},{110,20}}))); + Buildings.Experimental.DHC.EnergyTransferStations.BaseClasses.Pump_m_flow pumDis( + redeclare final package Medium = Medium, m_flow_nominal=datDes.mPumDis_flow_nominal) + "Distribution pump" + annotation (Placement(transformation( + extent={{10,-10},{-10,10}}, + rotation=270, + origin={-44,-60}))); + Modelica.Blocks.Sources.Constant masFloMaiPum(k=datDes.mPumDis_flow_nominal) + "Distribution pump mass flow rate" + annotation (Placement(transformation(extent={{0,-70},{-20,-50}}))); + Buildings.Experimental.DHC.Loads.Combined.BuildingTimeSeriesWithETS bui[nBui]( + final filNam=filNam, + bui(each final facMul=facMul), + redeclare each final package MediumBui = Medium, + redeclare each final package MediumSer = Medium, + each final allowFlowReversalBui=allowFlowReversalBui, + each final allowFlowReversalSer=allowFlowReversalSer) "Building and ETS" + annotation (Placement(transformation(extent={{80,40},{100,60}}))); + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( + final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( + kFil=2.0, + cFil=3040, + dFil=1450), + final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( + kSoi=2.5, + cSoi=769.23, + dSoi=2600), + final conDat= + Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( + borCon=Buildings.Fluid.Geothermal.Borefields.Types.BoreholeConfiguration.SingleUTube, + dp_nominal=35000, + hBor=100, + rBor=0.075, + dBor=1.524, + cooBor={{0.3048,0.3048},{5.3048,0.3048},{0.3048,5.3048},{5.3048,5.3048}}, + rTub=0.02, + kTub=0.5, + eTub=0.0037, + xC=0.05)) "Borefield data" + annotation (choicesAllMatching=true,Placement(transformation(extent={{-110,80}, + {-90,100}}))); + Buildings.Fluid.Sources.Boundary_pT expVes(redeclare final package Medium = + Medium, + T=283.15, nPorts=2) "Expansion vessel" + annotation (Placement(transformation(extent={{140,-76},{120,-56}}))); +equation + connect(TUTubIn.port_b,borFieUTub. port_a) + annotation (Line(points={{-20,10},{0,10}}, color={0,127,255})); + connect(borFieUTub.port_b,TUTubOut. port_a) + annotation (Line(points={{20,10},{40,10}}, color={0,127,255})); + connect(TUTubOut.port_b, dis.port_aDisSup) annotation (Line(points={{60,10},{70, + 10}}, color={0,127,255})); + connect(masFloMaiPum.y,pumDis. m_flow_in) annotation (Line(points={{-21,-60},{ + -32,-60}}, color={0,0,127})); + connect(pumDis.port_b, TUTubIn.port_a) annotation (Line(points={{-44,-50},{-44, + 10},{-40,10}}, color={0,127,255})); + connect(dis.ports_bCon, bui.port_aSerAmb) annotation (Line(points={{78,20},{78, + 38},{74,38},{74,50},{80,50}}, color={0,127,255})); + connect(bui.port_bSerAmb, dis.ports_aCon) annotation (Line(points={{100,50},{106, + 50},{106,38},{102,38},{102,20}}, color={0,127,255})); + connect(THeaWatSupMinSet.y, bui.THeaWatSupMinSet) + annotation (Line(points={{-98,60},{78,59}}, color={0,0,127})); + connect(THeaWatSupMaxSet.y, bui.THeaWatSupMaxSet) annotation (Line(points={{-98, + 30},{-92,30},{-92,57},{78,57}}, color={0,0,127})); + connect(TChiWatSupSet.y, bui.TChiWatSupSet) annotation (Line(points={{-98,0},{ + -86,0},{-86,55},{78,55}}, color={0,0,127})); + connect(THotWatSupSet.y, bui.THotWatSupSet) annotation (Line(points={{-98,-30}, + {-80,-30},{-80,53},{78,53}}, color={0,0,127})); + connect(TColWat.y, bui.TColWat) annotation (Line(points={{-98,-60},{-74,-60},{ + -74,36},{82,36},{82,38}}, color={0,0,127})); + connect(pumDis.port_a, expVes.ports[1]) annotation (Line(points={{-44,-70},{-44, + -80},{108,-80},{108,-64},{120,-64}}, color={0,127,255})); + connect(expVes.ports[2], dis.port_bDisSup) annotation (Line(points={{120,-68}, + {108,-68},{108,-8},{122,-8},{122,10},{110,10}}, color={0,127,255})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100}, + {100,100}})), Diagram( + coordinateSystem(preserveAspectRatio=false, extent={{-140,-100},{140,100}})), + experiment(StopTime=86400, __Dymola_Algorithm="Cvode"), + __Dymola_Commands(file="Resources/Scripts/System/SingleGHE.mos" + "Simulate and Plot")); +end SingleGHE; diff --git a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot new file mode 100644 index 000000000..e1ad4f5da --- /dev/null +++ b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot @@ -0,0 +1,205 @@ +within {{ project_name }}.System; +model SingleGHE + {% raw %} "One-pipe system model with only one GHE component." + extends Modelica.Icons.Example; + replaceable package Medium = Buildings.Media.Water constrainedby + Modelica.Media.Interfaces.PartialMedium + "Medium in the component" + annotation (choices( + choice(redeclare package Medium = Buildings.Media.Water "Water"), + choice(redeclare package Medium = + Buildings.Media.Antifreeze.PropyleneGlycolWater ( + property_T=293.15, + X_a=0.40) + "Propylene glycol water, 40% mass fraction"))); + inner parameter + Buildings.Experimental.DHC.Examples.Combined.BaseClasses.DesignDataSeries + datDes( + {% endraw %}nBui={{ghe_data["building_numbers"]}}, + {% raw %}mPumDis_flow_nominal=95, + mPipDis_flow_nominal=datDes.mPumDis_flow_nominal, + dp_length_nominal=250, + final mCon_flow_nominal=bui.ets.mSerWat_flow_nominal) // !!!This needs to be changed to the correct instance name once building model is moved out. + "Design data" + annotation (Placement(transformation(extent={{-140,80},{-120,100}}))); + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( + final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( + {% endraw %}kFil={{ghe_data["fill_conductivity"]}}, + cFil={{ghe_data["fill_specific_heat_capacity"]}}, + dFil={{ghe_data["fill_density"]}}), + {% raw %}final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( + {% endraw %}kSoi={{ghe_data["soil_conductivity"]}}, + cSoi={{ghe_data["soil_specific_heat_capacity"]}}, + dSoi={{ghe_data["soil_density"]}}), + {% raw %}final conDat= + Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( + dp_nominal=35000, + {% endraw %}borCon={{ghe_data["borehole_configuration"]}}, + mBor_flow_nominal={{ghe_data["nominal_mass_flow_per_borehole"]}}, + hBor={{ghe_data["borehole_height"]}}, + rBor={{ghe_data["borehole_radius"]}}, + nBor={{ghe_data["number_of_boreholes"]}}, + rTub={{ghe_data["tube_radius"]}}, + kTub={{ghe_data["tube_conductivity"]}}, + eTub={{ghe_data["tube_thickness"]}}, + xC={{ghe_data["shank_spacing"]}})) + {% raw %}"Borefield data" + annotation (choicesAllMatching=true,Placement(transformation(extent={{-110,80}, + {-90,100}}))); + parameter Integer nBui = datDes.nBui + "Number of buildings connected to DHC system" + annotation (Evaluate=true); + {% endraw %}parameter String filNam="modelica://{{project_name}}/Loads/{{data['load_resources_path']}}/{{data['time_series']['filename']}}" + {% raw %} "Library path of the file with loads as time series"; + + // Template models +{% for model in models %} + // + // Begin Model Instance for {{ model.id }} + // Source template: {{ model.instance_template_path }} + // +{{ model.instance }} + // + // End Model Instance for {{ model.id }} + // +{% endfor %} + + Buildings.Fluid.Geothermal.Borefields.OneUTube borFieUTub( //!!!Change the path to point to the template. + redeclare package Medium = Medium, + {% endraw %}gFunFilNam=Modelica.Utilities.Files.loadResource({{ghe_data["gfunction_file_path"]}}), + nTimTot={{ghe_data["gfunction_file_rows"]}}, + {% raw %}dynFil=false, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + {% endraw %}TExt0_start={{ghe_data["initial_ground_temperature"]}}+273.15, + {% raw %}borFieDat=borFieDat) + "Borefield with a U-tube borehole configuration" + annotation (Placement(transformation(extent={{0,0},{20,20}}))); + Buildings.Experimental.DHC.Loads.Combined.BuildingTimeSeriesWithETS bui[nBui]( //!!!Change the path to point to the template. + final filNam = filNam) + "Building and ETS" + annotation (Placement(transformation(extent={{80,40},{100,60}}))); + + // Model dependencies +{% for coupling in couplings %} + // + // Begin Component Definitions for {{ coupling.id }} + // Source template: {{ coupling.coupling_definitions_template_path }} + // +{{ coupling.component_definitions }} + // + // End Component Definitions for {{ coupling.id }} + // +{% endfor %} + + + // couplings + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMaxSet[nBui](k=bui.THeaWatSup_nominal) // !!!This needs to be changed to the correct instance name once building model is moved out. + "Heating water supply temperature set point - Maximum value" + annotation (Placement(transformation(extent={{-120,20},{-100,40}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TChiWatSupSet[nBui](k=bui.TChiWatSup_nominal) // !!!This needs to be changed to the correct instance name once building model is moved out. + "Chilled water supply temperature set point" + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + Buildings.Experimental.DHC.Networks.Combined.UnidirectionalSeries + dis( + redeclare final package Medium = Medium, + final nCon=nBui, + show_TOut=true, + final mDis_flow_nominal=datDes.mPipDis_flow_nominal, + final mCon_flow_nominal=datDes.mCon_flow_nominal, + final dp_length_nominal=datDes.dp_length_nominal, + final lDis=datDes.lDis, + final lCon=datDes.lCon, + final lEnd=datDes.lEnd, + final allowFlowReversal=true) "Distribution network" + annotation (Placement(transformation(extent={{70,0},{110,20}}))); + Buildings.Experimental.DHC.EnergyTransferStations.BaseClasses.Pump_m_flow pumDis( + redeclare final package Medium = Medium, + m_flow_nominal=datDes.mPumDis_flow_nominal) + "Distribution pump" + annotation (Placement(transformation( + extent={{10,-10},{-10,10}}, + rotation=270, + origin={-44,-60}))); + Modelica.Blocks.Sources.Constant masFloMaiPum(k=datDes.mPumDis_flow_nominal) + "Distribution pump mass flow rate" + annotation (Placement(transformation(extent={{0,-70},{-20,-50}}))); + Buildings.Fluid.Sources.Boundary_pT expVes( + redeclare final package Medium = Medium, + T=283.15, + nPorts=2) "Expansion vessel" + annotation (Placement(transformation(extent={{140,-76},{120,-56}}))); + Buildings.Fluid.Sensors.TemperatureTwoPort TUTubIn( + redeclare package Medium = Medium, + m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, + tau=0) + "Inlet temperature of the borefield with UTube configuration" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + Buildings.Fluid.Sensors.TemperatureTwoPort TUTubOut( + redeclare package Medium = Medium, + m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, + tau=0) + "Inlet temperature of the borefield with UTube configuration" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMinSet[nBui](each k= + 28 + 273.15) + "Heating water supply temperature set point - Minimum value" + annotation (Placement(transformation(extent={{-120,50},{-100,70}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THotWatSupSet[nBui](k=fill( + 63 + 273.15, nBui)) + "Hot water supply temperature set point" + annotation (Placement(transformation(extent={{-120,-40},{-100,-20}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TColWat[nBui](k=fill(15 + + 273.15, nBui)) + "Cold water temperature" + annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}))); + + +equation + + // Connections +{% for coupling in couplings %} + // + // Begin Connect Statements for {{ coupling.id }} + // Source template: {{ coupling.connect_statements_template_path }} + // +{{ coupling.connect_statements }} + // + // End Connect Statements for {{ coupling.id }} + // +{% endfor %} + + connect(TUTubIn.port_b,borFieUTub. port_a) + annotation (Line(points={{-20,10},{0,10}}, color={0,127,255})); + connect(borFieUTub.port_b,TUTubOut. port_a) + annotation (Line(points={{20,10},{40,10}}, color={0,127,255})); + connect(TUTubOut.port_b, dis.port_aDisSup) annotation (Line(points={{60,10},{70, + 10}}, color={0,127,255})); + connect(masFloMaiPum.y,pumDis. m_flow_in) annotation (Line(points={{-21,-60},{ + -32,-60}}, color={0,0,127})); + connect(pumDis.port_b, TUTubIn.port_a) annotation (Line(points={{-44,-50},{-44, + 10},{-40,10}}, color={0,127,255})); + connect(dis.ports_bCon, bui.port_aSerAmb) annotation (Line(points={{78,20},{78, + 38},{74,38},{74,50},{80,50}}, color={0,127,255})); + connect(bui.port_bSerAmb, dis.ports_aCon) annotation (Line(points={{100,50},{106, + 50},{106,38},{102,38},{102,20}}, color={0,127,255})); + connect(THeaWatSupMinSet.y, bui.THeaWatSupMinSet) + annotation (Line(points={{-98,60},{78,59}}, color={0,0,127})); + connect(THeaWatSupMaxSet.y, bui.THeaWatSupMaxSet) annotation (Line(points={{-98, + 30},{-92,30},{-92,57},{78,57}}, color={0,0,127})); + connect(TChiWatSupSet.y, bui.TChiWatSupSet) annotation (Line(points={{-98,0},{ + -86,0},{-86,55},{78,55}}, color={0,0,127})); + connect(THotWatSupSet.y, bui.THotWatSupSet) annotation (Line(points={{-98,-30}, + {-80,-30},{-80,53},{78,53}}, color={0,0,127})); + connect(TColWat.y, bui.TColWat) annotation (Line(points={{-98,-60},{-74,-60},{ + -74,36},{82,36},{82,38}}, color={0,0,127})); + connect(pumDis.port_a, expVes.ports[1]) annotation (Line(points={{-44,-70},{-44, + -80},{108,-80},{108,-64},{120,-64}}, color={0,127,255})); + connect(expVes.ports[2], dis.port_bDisSup) annotation (Line(points={{120,-68}, + {108,-68},{108,-8},{122,-8},{122,10},{110,10}}, color={0,127,255})); + annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100}, + {100,100}})), Diagram( + coordinateSystem(preserveAspectRatio=false, extent={{-140,-100},{140,100}})), + experiment(StopTime=86400, __Dymola_Algorithm="Cvode"), + __Dymola_Commands(file="Resources/Scripts/System/SingleGHE.mos" + "Simulate and Plot")); +end SingleGHE; From dc09f1c2aee9a94e0716155ce87181d6ad443e25 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 10:21:27 -0600 Subject: [PATCH 03/58] Add modified GroundTemperatureResponse class to overwrite MBL --- .../templates/GroundTemperatureResponse.mo | 364 ++++++++++++++++++ 1 file changed, 364 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo diff --git a/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo b/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo new file mode 100644 index 000000000..a993f4630 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo @@ -0,0 +1,364 @@ +within Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer; +model GroundTemperatureResponse "Model calculating discrete load aggregation" + parameter Modelica.Units.SI.Time tLoaAgg(final min=Modelica.Constants.eps)= + 3600 "Time resolution of load aggregation"; + parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; + parameter Boolean forceGFunCalc = false + "Set to true to force the thermal response to be calculated at the start instead of checking whether it has been pre-computed"; + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat + "Record containing all the parameters of the borefield model" annotation ( + choicesAllMatching=true, Placement(transformation(extent={{-80,-80},{-60,-60}}))); + + parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("modelica://GHP/Resources/Data/System/SampleGFunction.mat") + "File name of g-function data file in MAT format"; + parameter Integer nTimTot = 76 + "Total length of g-function vector"; + + Modelica.Blocks.Interfaces.RealOutput delTBor(unit="K") + "Temperature difference current borehole wall temperature minus initial borehole wall temperature" + annotation (Placement(transformation(extent={{100,-14},{126,12}}), + iconTransformation(extent={{100,-10},{120,10}}))); + Modelica.Blocks.Interfaces.RealInput QBor_flow(unit="W") + "Heat flow from all boreholes combined (positive if heat from fluid into soil)" + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}), + iconTransformation(extent={{-120,-10},{-100,10}}))); + +protected + constant Integer nSegMax = 1500 "Max total number of segments in g-function calculation"; + final parameter Integer nSeg = integer(if 12*borFieDat.conDat.nBor +\"image\" +

+

+where nCel is the number of consecutive cells which can have the same size. +Decreasing rcel will generally decrease calculation times, at the cost of +precision in the temporal superposition. rcel is expressed in multiples +of the aggregation time resolution (via the parameter tLoaAgg). +Then, nu may be expressed as the sum of all rcel values +(multiplied by the aggregation time resolution) up to and including that cell in question. +

+

+To determine the weighting factors, the borefield's temperature +step response at the borefield wall is determined as +

+

+\"image\" +

+

+where g(·) is the borefield's thermal response factor known as the g-function, +H is the total length of all boreholes and ks is the thermal +conductivity of the soil. The weighting factors kappa (κ in the equation below) +for a given cell i are then expressed as follows. +

+

+\"image\" +

+

+where ν refers to the vector nu in this model and +Tstep0)=0. +

+

+At every aggregation time step, a time event is generated to perform the load aggregation steps. +First, the thermal load is shifted. When shifting between cells of different size, total +energy is conserved. This operation is illustred in the figure below by Cimmino (2014). +

+

+\"image\" +

+

+After the cell-shifting operation is performed, the first aggregation cell has its +value set to the average thermal load since the last aggregation step. +Temporal superposition is then applied by means +of a scalar product between the aggregated thermal loads QAgg_flow and the +weighting factors κ. +

+

+Due to Modelica's variable time steps, the load aggregation scheme is modified by separating +the thermal response between the current aggregation time step and everything preceding it. +This is done according to +

+

+\"image\" +
+\"image\" +

+

+where Tb is the borehole wall temperature, +Tg +is the undisturbed ground temperature, +Q is the ground thermal load per borehole length and h = g/(2 π ks) +is a temperature response factor based on the g-function. tk +is the last discrete aggregation time step, meaning that the current time t +satisfies tk≤t≤tk+1. +Δtagg(=tk+1-tk) is the +parameter tLoaAgg in the present model. +

+

+Thus, +ΔTb*(t) +is the borehole wall temperature change due to the thermal history prior to the current +aggregation step. At every aggregation time step, load aggregation and temporal superposition +are used to calculate its discrete value. Assuming no heat injection or extraction until +tk+1, this term is assumed to have a linear +time derivative, which is given by the difference between ΔTb*(tk+1) +(the temperature change from load history at the next discrete aggregation time step, which +is constant over the duration of the ongoing aggregation time step) and the total +temperature change at the last aggregation time step, ΔTb(t). +

+

+\"image\" +

+

+The second term ΔTb,q(t) concerns the ongoing aggregation time step. +To obtain the time derivative of this term, the thermal response factor h is assumed +to vary linearly over the course of an aggregation time step. Therefore, because +the ongoing aggregation time step always concerns the first aggregation cell, its derivative (denoted +by the parameter dTStepdt in this model) can be calculated as +kappa[1], the first value in the kappa vector, +divided by the aggregation time step Δt. +The derivative of the temperature change at the borehole wall is then expressed +as the multiplication of dTStepdt (which only needs to be +calculated once at the start of the simulation) and the heat flow Q at +the borehole wall. +

+

+\"image\" +

+

+\"image\" +

+

+With the two terms in the expression of ΔTb(t) expressed +as time derivatives, ΔTb(t) can itself also be +expressed as its time derivative and implemented as such directly in the Modelica +equations block with the der() operator. +

+

+\"image\" +
+\"image\" +

+

+This load aggregation scheme is validated in + +Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.Validation.Analytic_20Years. +

+

References

+

+Cimmino, M. 2014. Développement et validation expérimentale de facteurs de réponse +thermique pour champs de puits géothermiques, +Ph.D. Thesis, École Polytechnique de Montréal. +

+

+Claesson, J. and Javed, S. 2012. A load-aggregation method to calculate extraction temperatures of borehole heat exchangers. ASHRAE Transactions 118(1): 530-539. +

+", revisions=" +
    +
  • +August 30, 2018, by Michael Wetter:
    +Refactored model to compute the temperature difference relative to the initial temperature, +because the model is independent of the initial temperature. +
  • +
  • +April 5, 2018, by Alex Laferrière:
    +First implementation. +
  • +
+")); +end GroundTemperatureResponse; From af80dd7ef5cf63013c29217d8b86334d3cb3f58f Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 10:22:43 -0600 Subject: [PATCH 04/58] Initial implementation of OneUTube and PartialBorefield templates --- .../plants/templates/OneUTube.mo | 35 ++ .../plants/templates/OneUTube.mot | 35 ++ .../plants/templates/PartialBorefield.mo | 350 +++++++++++++++++ .../plants/templates/PartialBorefield.mot | 352 ++++++++++++++++++ 4 files changed, 772 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo new file mode 100644 index 000000000..e50dece5f --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo @@ -0,0 +1,35 @@ +within Buildings.Fluid.Geothermal.Borefields; +model OneUTube + "Borefield model containing single U-tube boreholes" + extends Buildings.Fluid.Geothermal.Borefields.BaseClasses.PartialBorefield( + redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol); + + annotation ( + defaultComponentName="borFie", + Documentation(info=" +

+This model simulates a borefield containing one or many single U-tube boreholes +using the parameters in the borFieDat record. +

+

+Heat transfer to the soil is modeled using only one borehole heat exchanger. The +fluid mass flow rate into the borehole is divided to reflect the per-borehole +fluid mass flow rate. The borehole model calculates the dynamics within the +borehole itself using an axial discretization and a resistance-capacitance +network for the internal thermal resistances between the individual pipes and +between each pipe and the borehole wall. +

+", revisions=" +
    +
  • +July 2018, by Alex Laferrière:
    +Extended partial model and changed documentation to reflect the new approach +used by the borefield models. +
  • +
  • +July 2014, by Damien Picard:
    +First implementation. +
  • +
+")); +end OneUTube; diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot new file mode 100644 index 000000000..72e13706b --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot @@ -0,0 +1,35 @@ +within {{ project_name }}.GeothermalHeatExchanger; +model {{ model_filename }} + {% raw %}"Borefield model containing single U-tube boreholes" + {% endraw %}extends {{ project_name }}.GeothermalHeatExchanger.PartialBorefield( + {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol); + + annotation ( + defaultComponentName="borFie", + Documentation(info=" +

+This model simulates a borefield containing one or many single U-tube boreholes +using the parameters in the borFieDat record. +

+

+Heat transfer to the soil is modeled using only one borehole heat exchanger. The +fluid mass flow rate into the borehole is divided to reflect the per-borehole +fluid mass flow rate. The borehole model calculates the dynamics within the +borehole itself using an axial discretization and a resistance-capacitance +network for the internal thermal resistances between the individual pipes and +between each pipe and the borehole wall. +

+", revisions=" +
    +
  • +July 2018, by Alex Laferrière:
    +Extended partial model and changed documentation to reflect the new approach +used by the borefield models. +
  • +
  • +July 2014, by Damien Picard:
    +First implementation. +
  • +
+")); +end OneUTube; diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo new file mode 100644 index 000000000..a77d1794e --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo @@ -0,0 +1,350 @@ +within Buildings.Fluid.Geothermal.Borefields.BaseClasses; +partial model PartialBorefield + "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" + + extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( + final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); + + extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( + final dp_nominal=borFieDat.conDat.dp_nominal, + final computeFlowResistance=(borFieDat.conDat.dp_nominal > Modelica.Constants.eps)); + + replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component" + annotation (choices( + choice(redeclare package Medium = Buildings.Media.Water "Water"), + choice(redeclare package Medium = + Buildings.Media.Antifreeze.PropyleneGlycolWater ( + property_T=293.15, + X_a=0.40) + "Propylene glycol water, 40% mass fraction"))); + + constant Real mSenFac(min=1)=1 + "Factor for scaling the sensible thermal mass of the volume"; + + // Assumptions + parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial + "Type of energy balance: dynamic (3 initialization options) or steady state" + annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Conservation equations")); + + // Initialization + parameter Medium.AbsolutePressure p_start = Medium.p_default + "Start value of pressure" + annotation(Dialog(tab = "Initialization")); + + // Simulation parameters + parameter Modelica.Units.SI.Time tLoaAgg=300 + "Time resolution of load aggregation"; + parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; + parameter Integer nSeg(min=1)=10 + "Number of segments to use in vertical discretization of the boreholes"; + parameter Boolean forceGFunCalc = false + "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" + annotation (Dialog(tab="Advanced")); + parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("modelica://GHP/Resources/Data/System/SampleGFunction.mat") + "File name of g-function data file in MAT format"; + parameter Integer nTimTot = 76 + "Total length of g-function vector"; + + // General parameters of borefield + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat "Borefield data" + annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); + + // Temperature gradient in undisturbed soil + parameter Modelica.Units.SI.Temperature TExt0_start=283.15 + "Initial far field temperature" + annotation (Dialog(tab="Initialization", group="Soil")); + parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then + TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg} + "Temperature of the undisturbed ground" + annotation (Dialog(tab="Initialization", group="Soil")); + + parameter Modelica.Units.SI.Temperature TGro_start[nSeg]=TExt_start + "Start value of grout temperature" + annotation (Dialog(tab="Initialization", group="Filling material")); + + parameter Modelica.Units.SI.Temperature TFlu_start[nSeg]=TGro_start + "Start value of fluid temperature" annotation (Dialog(tab="Initialization")); + + parameter Modelica.Units.SI.Height z0=10 + "Depth below which the temperature gradient starts" + annotation (Dialog(tab="Initialization", group="Temperature profile")); + parameter Real dT_dz(unit="K/m")=0.01 + "Vertical temperature gradient of the undisturbed soil for h below z0" + annotation (Dialog(tab="Initialization", group="Temperature profile")); + + // Dynamics of filling material + parameter Boolean dynFil=true + "Set to false to remove the dynamics of the filling material." + annotation (Dialog(tab="Dynamics")); + + Modelica.Blocks.Interfaces.RealOutput TBorAve(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit = "degC", + start=TExt0_start) + "Average borehole wall temperature in the borefield" + annotation (Placement(transformation(extent={{100,34},{120,54}}))); + + Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse groTemRes( + final tLoaAgg=tLoaAgg, + final nCel=nCel, + final borFieDat=borFieDat, + final forceGFunCalc=forceGFunCalc, + final gFunFilNam=gFunFilNam, + final nTimTot=nTimTot) + "Ground temperature response" + annotation (Placement(transformation(extent={{20,70},{40,90}}))); + + replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole borHol constrainedby + Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( + redeclare final package Medium = Medium, + final borFieDat=borFieDat, + final nSeg=nSeg, + final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, + final dp_nominal=dp_nominal, + final allowFlowReversal=allowFlowReversal, + final m_flow_small=m_flow_small, + final show_T=show_T, + final computeFlowResistance=computeFlowResistance, + final from_dp=from_dp, + final linearizeFlowResistance=linearizeFlowResistance, + final deltaM=deltaM, + final energyDynamics=energyDynamics, + final p_start=p_start, + final mSenFac=mSenFac, + final dynFil=dynFil, + final TFlu_start=TFlu_start, + final TGro_start=TGro_start) "Borehole" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + +protected + parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i - + 0.5) for i in 1:nSeg} + "Distance from the surface to the considered segment"; + + Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloDiv( + redeclare final package Medium = Medium, + allowFlowReversal=allowFlowReversal, + final k=1/borFieDat.conDat.nBor) + "Division of flow rate" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + + Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloMul( + redeclare final package Medium = Medium, + allowFlowReversal=allowFlowReversal, + final k=borFieDat.conDat.nBor) "Mass flow multiplier" + annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); + + Modelica.Blocks.Math.Gain gaiQ_flow(k=borFieDat.conDat.nBor) + "Gain to multiply the heat extracted by one borehole by the number of boreholes" + annotation (Placement(transformation(extent={{-20,70},{0,90}}))); + Buildings.Utilities.Math.Average AveTBor(nin=nSeg) + "Average temperature of all the borehole segments" + annotation (Placement(transformation(extent={{50,34},{70,54}}))); + + Modelica.Blocks.Sources.Constant TSoiUnd[nSeg]( + k = TExt_start, + each y(unit="K", + displayUnit="degC")) + "Undisturbed soil temperature" + annotation (Placement(transformation(extent={{-40,14},{-20,34}}))); + + Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor QBorHol[nSeg] + "Heat flow rate of all segments of the borehole" + annotation (Placement(transformation(extent={{-10,10},{10,-10}}, + rotation=90, + origin={0,-10}))); + + Buildings.HeatTransfer.Sources.PrescribedTemperature TemBorWal[nSeg] + "Borewall temperature" + annotation (Placement(transformation(extent={{50,6},{70,26}}))); + + Modelica.Blocks.Math.Add TSoiDis[nSeg](each final k1=1, each final k2=1) + "Addition of undisturbed soil temperature and change of soil temperature" + annotation (Placement(transformation(extent={{10,20},{30,40}}))); + + Modelica.Blocks.Math.Sum QTotSeg_flow( + final nin=nSeg, + final k = ones(nSeg)) + "Total heat flow rate for all segments of this borehole" + annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); + + Modelica.Blocks.Routing.Replicator repDelTBor(final nout=nSeg) + "Signal replicator for temperature difference of the borehole" + annotation (Placement(transformation(extent={{60,70},{80,90}}))); + +equation + connect(masFloMul.port_b, port_b) + annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}}, + color={0,127,255})); + connect(masFloDiv.port_a, port_a) + annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}}, + color={0,127,255})); + connect(masFloDiv.port_b, borHol.port_a) + annotation (Line(points={{-60,-40},{-10,-40}}, color={0,127,255})); + connect(borHol.port_b, masFloMul.port_a) + annotation (Line(points={{10,-40},{60,-40}}, color={0,127,255})); + connect(QBorHol.port_a, borHol.port_wall) + annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}}, + color={191,0,0})); + connect(QBorHol.Q_flow, QTotSeg_flow.u) + annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}}, + color={0,0,127})); + connect(groTemRes.delTBor, repDelTBor.u) + annotation (Line(points={{41,80},{58,80}}, color={0,0,127})); + connect(TSoiDis.u1, repDelTBor.y) annotation (Line(points={{8,36},{0,36},{0, + 60},{90,60},{90,80},{81,80}}, + color={0,0,127})); + connect(TSoiDis.u2, TSoiUnd.y) annotation (Line(points={{8,24},{-19,24}}, + color={0,0,127})); + connect(QTotSeg_flow.y, gaiQ_flow.u) + annotation (Line(points={{-39,80},{-22,80}}, color={0,0,127})); + connect(gaiQ_flow.y, groTemRes.QBor_flow) + annotation (Line(points={{1,80},{19,80}}, color={0,0,127})); + connect(TSoiDis.y, TemBorWal.T) + annotation (Line(points={{31,30},{36,30},{36,16},{48,16}}, + color={0,0,127})); + connect(QBorHol.port_b, TemBorWal.port) annotation (Line(points={{4.44089e-16, + 0},{0,0},{0,4},{80,4},{80,16},{70,16}}, color={191,0,0})); + connect(TSoiDis.y, AveTBor.u) annotation (Line(points={{31,30},{36,30},{36,44}, + {48,44}}, color={0,0,127})); + connect(AveTBor.y, TBorAve) + annotation (Line(points={{71,44},{110,44}}, color={0,0,127})); + annotation ( + Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,60},{100,-66}}, + lineColor={0,0,0}, + fillColor={234,210,210}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-88,-6},{-32,-62}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-82,-12},{-38,-56}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-88,54},{-32,-2}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-82,48},{-38,4}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-26,54},{30,-2}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-20,48},{24,4}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-28,-6},{28,-62}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-22,-12},{22,-56}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{36,56},{92,0}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{42,50},{86,6}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{38,-4},{94,-60}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{44,-10},{88,-54}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward)}), + Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, + 100}})),Documentation(info=" +

+This model simulates a borefield containing one or multiple boreholes +using the parameters in the borFieDat record. +

+

+Heat transfer to the soil is modeled using only one borehole heat exchanger +(To be added in an extended model). The +fluid mass flow rate into the borehole is divided to reflect the per-borehole +fluid mass flow rate. The borehole model calculates the dynamics within the +borehole itself using an axial discretization and a resistance-capacitance +network for the internal thermal resistances between the individual pipes and +between each pipe and the borehole wall. +

+

+The thermal interaction between the borehole wall and the surrounding soil +is modeled using + +Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse, +which uses a cell-shifting load aggregation technique to calculate the borehole wall +temperature after calculating and/or read (from a previous calculation) the borefield's thermal response factor. +

+", revisions=" +
    +
  • +April 9, 2021, by Michael Wetter:
    +Corrected placement of each keyword.
    +See Buildings, PR #2440. +
  • +
  • +August 25, 2020, by Filip Jorissen:
    +Switched port connections for masFloDiv. +See #41. +
  • +
  • +March 24, 2020, by Damien Picard:
    +Propagated flowReversal into masFloDiv and masFloMul. +
  • +
  • +June 7, 2019, by Massimo Cimmino:
    +Converted instances that are not of interest to user to be protected. +
  • +
  • +June 4, 2019, by Massimo Cimmino:
    +Added an output for the average borehole wall temperature. +See +#1107. +
  • +
  • +April 11, 2019, by Filip Jorissen:
    +Added choicesAllMatching for borFieDat. +See #1117. +
  • +
  • +January 18, 2019, by Jianjun Hu:
    +Limited the media choice to water and glycolWater. +See #1050. +
  • +
  • +July 2018, by Alex Laferrière:
    +Changed into a partial model and changed documentation to reflect the new approach +used by the borefield models. +
  • +
  • +July 2014, by Damien Picard:
    +First implementation. +
  • +
+")); +end PartialBorefield; diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot new file mode 100644 index 000000000..52a3bcafa --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -0,0 +1,352 @@ +within {{ project_name }}.GeothermalHeatExchanger; +{% raw %}partial model PartialBorefield + "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" + + extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( + redeclare package Medium = Buildings.Media.Water, + final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); + + extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( + final dp_nominal=borFieDat.conDat.dp_nominal, + final computeFlowResistance=(borFieDat.conDat.dp_nominal > Modelica.Constants.eps)); + + replaceable package Medium = Buildings.Media.Water "Medium in the component" + annotation (choices( + choice(redeclare package Medium = Buildings.Media.Water "Water"), + choice(redeclare package Medium = + Buildings.Media.Antifreeze.PropyleneGlycolWater ( + property_T=293.15, + X_a=0.40) + "Propylene glycol water, 40% mass fraction"))); + + constant Real mSenFac(min=1)=1 + "Factor for scaling the sensible thermal mass of the volume"; + + // Assumptions + parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial + "Type of energy balance: dynamic (3 initialization options) or steady state" + annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Conservation equations")); + + // Initialization + parameter Medium.AbsolutePressure p_start = Medium.p_default + "Start value of pressure" + annotation(Dialog(tab = "Initialization")); + + // Simulation parameters + parameter Modelica.Units.SI.Time tLoaAgg=300 + "Time resolution of load aggregation"; + parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; + parameter Integer nSeg(min=1)=10 + "Number of segments to use in vertical discretization of the boreholes"; + parameter Boolean forceGFunCalc = false + "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" + annotation (Dialog(tab="Advanced")); + {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource({{ghe_data["gfunction_file_path"]}}) + {% raw %} "File name of g-function data file in MAT format"; + {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction_file_rows"]}} + {% raw %} "Total length of g-function vector"; + + // General parameters of borefield + {% endraw %}parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat = {{ globals.borFieDat }} + {% raw %} "Borefield data" + annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); + + // Temperature gradient in undisturbed soil + {% endraw %}parameter Modelica.Units.SI.Temperature TExt0_start={{ghe_data["initial_ground_temperature"]}}+273.15 + {% raw %} "Initial far field temperature" + annotation (Dialog(tab="Initialization", group="Soil")); + parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then + TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg} + "Temperature of the undisturbed ground" + annotation (Dialog(tab="Initialization", group="Soil")); + + parameter Modelica.Units.SI.Temperature TGro_start[nSeg]=TExt_start + "Start value of grout temperature" + annotation (Dialog(tab="Initialization", group="Filling material")); + + parameter Modelica.Units.SI.Temperature TFlu_start[nSeg]=TGro_start + "Start value of fluid temperature" annotation (Dialog(tab="Initialization")); + + parameter Modelica.Units.SI.Height z0=10 + "Depth below which the temperature gradient starts" + annotation (Dialog(tab="Initialization", group="Temperature profile")); + parameter Real dT_dz(unit="K/m")=0.01 + "Vertical temperature gradient of the undisturbed soil for h below z0" + annotation (Dialog(tab="Initialization", group="Temperature profile")); + + // Dynamics of filling material + parameter Boolean dynFil=false + "Set to false to remove the dynamics of the filling material." + annotation (Dialog(tab="Dynamics")); + + Modelica.Blocks.Interfaces.RealOutput TBorAve(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit = "degC", + start=TExt0_start) + "Average borehole wall temperature in the borefield" + annotation (Placement(transformation(extent={{100,34},{120,54}}))); + + Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse groTemRes( + final tLoaAgg=tLoaAgg, + final nCel=nCel, + final borFieDat=borFieDat, + final forceGFunCalc=forceGFunCalc, + final gFunFilNam=gFunFilNam, + final nTimTot=nTimTot) + "Ground temperature response" + annotation (Placement(transformation(extent={{20,70},{40,90}}))); + + replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole borHol constrainedby + Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( + redeclare final package Medium = Medium, + final borFieDat=borFieDat, + final nSeg=nSeg, + final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, + final dp_nominal=dp_nominal, + final allowFlowReversal=allowFlowReversal, + final m_flow_small=m_flow_small, + final show_T=show_T, + final computeFlowResistance=computeFlowResistance, + final from_dp=from_dp, + final linearizeFlowResistance=linearizeFlowResistance, + final deltaM=deltaM, + final energyDynamics=energyDynamics, + final p_start=p_start, + final mSenFac=mSenFac, + final dynFil=dynFil, + final TFlu_start=TFlu_start, + final TGro_start=TGro_start) "Borehole" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + +protected + parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i - + 0.5) for i in 1:nSeg} + "Distance from the surface to the considered segment"; + + Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloDiv( + redeclare final package Medium = Medium, + allowFlowReversal=allowFlowReversal, + final k=1/borFieDat.conDat.nBor) + "Division of flow rate" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + + Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloMul( + redeclare final package Medium = Medium, + allowFlowReversal=allowFlowReversal, + final k=borFieDat.conDat.nBor) "Mass flow multiplier" + annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); + + Modelica.Blocks.Math.Gain gaiQ_flow(k=borFieDat.conDat.nBor) + "Gain to multiply the heat extracted by one borehole by the number of boreholes" + annotation (Placement(transformation(extent={{-20,70},{0,90}}))); + Buildings.Utilities.Math.Average AveTBor(nin=nSeg) + "Average temperature of all the borehole segments" + annotation (Placement(transformation(extent={{50,34},{70,54}}))); + + Modelica.Blocks.Sources.Constant TSoiUnd[nSeg]( + k = TExt_start, + each y(unit="K", + displayUnit="degC")) + "Undisturbed soil temperature" + annotation (Placement(transformation(extent={{-40,14},{-20,34}}))); + + Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor QBorHol[nSeg] + "Heat flow rate of all segments of the borehole" + annotation (Placement(transformation(extent={{-10,10},{10,-10}}, + rotation=90, + origin={0,-10}))); + + Buildings.HeatTransfer.Sources.PrescribedTemperature TemBorWal[nSeg] + "Borewall temperature" + annotation (Placement(transformation(extent={{50,6},{70,26}}))); + + Modelica.Blocks.Math.Add TSoiDis[nSeg](each final k1=1, each final k2=1) + "Addition of undisturbed soil temperature and change of soil temperature" + annotation (Placement(transformation(extent={{10,20},{30,40}}))); + + Modelica.Blocks.Math.Sum QTotSeg_flow( + final nin=nSeg, + final k = ones(nSeg)) + "Total heat flow rate for all segments of this borehole" + annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); + + Modelica.Blocks.Routing.Replicator repDelTBor(final nout=nSeg) + "Signal replicator for temperature difference of the borehole" + annotation (Placement(transformation(extent={{60,70},{80,90}}))); + +equation + connect(masFloMul.port_b, port_b) + annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}}, + color={0,127,255})); + connect(masFloDiv.port_a, port_a) + annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}}, + color={0,127,255})); + connect(masFloDiv.port_b, borHol.port_a) + annotation (Line(points={{-60,-40},{-10,-40}}, color={0,127,255})); + connect(borHol.port_b, masFloMul.port_a) + annotation (Line(points={{10,-40},{60,-40}}, color={0,127,255})); + connect(QBorHol.port_a, borHol.port_wall) + annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}}, + color={191,0,0})); + connect(QBorHol.Q_flow, QTotSeg_flow.u) + annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}}, + color={0,0,127})); + connect(groTemRes.delTBor, repDelTBor.u) + annotation (Line(points={{41,80},{58,80}}, color={0,0,127})); + connect(TSoiDis.u1, repDelTBor.y) annotation (Line(points={{8,36},{0,36},{0, + 60},{90,60},{90,80},{81,80}}, + color={0,0,127})); + connect(TSoiDis.u2, TSoiUnd.y) annotation (Line(points={{8,24},{-19,24}}, + color={0,0,127})); + connect(QTotSeg_flow.y, gaiQ_flow.u) + annotation (Line(points={{-39,80},{-22,80}}, color={0,0,127})); + connect(gaiQ_flow.y, groTemRes.QBor_flow) + annotation (Line(points={{1,80},{19,80}}, color={0,0,127})); + connect(TSoiDis.y, TemBorWal.T) + annotation (Line(points={{31,30},{36,30},{36,16},{48,16}}, + color={0,0,127})); + connect(QBorHol.port_b, TemBorWal.port) annotation (Line(points={{4.44089e-16, + 0},{0,0},{0,4},{80,4},{80,16},{70,16}}, color={191,0,0})); + connect(TSoiDis.y, AveTBor.u) annotation (Line(points={{31,30},{36,30},{36,44}, + {48,44}}, color={0,0,127})); + connect(AveTBor.y, TBorAve) + annotation (Line(points={{71,44},{110,44}}, color={0,0,127})); + annotation ( + Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,60},{100,-66}}, + lineColor={0,0,0}, + fillColor={234,210,210}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-88,-6},{-32,-62}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-82,-12},{-38,-56}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-88,54},{-32,-2}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-82,48},{-38,4}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-26,54},{30,-2}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-20,48},{24,4}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-28,-6},{28,-62}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-22,-12},{22,-56}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{36,56},{92,0}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{42,50},{86,6}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{38,-4},{94,-60}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{44,-10},{88,-54}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward)}), + Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, + 100}})),Documentation(info=" +

+This model simulates a borefield containing one or multiple boreholes +using the parameters in the borFieDat record. +

+

+Heat transfer to the soil is modeled using only one borehole heat exchanger +(To be added in an extended model). The +fluid mass flow rate into the borehole is divided to reflect the per-borehole +fluid mass flow rate. The borehole model calculates the dynamics within the +borehole itself using an axial discretization and a resistance-capacitance +network for the internal thermal resistances between the individual pipes and +between each pipe and the borehole wall. +

+

+The thermal interaction between the borehole wall and the surrounding soil +is modeled using + +Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse, +which uses a cell-shifting load aggregation technique to calculate the borehole wall +temperature after calculating and/or read (from a previous calculation) the borefield's thermal response factor. +

+", revisions=" +
    +
  • +April 9, 2021, by Michael Wetter:
    +Corrected placement of each keyword.
    +See Buildings, PR #2440. +
  • +
  • +August 25, 2020, by Filip Jorissen:
    +Switched port connections for masFloDiv. +See #41. +
  • +
  • +March 24, 2020, by Damien Picard:
    +Propagated flowReversal into masFloDiv and masFloMul. +
  • +
  • +June 7, 2019, by Massimo Cimmino:
    +Converted instances that are not of interest to user to be protected. +
  • +
  • +June 4, 2019, by Massimo Cimmino:
    +Added an output for the average borehole wall temperature. +See +#1107. +
  • +
  • +April 11, 2019, by Filip Jorissen:
    +Added choicesAllMatching for borFieDat. +See #1117. +
  • +
  • +January 18, 2019, by Jianjun Hu:
    +Limited the media choice to water and glycolWater. +See #1050. +
  • +
  • +July 2018, by Alex Laferrière:
    +Changed into a partial model and changed documentation to reflect the new approach +used by the borefield models. +
  • +
  • +July 2014, by Damien Picard:
    +First implementation. +
  • +
+")); +end PartialBorefield; From 2ef633cfded489a1ef0d8e3985bc638f1c568e1e Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 15:12:30 -0600 Subject: [PATCH 05/58] Fix bug of inconsistent template name and Modelica class name of BuildingTimeSeries --- .../load_connectors/templates/TimeSeriesBuildingWithETS.mot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot b/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot index 6caa07074..f88f796a6 100644 --- a/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot +++ b/geojson_modelica_translator/model_connectors/load_connectors/templates/TimeSeriesBuildingWithETS.mot @@ -4,7 +4,7 @@ within {{ project_name }}.Loads.{{ model_name }}; extends Buildings.Experimental.DHC.Loads.Combined.BaseClasses.PartialBuildingWithETS( final allowFlowReversalSer=true, // redeclare Buildings.Experimental.DHC.Loads.BaseClasses.Examples.BaseClasses.BuildingTimeSeries bui( - {% endraw %}redeclare {{ project_name }}.Loads.{{ model_name }}.BuildingTimeSeries bui( + {% endraw %}redeclare {{ project_name }}.Loads.{{ model_name }}.TimeSeriesBuilding bui( {% raw %}have_hotWat=false, T_aHeaWat_nominal=ets.THeaWatSup_nominal, T_bHeaWat_nominal=ets.THeaWatRet_nominal, From 7bfb5b0d8c164888573c1ac430005e91aa962cf8 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 15:32:11 -0600 Subject: [PATCH 06/58] Update system template, removed temperature sensors --- .../districts/templates/SingleGHE.mot | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot index e1ad4f5da..c7311bd27 100644 --- a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot +++ b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot @@ -128,18 +128,6 @@ model SingleGHE T=283.15, nPorts=2) "Expansion vessel" annotation (Placement(transformation(extent={{140,-76},{120,-56}}))); - Buildings.Fluid.Sensors.TemperatureTwoPort TUTubIn( - redeclare package Medium = Medium, - m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, - tau=0) - "Inlet temperature of the borefield with UTube configuration" - annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); - Buildings.Fluid.Sensors.TemperatureTwoPort TUTubOut( - redeclare package Medium = Medium, - m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, - tau=0) - "Inlet temperature of the borefield with UTube configuration" - annotation (Placement(transformation(extent={{40,0},{60,20}}))); Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMinSet[nBui](each k= 28 + 273.15) "Heating water supply temperature set point - Minimum value" @@ -168,16 +156,8 @@ equation // {% endfor %} - connect(TUTubIn.port_b,borFieUTub. port_a) - annotation (Line(points={{-20,10},{0,10}}, color={0,127,255})); - connect(borFieUTub.port_b,TUTubOut. port_a) - annotation (Line(points={{20,10},{40,10}}, color={0,127,255})); - connect(TUTubOut.port_b, dis.port_aDisSup) annotation (Line(points={{60,10},{70, - 10}}, color={0,127,255})); connect(masFloMaiPum.y,pumDis. m_flow_in) annotation (Line(points={{-21,-60},{ -32,-60}}, color={0,0,127})); - connect(pumDis.port_b, TUTubIn.port_a) annotation (Line(points={{-44,-50},{-44, - 10},{-40,10}}, color={0,127,255})); connect(dis.ports_bCon, bui.port_aSerAmb) annotation (Line(points={{78,20},{78, 38},{74,38},{74,50},{80,50}}, color={0,127,255})); connect(bui.port_bSerAmb, dis.ports_aCon) annotation (Line(points={{100,50},{106, @@ -196,6 +176,10 @@ equation -80},{108,-80},{108,-64},{120,-64}}, color={0,127,255})); connect(expVes.ports[2], dis.port_bDisSup) annotation (Line(points={{120,-68}, {108,-68},{108,-8},{122,-8},{122,10},{110,10}}, color={0,127,255})); + connect(pumDis.port_b, borFieUTub.port_a) + annotation (Line(points={{-44,-50},{-44,10},{0,10}}, color={0,127,255})); + connect(borFieUTub.port_b, dis.port_aDisSup) + annotation (Line(points={{20,10},{70,10}}, color={0,127,255})); annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100}, {100,100}})), Diagram( coordinateSystem(preserveAspectRatio=false, extent={{-140,-100},{140,100}})), From 2c65be73b4cc708ed4ba2b6aff00f3a181c80c3a Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 15 Mar 2023 15:34:00 -0600 Subject: [PATCH 07/58] District energy test file that has multiple buildings --- .../test_time_series_multiple_5g.py | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 tests/model_connectors/test_time_series_multiple_5g.py diff --git a/tests/model_connectors/test_time_series_multiple_5g.py b/tests/model_connectors/test_time_series_multiple_5g.py new file mode 100644 index 000000000..0bd5f578c --- /dev/null +++ b/tests/model_connectors/test_time_series_multiple_5g.py @@ -0,0 +1,79 @@ +# :copyright (c) URBANopt, Alliance for Sustainable Energy, LLC, and other contributors. +# See also https://github.com/urbanopt/geojson-modelica-translator/blob/develop/LICENSE.md + +import os +from pathlib import Path + +import pytest + +from geojson_modelica_translator.geojson.urbanopt_geojson import ( + UrbanOptGeoJson +) +from geojson_modelica_translator.model_connectors.couplings.coupling import ( + Coupling +) +from geojson_modelica_translator.model_connectors.couplings.graph import ( + CouplingGraph +) +from geojson_modelica_translator.model_connectors.districts.district import ( + District +) +from geojson_modelica_translator.model_connectors.load_connectors.time_series import ( + TimeSeries +) +from geojson_modelica_translator.model_connectors.networks.network_ambient_water_stub import ( + NetworkAmbientWaterStub +) +from geojson_modelica_translator.system_parameters.system_parameters import ( + SystemParameters +) + +from ..base_test_case import TestCaseBase + + +class DistrictSystemTest(TestCaseBase): + def setUp(self): + super().setUp() + + project_name = "time_series_multiple_5g" + self.data_dir, self.output_dir = self.set_up(os.path.dirname(__file__), project_name) + + # load in the example geojson with a single office building + filename = os.path.join(self.data_dir, "time_series_ex1.json") + self.gj = UrbanOptGeoJson(filename) + + # load system parameter data + filename = os.path.join(self.data_dir, "time_series_5g_sys_params.json") + sys_params = SystemParameters(filename) + + # create ambient water stub + ambient_water_stub = NetworkAmbientWaterStub(sys_params) + + # create our our load/ets/stubs + all_couplings = [] + for geojson_load in self.gj.buildings: + time_series_load = TimeSeries(sys_params, geojson_load) + all_couplings.append(Coupling(time_series_load, ambient_water_stub, district_type='5G')) + + # create the couplings and graph + graph = CouplingGraph(all_couplings) + + self.district = District( + root_dir=self.output_dir, + project_name=project_name, + system_parameters=sys_params, + coupling_graph=graph + ) + + self.district.to_modelica() + + def test_build_district_system(self): + root_path = Path(self.district._scaffold.districts_path.files_dir).resolve() + assert (root_path / 'DistrictEnergySystem.mo').exists() + + @pytest.mark.simulation + def test_simulate_district_system(self): + root_path = Path(self.district._scaffold.districts_path.files_dir).resolve() + self.run_and_assert_in_docker(Path(root_path) / 'DistrictEnergySystem.mo', + project_path=self.district._scaffold.project_path, + project_name=self.district._scaffold.project_name) From adf2ad634286c97553b955fe22df708e9b7f31df Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 10:48:15 -0600 Subject: [PATCH 08/58] Add comment and test version control with VSCode --- .../model_connectors/plants/templates/PartialBorefield.mot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot index 52a3bcafa..9acc93b8d 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -86,7 +86,7 @@ within {{ project_name }}.GeothermalHeatExchanger; "Average borehole wall temperature in the borefield" annotation (Placement(transformation(extent={{100,34},{120,54}}))); - Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse groTemRes( + Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse groTemRes( // This needs to be overrided!!! final tLoaAgg=tLoaAgg, final nCel=nCel, final borFieDat=borFieDat, From 243ca2ded869dcf4574ab48414f39fae752fa293 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 11:02:05 -0600 Subject: [PATCH 09/58] Add declaration of borefield data parameters --- .../plants/templates/PartialBorefield.mot | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot index 9acc93b8d..bb9ca98e2 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -47,8 +47,28 @@ within {{ project_name }}.GeothermalHeatExchanger; {% raw %} "Total length of g-function vector"; // General parameters of borefield - {% endraw %}parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat = {{ globals.borFieDat }} - {% raw %} "Borefield data" + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat = ( + final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( + {% endraw %}kFil={{ghe_data["fill_conductivity"]}}, + cFil={{ghe_data["fill_specific_heat_capacity"]}}, + dFil={{ghe_data["fill_density"]}}), + {% raw %}final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( + {% endraw %}kSoi={{ghe_data["soil_conductivity"]}}, + cSoi={{ghe_data["soil_specific_heat_capacity"]}}, + dSoi={{ghe_data["soil_density"]}}), + {% raw %}final conDat= + Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( + dp_nominal=35000, + {% endraw %}borCon={{ghe_data["borehole_configuration"]}}, + mBor_flow_nominal={{ghe_data["nominal_mass_flow_per_borehole"]}}, + hBor={{ghe_data["borehole_height"]}}, + rBor={{ghe_data["borehole_radius"]}}, + nBor={{ghe_data["number_of_boreholes"]}}, + rTub={{ghe_data["tube_radius"]}}, + kTub={{ghe_data["tube_conductivity"]}}, + eTub={{ghe_data["tube_thickness"]}}, + xC={{ghe_data["shank_spacing"]}})) + {% raw %}"Borefield data" annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); // Temperature gradient in undisturbed soil From 78d5a57d62dda66b6dee10164a300b1f8d821378 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 11:45:57 -0600 Subject: [PATCH 10/58] Add template for TwoUTubes borefield --- .../plants/templates/TwoUTubes.mot | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot diff --git a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot new file mode 100644 index 000000000..91a408c73 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot @@ -0,0 +1,34 @@ +within {{ project_name }}.GeothermalHeatExchanger; +model {{ model_filename }} + {% raw %}"Borefield model containing double U-tube boreholes" + {% endraw %}extends {{ project_name }}.GeothermalHeatExchanger.PartialBorefield( + {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube borHol); + annotation ( + defaultComponentName="borFie", + Documentation(info=" +

+This model simulates a borefield containing one or many double U-tube boreholes +using the parameters in the borFieDat record. +

+

+Heat transfer to the soil is modeled using only one borehole heat exchanger. The +fluid mass flow rate into the borehole is divided to reflect the per-borehole +fluid mass flow rate. The borehole model calculates the dynamics within the +borehole itself using an axial discretization and a resistance-capacitance +network for the internal thermal resistances between the individual pipes and +between each pipe and the borehole wall. +

+", revisions=" +
    +
  • +July 2018, by Alex Laferrière:
    +Extended partial model and changed documentation to reflect the new approach +used by the borefield models. +
  • +
  • +July 2014, by Damien Picard:
    +First implementation. +
  • +
+")); +end TwoUTubes; From 82366c68fe748f29e59d0b925965e654a1ea27fb Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 11:46:15 -0600 Subject: [PATCH 11/58] Remove unneeded mo files --- .../plants/templates/OneUTube.mo | 35 -- .../plants/templates/PartialBorefield.mo | 350 ------------------ 2 files changed, 385 deletions(-) delete mode 100644 geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo delete mode 100644 geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo deleted file mode 100644 index e50dece5f..000000000 --- a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mo +++ /dev/null @@ -1,35 +0,0 @@ -within Buildings.Fluid.Geothermal.Borefields; -model OneUTube - "Borefield model containing single U-tube boreholes" - extends Buildings.Fluid.Geothermal.Borefields.BaseClasses.PartialBorefield( - redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol); - - annotation ( - defaultComponentName="borFie", - Documentation(info=" -

-This model simulates a borefield containing one or many single U-tube boreholes -using the parameters in the borFieDat record. -

-

-Heat transfer to the soil is modeled using only one borehole heat exchanger. The -fluid mass flow rate into the borehole is divided to reflect the per-borehole -fluid mass flow rate. The borehole model calculates the dynamics within the -borehole itself using an axial discretization and a resistance-capacitance -network for the internal thermal resistances between the individual pipes and -between each pipe and the borehole wall. -

-", revisions=" -
    -
  • -July 2018, by Alex Laferrière:
    -Extended partial model and changed documentation to reflect the new approach -used by the borefield models. -
  • -
  • -July 2014, by Damien Picard:
    -First implementation. -
  • -
-")); -end OneUTube; diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo deleted file mode 100644 index a77d1794e..000000000 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mo +++ /dev/null @@ -1,350 +0,0 @@ -within Buildings.Fluid.Geothermal.Borefields.BaseClasses; -partial model PartialBorefield - "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" - - extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( - final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); - - extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( - final dp_nominal=borFieDat.conDat.dp_nominal, - final computeFlowResistance=(borFieDat.conDat.dp_nominal > Modelica.Constants.eps)); - - replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component" - annotation (choices( - choice(redeclare package Medium = Buildings.Media.Water "Water"), - choice(redeclare package Medium = - Buildings.Media.Antifreeze.PropyleneGlycolWater ( - property_T=293.15, - X_a=0.40) - "Propylene glycol water, 40% mass fraction"))); - - constant Real mSenFac(min=1)=1 - "Factor for scaling the sensible thermal mass of the volume"; - - // Assumptions - parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial - "Type of energy balance: dynamic (3 initialization options) or steady state" - annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Conservation equations")); - - // Initialization - parameter Medium.AbsolutePressure p_start = Medium.p_default - "Start value of pressure" - annotation(Dialog(tab = "Initialization")); - - // Simulation parameters - parameter Modelica.Units.SI.Time tLoaAgg=300 - "Time resolution of load aggregation"; - parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; - parameter Integer nSeg(min=1)=10 - "Number of segments to use in vertical discretization of the boreholes"; - parameter Boolean forceGFunCalc = false - "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" - annotation (Dialog(tab="Advanced")); - parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("modelica://GHP/Resources/Data/System/SampleGFunction.mat") - "File name of g-function data file in MAT format"; - parameter Integer nTimTot = 76 - "Total length of g-function vector"; - - // General parameters of borefield - parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat "Borefield data" - annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); - - // Temperature gradient in undisturbed soil - parameter Modelica.Units.SI.Temperature TExt0_start=283.15 - "Initial far field temperature" - annotation (Dialog(tab="Initialization", group="Soil")); - parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then - TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg} - "Temperature of the undisturbed ground" - annotation (Dialog(tab="Initialization", group="Soil")); - - parameter Modelica.Units.SI.Temperature TGro_start[nSeg]=TExt_start - "Start value of grout temperature" - annotation (Dialog(tab="Initialization", group="Filling material")); - - parameter Modelica.Units.SI.Temperature TFlu_start[nSeg]=TGro_start - "Start value of fluid temperature" annotation (Dialog(tab="Initialization")); - - parameter Modelica.Units.SI.Height z0=10 - "Depth below which the temperature gradient starts" - annotation (Dialog(tab="Initialization", group="Temperature profile")); - parameter Real dT_dz(unit="K/m")=0.01 - "Vertical temperature gradient of the undisturbed soil for h below z0" - annotation (Dialog(tab="Initialization", group="Temperature profile")); - - // Dynamics of filling material - parameter Boolean dynFil=true - "Set to false to remove the dynamics of the filling material." - annotation (Dialog(tab="Dynamics")); - - Modelica.Blocks.Interfaces.RealOutput TBorAve(final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit = "degC", - start=TExt0_start) - "Average borehole wall temperature in the borefield" - annotation (Placement(transformation(extent={{100,34},{120,54}}))); - - Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse groTemRes( - final tLoaAgg=tLoaAgg, - final nCel=nCel, - final borFieDat=borFieDat, - final forceGFunCalc=forceGFunCalc, - final gFunFilNam=gFunFilNam, - final nTimTot=nTimTot) - "Ground temperature response" - annotation (Placement(transformation(extent={{20,70},{40,90}}))); - - replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole borHol constrainedby - Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( - redeclare final package Medium = Medium, - final borFieDat=borFieDat, - final nSeg=nSeg, - final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, - final dp_nominal=dp_nominal, - final allowFlowReversal=allowFlowReversal, - final m_flow_small=m_flow_small, - final show_T=show_T, - final computeFlowResistance=computeFlowResistance, - final from_dp=from_dp, - final linearizeFlowResistance=linearizeFlowResistance, - final deltaM=deltaM, - final energyDynamics=energyDynamics, - final p_start=p_start, - final mSenFac=mSenFac, - final dynFil=dynFil, - final TFlu_start=TFlu_start, - final TGro_start=TGro_start) "Borehole" - annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); - -protected - parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i - - 0.5) for i in 1:nSeg} - "Distance from the surface to the considered segment"; - - Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloDiv( - redeclare final package Medium = Medium, - allowFlowReversal=allowFlowReversal, - final k=1/borFieDat.conDat.nBor) - "Division of flow rate" - annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); - - Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloMul( - redeclare final package Medium = Medium, - allowFlowReversal=allowFlowReversal, - final k=borFieDat.conDat.nBor) "Mass flow multiplier" - annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); - - Modelica.Blocks.Math.Gain gaiQ_flow(k=borFieDat.conDat.nBor) - "Gain to multiply the heat extracted by one borehole by the number of boreholes" - annotation (Placement(transformation(extent={{-20,70},{0,90}}))); - Buildings.Utilities.Math.Average AveTBor(nin=nSeg) - "Average temperature of all the borehole segments" - annotation (Placement(transformation(extent={{50,34},{70,54}}))); - - Modelica.Blocks.Sources.Constant TSoiUnd[nSeg]( - k = TExt_start, - each y(unit="K", - displayUnit="degC")) - "Undisturbed soil temperature" - annotation (Placement(transformation(extent={{-40,14},{-20,34}}))); - - Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor QBorHol[nSeg] - "Heat flow rate of all segments of the borehole" - annotation (Placement(transformation(extent={{-10,10},{10,-10}}, - rotation=90, - origin={0,-10}))); - - Buildings.HeatTransfer.Sources.PrescribedTemperature TemBorWal[nSeg] - "Borewall temperature" - annotation (Placement(transformation(extent={{50,6},{70,26}}))); - - Modelica.Blocks.Math.Add TSoiDis[nSeg](each final k1=1, each final k2=1) - "Addition of undisturbed soil temperature and change of soil temperature" - annotation (Placement(transformation(extent={{10,20},{30,40}}))); - - Modelica.Blocks.Math.Sum QTotSeg_flow( - final nin=nSeg, - final k = ones(nSeg)) - "Total heat flow rate for all segments of this borehole" - annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); - - Modelica.Blocks.Routing.Replicator repDelTBor(final nout=nSeg) - "Signal replicator for temperature difference of the borehole" - annotation (Placement(transformation(extent={{60,70},{80,90}}))); - -equation - connect(masFloMul.port_b, port_b) - annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}}, - color={0,127,255})); - connect(masFloDiv.port_a, port_a) - annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}}, - color={0,127,255})); - connect(masFloDiv.port_b, borHol.port_a) - annotation (Line(points={{-60,-40},{-10,-40}}, color={0,127,255})); - connect(borHol.port_b, masFloMul.port_a) - annotation (Line(points={{10,-40},{60,-40}}, color={0,127,255})); - connect(QBorHol.port_a, borHol.port_wall) - annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}}, - color={191,0,0})); - connect(QBorHol.Q_flow, QTotSeg_flow.u) - annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}}, - color={0,0,127})); - connect(groTemRes.delTBor, repDelTBor.u) - annotation (Line(points={{41,80},{58,80}}, color={0,0,127})); - connect(TSoiDis.u1, repDelTBor.y) annotation (Line(points={{8,36},{0,36},{0, - 60},{90,60},{90,80},{81,80}}, - color={0,0,127})); - connect(TSoiDis.u2, TSoiUnd.y) annotation (Line(points={{8,24},{-19,24}}, - color={0,0,127})); - connect(QTotSeg_flow.y, gaiQ_flow.u) - annotation (Line(points={{-39,80},{-22,80}}, color={0,0,127})); - connect(gaiQ_flow.y, groTemRes.QBor_flow) - annotation (Line(points={{1,80},{19,80}}, color={0,0,127})); - connect(TSoiDis.y, TemBorWal.T) - annotation (Line(points={{31,30},{36,30},{36,16},{48,16}}, - color={0,0,127})); - connect(QBorHol.port_b, TemBorWal.port) annotation (Line(points={{4.44089e-16, - 0},{0,0},{0,4},{80,4},{80,16},{70,16}}, color={191,0,0})); - connect(TSoiDis.y, AveTBor.u) annotation (Line(points={{31,30},{36,30},{36,44}, - {48,44}}, color={0,0,127})); - connect(AveTBor.y, TBorAve) - annotation (Line(points={{71,44},{110,44}}, color={0,0,127})); - annotation ( - Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), - graphics={ - Rectangle( - extent={{-100,60},{100,-66}}, - lineColor={0,0,0}, - fillColor={234,210,210}, - fillPattern=FillPattern.Solid), - Ellipse( - extent={{-88,-6},{-32,-62}}, - lineColor={0,0,0}, - fillColor={223,188,190}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-82,-12},{-38,-56}}, - lineColor={0,0,0}, - fillColor={0,0,255}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-88,54},{-32,-2}}, - lineColor={0,0,0}, - fillColor={223,188,190}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-82,48},{-38,4}}, - lineColor={0,0,0}, - fillColor={0,0,255}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-26,54},{30,-2}}, - lineColor={0,0,0}, - fillColor={223,188,190}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-20,48},{24,4}}, - lineColor={0,0,0}, - fillColor={0,0,255}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-28,-6},{28,-62}}, - lineColor={0,0,0}, - fillColor={223,188,190}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{-22,-12},{22,-56}}, - lineColor={0,0,0}, - fillColor={0,0,255}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{36,56},{92,0}}, - lineColor={0,0,0}, - fillColor={223,188,190}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{42,50},{86,6}}, - lineColor={0,0,0}, - fillColor={0,0,255}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{38,-4},{94,-60}}, - lineColor={0,0,0}, - fillColor={223,188,190}, - fillPattern=FillPattern.Forward), - Ellipse( - extent={{44,-10},{88,-54}}, - lineColor={0,0,0}, - fillColor={0,0,255}, - fillPattern=FillPattern.Forward)}), - Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, - 100}})),Documentation(info=" -

-This model simulates a borefield containing one or multiple boreholes -using the parameters in the borFieDat record. -

-

-Heat transfer to the soil is modeled using only one borehole heat exchanger -(To be added in an extended model). The -fluid mass flow rate into the borehole is divided to reflect the per-borehole -fluid mass flow rate. The borehole model calculates the dynamics within the -borehole itself using an axial discretization and a resistance-capacitance -network for the internal thermal resistances between the individual pipes and -between each pipe and the borehole wall. -

-

-The thermal interaction between the borehole wall and the surrounding soil -is modeled using - -Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse, -which uses a cell-shifting load aggregation technique to calculate the borehole wall -temperature after calculating and/or read (from a previous calculation) the borefield's thermal response factor. -

-", revisions=" -
    -
  • -April 9, 2021, by Michael Wetter:
    -Corrected placement of each keyword.
    -See Buildings, PR #2440. -
  • -
  • -August 25, 2020, by Filip Jorissen:
    -Switched port connections for masFloDiv. -See #41. -
  • -
  • -March 24, 2020, by Damien Picard:
    -Propagated flowReversal into masFloDiv and masFloMul. -
  • -
  • -June 7, 2019, by Massimo Cimmino:
    -Converted instances that are not of interest to user to be protected. -
  • -
  • -June 4, 2019, by Massimo Cimmino:
    -Added an output for the average borehole wall temperature. -See -#1107. -
  • -
  • -April 11, 2019, by Filip Jorissen:
    -Added choicesAllMatching for borFieDat. -See #1117. -
  • -
  • -January 18, 2019, by Jianjun Hu:
    -Limited the media choice to water and glycolWater. -See #1050. -
  • -
  • -July 2018, by Alex Laferrière:
    -Changed into a partial model and changed documentation to reflect the new approach -used by the borefield models. -
  • -
  • -July 2014, by Damien Picard:
    -First implementation. -
  • -
-")); -end PartialBorefield; From 7883d79ec631dcf792ad1865fab88db626edf82c Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 12:52:01 -0600 Subject: [PATCH 12/58] Modify input field names based on schema --- .../plants/templates/PartialBorefield.mot | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot index bb9ca98e2..f3fe3679b 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -3,7 +3,7 @@ within {{ project_name }}.GeothermalHeatExchanger; "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( - redeclare package Medium = Buildings.Media.Water, + redeclare package Medium = Buildings.Media.Water, // need to be able to change the medium in the future final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( @@ -41,38 +41,39 @@ within {{ project_name }}.GeothermalHeatExchanger; parameter Boolean forceGFunCalc = false "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" annotation (Dialog(tab="Advanced")); - {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource({{ghe_data["gfunction_file_path"]}}) + {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource({{ghe_data["gfunction"]["gfunction_file_path"]}}) {% raw %} "File name of g-function data file in MAT format"; - {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction_file_rows"]}} + {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction"]["gfunction_file_rows"]}} {% raw %} "Total length of g-function vector"; // General parameters of borefield parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat = ( final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( - {% endraw %}kFil={{ghe_data["fill_conductivity"]}}, - cFil={{ghe_data["fill_specific_heat_capacity"]}}, - dFil={{ghe_data["fill_density"]}}), + {% endraw %}kFil={{ghe_data["grout"]["conductivity"]}}, + cFil={{ghe_data["grout"]["volumetric_heat_capacity"]}}/dFil, + {% raw %}dFil=1450), {% raw %}final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( - {% endraw %}kSoi={{ghe_data["soil_conductivity"]}}, - cSoi={{ghe_data["soil_specific_heat_capacity"]}}, - dSoi={{ghe_data["soil_density"]}}), - {% raw %}final conDat= + {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, + cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/dSoi, + {% raw %}dSoi=2600), + final conDat= Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( dp_nominal=35000, - {% endraw %}borCon={{ghe_data["borehole_configuration"]}}, - mBor_flow_nominal={{ghe_data["nominal_mass_flow_per_borehole"]}}, - hBor={{ghe_data["borehole_height"]}}, - rBor={{ghe_data["borehole_radius"]}}, - nBor={{ghe_data["number_of_boreholes"]}}, - rTub={{ghe_data["tube_radius"]}}, - kTub={{ghe_data["tube_conductivity"]}}, - eTub={{ghe_data["tube_thickness"]}}, - xC={{ghe_data["shank_spacing"]}})) + {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, + mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, + hBor={{ghe_data["configuration"]["borehole_height"]}}, + rBor={{ghe_data["configuration"]["borehole_radius"]}}, + dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, + nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, + rTub={{ghe_data["tube"]["outer_radius"]}}, + kTub={{ghe_data["tube"]["conductivity"]}}, + eTub={{ghe_data["tube"]["thickness"]}}, + xC={{ghe_data["tube"]["shank_spacing"]}})) {% raw %}"Borefield data" annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); // Temperature gradient in undisturbed soil - {% endraw %}parameter Modelica.Units.SI.Temperature TExt0_start={{ghe_data["initial_ground_temperature"]}}+273.15 + {% endraw %}parameter Modelica.Units.SI.Temperature TExt0_start={{ghe_data["soil"]["initial_ground_temperature"]}}+273.15 {% raw %} "Initial far field temperature" annotation (Dialog(tab="Initialization", group="Soil")); parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then From da955ce97e9ad3b518b3b4957e93a6f2ac277478 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 15:41:25 -0600 Subject: [PATCH 13/58] Change within statement --- .../model_connectors/plants/templates/OneUTube.mot | 6 +++--- .../model_connectors/plants/templates/PartialBorefield.mot | 4 ++-- .../model_connectors/plants/templates/TwoUTubes.mot | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot index 72e13706b..8a5cc1213 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot @@ -1,7 +1,7 @@ -within {{ project_name }}.GeothermalHeatExchanger; -model {{ model_filename }} +within {{ project_name }}.Plants.{{ model_name }}; +model OneUTube {% raw %}"Borefield model containing single U-tube boreholes" - {% endraw %}extends {{ project_name }}.GeothermalHeatExchanger.PartialBorefield( + {% endraw %}extends {{ project_name }}.Plants.{{ model_name }}.PartialBorefield( {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol); annotation ( diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot index f3fe3679b..daa84c7cb 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -1,4 +1,4 @@ -within {{ project_name }}.GeothermalHeatExchanger; +within {{ project_name }}.Plants.{{ model_name }}; {% raw %}partial model PartialBorefield "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" @@ -107,7 +107,7 @@ within {{ project_name }}.GeothermalHeatExchanger; "Average borehole wall temperature in the borefield" annotation (Placement(transformation(extent={{100,34},{120,54}}))); - Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse groTemRes( // This needs to be overrided!!! + {{ project_name }}.Plants.GroundTemperatureResponse groTemRes( final tLoaAgg=tLoaAgg, final nCel=nCel, final borFieDat=borFieDat, diff --git a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot index 91a408c73..4de982012 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot @@ -1,7 +1,7 @@ -within {{ project_name }}.GeothermalHeatExchanger; -model {{ model_filename }} +within {{ project_name }}.Plants.{{ model_name }}; +model TwoUTubes {% raw %}"Borefield model containing double U-tube boreholes" - {% endraw %}extends {{ project_name }}.GeothermalHeatExchanger.PartialBorefield( + {% endraw %}extends {{ project_name }}.Plants.{{ model_name }}.PartialBorefield( {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube borHol); annotation ( defaultComponentName="borFie", From a7147488fb48bd1ae77604775eefa317319dd4d0 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 22 Mar 2023 15:41:48 -0600 Subject: [PATCH 14/58] Initial implementation of borefield.py --- .../model_connectors/plants/borefield.py | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/plants/borefield.py diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py new file mode 100644 index 000000000..6c453c08d --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -0,0 +1,170 @@ +# :copyright (c) URBANopt, Alliance for Sustainable Energy, LLC, and other contributors. +# See also https://github.com/urbanopt/geojson-modelica-translator/blob/develop/LICENSE.md + +import os +import shutil +from pathlib import Path + +from geojson_modelica_translator.model_connectors.plants.plant_base import ( + PlantBase +) +from geojson_modelica_translator.modelica.input_parser import PackageParser +from geojson_modelica_translator.utils import simple_uuid + + +class Borefield(PlantBase): + model_name = 'Borefield' + + def __init__(self, system_parameters): + super().__init__(system_parameters) + self.id = 'Borefield_' + simple_uuid() + + self.required_mo_files.append(os.path.join(self.template_dir, 'GroundTemperatureResponse.mo')) + + def to_modelica(self, scaffold): + """ + Create timeSeries models based on the data in the buildings and geojsons + + :param scaffold: Scaffold object, Scaffold of the entire directory of the project. + """ + + template_data = { + "gfunction": { + "gfunction_file_path": self.system_parameters.get_param( + "$.ghe_parameters.placeholder.gfunction_file_path" + ), + "gfunction_file_rows": self.system_parameters.get_param( + "$.ghe_parameters.placeholder.gfunction_file_rows" + ), + }, + "soil": { + "initial_ground_temperature": self.system_parameters.get_param( + "$.ghe_parameters.soil.undisturbed_temp" + ), + "conductivity": self.system_parameters.get_param( + "$.ghe_parameters.soil.conductivity" + ), + "volumetric_heat_capacity": self.system_parameters.get_param( + "$.ghe_parameters.soil.rho_cp" + ), + }, + "fill": { + "conductivity": self.system_parameters.get_param( + "$.ghe_parameters.grout.conductivity" + ), + "volumetric_heat_capacity": self.system_parameters.get_param( + "$.ghe_parameters.grout.rho_cp" + ), + }, + "configuration": { + "borehole_configuration": self.system_parameters.get_param( + "$.ghe_parameters.pipe.arrangement" + ), + "nominal_mass_flow_per_borehole": self.system_parameters.get_param( + "$.ghe_parameters.design.flow_rate" + ), + "flow_type": self.system_parameters.get_param( + "$.ghe_parameters.design.flow_type" + ), + "borehole_height": self.system_parameters.get_param( + "$.ghe_parameters.borehole.length" + ), + "borehole_radius": self.system_parameters.get_param( + "$.ghe_parameters.borehole.radius" + ), + "borehole_buried_depth": self.system_parameters.get_param( + "$.ghe_parameters.borehole.buried_depth" + ), + "number_of_boreholes": self.system_parameters.get_param( + "$.ghe_parameters.placeholder.number_of_boreholes" + ), + }, + "tube": { + "outer_radius": self.system_parameters.get_param( + "$.ghe_parameters.pipe.outer_radius" + ), + "inner_radius": self.system_parameters.get_param( + "$.ghe_parameters.pipe.inner_radius" + ), + "conductivity": self.system_parameters.get_param( + "$.ghe_parameters.pipe.conductivity" + ), + "shank_spacing": self.system_parameters.get_param( + "$.ghe_parameters.pipe.shank_spacing" + ), + }, + } + + # process nominal mass flow rate + if template_data["configuration"]["flow_type"] == "system": + template_data["configuration"]["nominal_mass_flow_per_borehole"] = template_data["configuration"]["nominal_mass_flow_per_borehole"]/template_data["configuration"]["number_of_boreholes"] + + # process tube thickness + template_data["tube"]["thickness"] = template_data["tube"]["outer_radius"]-template_data["tube"]["inner_radius"] + + # load templates + partial_borefield_template = self.template_env.get_template("PartialBorefield.mot") + oneutube_template = self.template_env.get_template("OneUTube.mot") + twoutube_template = self.template_env.get_template("TwoUTubes.mot") + + self.run_template( + partial_borefield_template, + os.path.join(scaffold.plants_path.files_dir, "PartialBorefield.mo"), + project_name=scaffold.project_name, + model_name=self.id, + ghe_data=template_data + ) + + if template_data["configuration"]["borehole_configuration"] == "singleutube": + plant_template = oneutube_template + elif template_data["configuration"]["borehole_configuration"] == "doubleutube": + plant_template = twoutube_template + else: + raise ValueError( + f"The type of geothermal heat exchanger pipe arrangement is not supported.") + + self.run_template( + plant_template, + os.path.join(scaffold.plants_path.files_dir, "Borefield.mo"), + project_name=scaffold.project_name, + model_name=self.id, + ghe_data=template_data + ) + + # generate Modelica package + self.copy_required_mo_files( + dest_folder=scaffold.plants_path.files_dir, + within=f'{scaffold.project_name}.Plants') + + # Plants package + package = PackageParser(scaffold.project_path) + if 'Plants' not in package.order: + package.add_model('Plants') + package.save() + + package_models = [self.id] + [Path(mo).stem for mo in self.required_mo_files] + plants_package = PackageParser(scaffold.plants_path.files_dir) + if plants_package.order_data is None: + plants_package = PackageParser.new_from_template( + path=scaffold.plants_path.files_dir, + name="Plants", + order=package_models, + within=scaffold.project_name) + else: + for model_name in package_models: + plants_package.add_model(model_name) + plants_package.save() + + # Borefield_ package + b_modelica_path = os.path.join(scaffold.plants.files_dir, self.id) + subpackage_models = ['Borefield'] + ['PartialBorefield'] + new_package = PackageParser.new_from_template( + path=b_modelica_path, + name=self.id, + order=subpackage_models, + within=f"{scaffold.project_name}.Plants" + ) + new_package.save() + + def get_modelica_type(self, scaffold): + return f'{scaffold.project_name}.Plants.{self.id}.Borefield', f'{scaffold.project_name}.Plants.{self.id}.PartialBorefield' From da3ce53de789d6c909e326ef66e747169dde4804 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Thu, 23 Mar 2023 13:46:07 -0600 Subject: [PATCH 15/58] Conversion of shank spacing --- .../model_connectors/plants/borefield.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 6c453c08d..f8b89496f 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -102,6 +102,9 @@ def to_modelica(self, scaffold): # process tube thickness template_data["tube"]["thickness"] = template_data["tube"]["outer_radius"]-template_data["tube"]["inner_radius"] + # process shank spacing + template_data["tube"]["shank_spacing"] = template_data["tube"]["shank_spacing"]/2-template_data["tube"]["outer_radius"] + # load templates partial_borefield_template = self.template_env.get_template("PartialBorefield.mot") oneutube_template = self.template_env.get_template("OneUTube.mot") From 028214ed990a9bd5fc4d5f7e2f26d90a7ad7f45a Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 10:36:27 -0600 Subject: [PATCH 16/58] Modify shank spacing conversion --- .../model_connectors/plants/borefield.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index f8b89496f..9d6301b2e 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -103,7 +103,7 @@ def to_modelica(self, scaffold): template_data["tube"]["thickness"] = template_data["tube"]["outer_radius"]-template_data["tube"]["inner_radius"] # process shank spacing - template_data["tube"]["shank_spacing"] = template_data["tube"]["shank_spacing"]/2-template_data["tube"]["outer_radius"] + template_data["tube"]["shank_spacing"] = template_data["tube"]["shank_spacing"]/2+template_data["tube"]["outer_radius"] # load templates partial_borefield_template = self.template_env.get_template("PartialBorefield.mot") From 37ad838ef593caa5ae150633f9749e93dd265feb Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 10:45:04 -0600 Subject: [PATCH 17/58] Remove unneeded mo file --- .../districts/templates/SingleGHE.mo | 191 ------------------ 1 file changed, 191 deletions(-) delete mode 100644 geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo diff --git a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo deleted file mode 100644 index 0d9b15f19..000000000 --- a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mo +++ /dev/null @@ -1,191 +0,0 @@ -within GHP.System; -model SingleGHE "One-pipe system model with only one GHE component." - - extends Modelica.Icons.Example; - replaceable package Medium = Buildings.Media.Water constrainedby - Modelica.Media.Interfaces.PartialMedium - "Medium in the component" - annotation (choices( - choice(redeclare package Medium = Buildings.Media.Water "Water"), - choice(redeclare package Medium = - Buildings.Media.Antifreeze.PropyleneGlycolWater ( - property_T=293.15, - X_a=0.40) - "Propylene glycol water, 40% mass fraction"))); - // borefiled parameters - parameter Modelica.Units.SI.Time tLoaAgg(displayUnit="min")=3600 - "Time resolution of load aggregation"; - parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; - parameter Integer nSeg(min=1)=10 - "Number of segments to use in vertical discretization of the boreholes"; - parameter Modelica.Units.SI.Temperature TGro=283.15 "Initial ground temperature"; - parameter String gFunFilNam = "modelica://GHP/Resources/Data/System/SampleGFunction.mat" - "Library path of the g-function file in MAT format"; - parameter Integer nRowGFun = 76 - "Total length of g-function vector"; - // building parameters - parameter Integer nBui = datDes.nBui - "Number of buildings connected to DHC system" - annotation (Evaluate=true); - parameter String filNam[nBui]={ - "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissOffice_20190916.mos", - "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissResidential_20190916.mos", - "modelica://Buildings/Resources/Data/Experimental/DHC/Loads/Examples/SwissHospital_20190916.mos"} - "Library paths of the files with thermal loads as time series"; - constant Real facMul = 10 - "Building loads multiplier factor"; - parameter Boolean allowFlowReversalSer = true - "Set to true to allow flow reversal in the service lines" - annotation(Dialog(tab="Assumptions"), Evaluate=true); - parameter Boolean allowFlowReversalBui = false - "Set to true to allow flow reversal for in-building systems" - annotation(Dialog(tab="Assumptions"), Evaluate=true); - - Buildings.Fluid.Geothermal.Borefields.OneUTube borFieUTub( - redeclare package Medium = Medium, - nCel=nCel, - nSeg=nSeg, - forceGFunCalc=true, - tLoaAgg=tLoaAgg, - gFunFilNam=Modelica.Utilities.Files.loadResource(gFunFilNam), - nTimTot=nRowGFun, - dynFil=false, - energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - TExt0_start=TGro, - borFieDat=borFieDat) - "Borefield with a U-tube borehole configuration" - annotation (Placement(transformation(extent={{0,0},{20,20}}))); - //gFunFilNam=Modelica.Utilities.Files.loadResource(gFunFilNam), - Buildings.Fluid.Sensors.TemperatureTwoPort TUTubIn( - redeclare package Medium = Medium, - m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, - tau=0) - "Inlet temperature of the borefield with UTube configuration" - annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); - Buildings.Fluid.Sensors.TemperatureTwoPort TUTubOut( - redeclare package Medium = Medium, - m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal, - tau=0) - "Inlet temperature of the borefield with UTube configuration" - annotation (Placement(transformation(extent={{40,0},{60,20}}))); - inner parameter - Buildings.Experimental.DHC.Examples.Combined.BaseClasses.DesignDataSeries - datDes( - mPumDis_flow_nominal=95, - mPipDis_flow_nominal=datDes.mPumDis_flow_nominal, - dp_length_nominal=250, - final mCon_flow_nominal=bui.ets.mSerWat_flow_nominal) - "Design data" - annotation (Placement(transformation(extent={{-140,80},{-120,100}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMaxSet[nBui](k=bui.THeaWatSup_nominal) - "Heating water supply temperature set point - Maximum value" - annotation (Placement(transformation(extent={{-120,20},{-100,40}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TChiWatSupSet[nBui](k=bui.TChiWatSup_nominal) - "Chilled water supply temperature set point" - annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMinSet[nBui](each k= - 28 + 273.15) - "Heating water supply temperature set point - Minimum value" - annotation (Placement(transformation(extent={{-120,50},{-100,70}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THotWatSupSet[nBui](k=fill( - 63 + 273.15, nBui)) - "Hot water supply temperature set point" - annotation (Placement(transformation(extent={{-120,-40},{-100,-20}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TColWat[nBui](k=fill(15 - + 273.15, nBui)) - "Cold water temperature" - annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}))); - Buildings.Experimental.DHC.Networks.Combined.UnidirectionalSeries - dis( - redeclare final package Medium = Medium, - final nCon=nBui, - show_TOut=true, - final mDis_flow_nominal=datDes.mPipDis_flow_nominal, - final mCon_flow_nominal=datDes.mCon_flow_nominal, - final dp_length_nominal=datDes.dp_length_nominal, - final lDis=datDes.lDis, - final lCon=datDes.lCon, - final lEnd=datDes.lEnd, - final allowFlowReversal=allowFlowReversalSer) "Distribution network" - annotation (Placement(transformation(extent={{70,0},{110,20}}))); - Buildings.Experimental.DHC.EnergyTransferStations.BaseClasses.Pump_m_flow pumDis( - redeclare final package Medium = Medium, m_flow_nominal=datDes.mPumDis_flow_nominal) - "Distribution pump" - annotation (Placement(transformation( - extent={{10,-10},{-10,10}}, - rotation=270, - origin={-44,-60}))); - Modelica.Blocks.Sources.Constant masFloMaiPum(k=datDes.mPumDis_flow_nominal) - "Distribution pump mass flow rate" - annotation (Placement(transformation(extent={{0,-70},{-20,-50}}))); - Buildings.Experimental.DHC.Loads.Combined.BuildingTimeSeriesWithETS bui[nBui]( - final filNam=filNam, - bui(each final facMul=facMul), - redeclare each final package MediumBui = Medium, - redeclare each final package MediumSer = Medium, - each final allowFlowReversalBui=allowFlowReversalBui, - each final allowFlowReversalSer=allowFlowReversalSer) "Building and ETS" - annotation (Placement(transformation(extent={{80,40},{100,60}}))); - parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( - final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( - kFil=2.0, - cFil=3040, - dFil=1450), - final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( - kSoi=2.5, - cSoi=769.23, - dSoi=2600), - final conDat= - Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( - borCon=Buildings.Fluid.Geothermal.Borefields.Types.BoreholeConfiguration.SingleUTube, - dp_nominal=35000, - hBor=100, - rBor=0.075, - dBor=1.524, - cooBor={{0.3048,0.3048},{5.3048,0.3048},{0.3048,5.3048},{5.3048,5.3048}}, - rTub=0.02, - kTub=0.5, - eTub=0.0037, - xC=0.05)) "Borefield data" - annotation (choicesAllMatching=true,Placement(transformation(extent={{-110,80}, - {-90,100}}))); - Buildings.Fluid.Sources.Boundary_pT expVes(redeclare final package Medium = - Medium, - T=283.15, nPorts=2) "Expansion vessel" - annotation (Placement(transformation(extent={{140,-76},{120,-56}}))); -equation - connect(TUTubIn.port_b,borFieUTub. port_a) - annotation (Line(points={{-20,10},{0,10}}, color={0,127,255})); - connect(borFieUTub.port_b,TUTubOut. port_a) - annotation (Line(points={{20,10},{40,10}}, color={0,127,255})); - connect(TUTubOut.port_b, dis.port_aDisSup) annotation (Line(points={{60,10},{70, - 10}}, color={0,127,255})); - connect(masFloMaiPum.y,pumDis. m_flow_in) annotation (Line(points={{-21,-60},{ - -32,-60}}, color={0,0,127})); - connect(pumDis.port_b, TUTubIn.port_a) annotation (Line(points={{-44,-50},{-44, - 10},{-40,10}}, color={0,127,255})); - connect(dis.ports_bCon, bui.port_aSerAmb) annotation (Line(points={{78,20},{78, - 38},{74,38},{74,50},{80,50}}, color={0,127,255})); - connect(bui.port_bSerAmb, dis.ports_aCon) annotation (Line(points={{100,50},{106, - 50},{106,38},{102,38},{102,20}}, color={0,127,255})); - connect(THeaWatSupMinSet.y, bui.THeaWatSupMinSet) - annotation (Line(points={{-98,60},{78,59}}, color={0,0,127})); - connect(THeaWatSupMaxSet.y, bui.THeaWatSupMaxSet) annotation (Line(points={{-98, - 30},{-92,30},{-92,57},{78,57}}, color={0,0,127})); - connect(TChiWatSupSet.y, bui.TChiWatSupSet) annotation (Line(points={{-98,0},{ - -86,0},{-86,55},{78,55}}, color={0,0,127})); - connect(THotWatSupSet.y, bui.THotWatSupSet) annotation (Line(points={{-98,-30}, - {-80,-30},{-80,53},{78,53}}, color={0,0,127})); - connect(TColWat.y, bui.TColWat) annotation (Line(points={{-98,-60},{-74,-60},{ - -74,36},{82,36},{82,38}}, color={0,0,127})); - connect(pumDis.port_a, expVes.ports[1]) annotation (Line(points={{-44,-70},{-44, - -80},{108,-80},{108,-64},{120,-64}}, color={0,127,255})); - connect(expVes.ports[2], dis.port_bDisSup) annotation (Line(points={{120,-68}, - {108,-68},{108,-8},{122,-8},{122,10},{110,10}}, color={0,127,255})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100}, - {100,100}})), Diagram( - coordinateSystem(preserveAspectRatio=false, extent={{-140,-100},{140,100}})), - experiment(StopTime=86400, __Dymola_Algorithm="Cvode"), - __Dymola_Commands(file="Resources/Scripts/System/SingleGHE.mos" - "Simulate and Plot")); -end SingleGHE; From 56ceae85f61acd5f0dabe4ab85831c25d8eb0da1 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 14:34:16 -0600 Subject: [PATCH 18/58] Minor changes to model_name --- .../model_connectors/plants/borefield.py | 15 ++++++++------- .../plants/templates/OneUTube.mot | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 9d6301b2e..0d405f680 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -17,7 +17,8 @@ class Borefield(PlantBase): def __init__(self, system_parameters): super().__init__(system_parameters) - self.id = 'Borefield_' + simple_uuid() + self.id = 'borFie_' + simple_uuid() + self.borefield_name = 'Borefield_' + simple_uuid() self.required_mo_files.append(os.path.join(self.template_dir, 'GroundTemperatureResponse.mo')) @@ -114,7 +115,7 @@ def to_modelica(self, scaffold): partial_borefield_template, os.path.join(scaffold.plants_path.files_dir, "PartialBorefield.mo"), project_name=scaffold.project_name, - model_name=self.id, + model_name=self.borefield_name, ghe_data=template_data ) @@ -130,7 +131,7 @@ def to_modelica(self, scaffold): plant_template, os.path.join(scaffold.plants_path.files_dir, "Borefield.mo"), project_name=scaffold.project_name, - model_name=self.id, + model_name=self.borefield_name, ghe_data=template_data ) @@ -145,7 +146,7 @@ def to_modelica(self, scaffold): package.add_model('Plants') package.save() - package_models = [self.id] + [Path(mo).stem for mo in self.required_mo_files] + package_models = [self.borefield_name] + [Path(mo).stem for mo in self.required_mo_files] plants_package = PackageParser(scaffold.plants_path.files_dir) if plants_package.order_data is None: plants_package = PackageParser.new_from_template( @@ -159,15 +160,15 @@ def to_modelica(self, scaffold): plants_package.save() # Borefield_ package - b_modelica_path = os.path.join(scaffold.plants.files_dir, self.id) + b_modelica_path = os.path.join(scaffold.plants.files_dir, self.borefield_name) subpackage_models = ['Borefield'] + ['PartialBorefield'] new_package = PackageParser.new_from_template( path=b_modelica_path, - name=self.id, + name=self.borefield_name, order=subpackage_models, within=f"{scaffold.project_name}.Plants" ) new_package.save() def get_modelica_type(self, scaffold): - return f'{scaffold.project_name}.Plants.{self.id}.Borefield', f'{scaffold.project_name}.Plants.{self.id}.PartialBorefield' + return f'{scaffold.project_name}.Plants.{self.borefield_name}.Borefield', f'{scaffold.project_name}.Plants.{self.borefield_name}.PartialBorefield' diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot index 8a5cc1213..d15c53a6d 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot @@ -1,6 +1,6 @@ within {{ project_name }}.Plants.{{ model_name }}; -model OneUTube - {% raw %}"Borefield model containing single U-tube boreholes" +{% raw %}model OneUTube + "Borefield model containing single U-tube boreholes" {% endraw %}extends {{ project_name }}.Plants.{{ model_name }}.PartialBorefield( {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol); From 6b67802267b4c93fdb1f8a5e5c7a9354a9f18560 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 14:35:29 -0600 Subject: [PATCH 19/58] Add system template for testing borefield template --- .../districts/templates/BorefieldSystem.mot | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot diff --git a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot new file mode 100644 index 000000000..2b29aa387 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot @@ -0,0 +1,57 @@ +within {{ district_within_path }}; +model BorefieldSystem "Borefield model with one GHE component." + extends Modelica.Icons.Example; + + replaceable package MediumW = Buildings.Media.Water constrainedby + Modelica.Media.Interfaces.PartialMedium + "Medium in the component" + annotation (choices( + choice(redeclare package Medium = Buildings.Media.Water "Water"), + choice(redeclare package Medium = + Buildings.Media.Antifreeze.PropyleneGlycolWater ( + property_T=293.15, + X_a=0.40) + "Propylene glycol water, 40% mass fraction"))); + + // Models + {% for model in models %} + // + // Begin Model Instance for {{ model.id }} + // Source template: {{ model.instance_template_path }} + // + {{ model.instance }} + // + // End Model Instance for {{ model.id }} + // + {% endfor %} + + // Model dependencies + {% for coupling in couplings %} + // + // Begin Component Definitions for {{ coupling.id }} + // Source template: {{ coupling.coupling_definitions_template_path }} + // + {{ coupling.component_definitions }} + // + // End Component Definitions for {{ coupling.id }} + // + {% endfor %} + +equation + // Connections + {% for coupling in couplings %} + // + // Begin Connect Statements for {{ coupling.id }} + // Source template: {{ coupling.connect_statements_template_path }} + // + {{ coupling.connect_statements }} + // + // End Connect Statements for {{ coupling.id }} + // + {% endfor %} + + + annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( + coordinateSystem(preserveAspectRatio=false)), + experiment(StopTime=172800, __Dymola_Algorithm="Cvode")); +end BorefieldSystem; From 4643d0227569ef40573cf726a0a5d9e73d143191 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 14:52:54 -0600 Subject: [PATCH 20/58] Initial implementation of borefield test --- tests/model_connectors/test_borefield.py | 71 ++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tests/model_connectors/test_borefield.py diff --git a/tests/model_connectors/test_borefield.py b/tests/model_connectors/test_borefield.py new file mode 100644 index 000000000..ba80dc78a --- /dev/null +++ b/tests/model_connectors/test_borefield.py @@ -0,0 +1,71 @@ +# :copyright (c) URBANopt, Alliance for Sustainable Energy, LLC, and other contributors. +# See also https://github.com/urbanopt/geojson-modelica-translator/blob/develop/LICENSE.md + +import os +from pathlib import Path + +import pytest + +from geojson_modelica_translator.model_connectors.couplings.coupling import ( + Coupling +) +from geojson_modelica_translator.model_connectors.couplings.graph import ( + CouplingGraph +) +from geojson_modelica_translator.model_connectors.districts.district import ( + District +) +from geojson_modelica_translator.model_connectors.plants.borefield import ( + Borefield +) +from geojson_modelica_translator.model_connectors.networks.network_ambient_water_stub import ( + NetworkAmbientWaterStub +) +from geojson_modelica_translator.system_parameters.system_parameters import ( + SystemParameters +) + +from ..base_test_case import TestCaseBase + + +class DistrictSystemTest(TestCaseBase): + def setUp(self): + super().setUp() + + project_name = "borefield_stub" + self.data_dir, self.output_dir = self.set_up(os.path.dirname(__file__), project_name) + + # load system parameter data + filename = os.path.join(self.data_dir, "system_params_ghe.json") + sys_params = SystemParameters(filename) + + # Create the time series load, ets and their coupling + borefield = Borefield(sys_params) + + # create ambient water stub + ambient_water_stub = NetworkAmbientWaterStub(sys_params) + five_g_coupling = Coupling(borefield, ambient_water_stub, district_type='5G') + + graph = CouplingGraph([ + five_g_coupling, + ]) + + self.district = District( + root_dir=self.output_dir, + project_name=project_name, + system_parameters=sys_params, + coupling_graph=graph + ) + + self.district.to_modelica() + + def test_build_district_system(self): + root_path = Path(self.district._scaffold.districts_path.files_dir).resolve() + assert (root_path / 'DistrictEnergySystem.mo').exists() + + @pytest.mark.simulation + def test_simulate_district_system(self): + root_path = Path(self.district._scaffold.districts_path.files_dir).resolve() + self.run_and_assert_in_docker(Path(root_path) / 'DistrictEnergySystem.mo', + project_path=self.district._scaffold.project_path, + project_name=self.district._scaffold.project_name) From 9eca55b94e12f68070281e5e1d26f7c0af574414 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 15:57:09 -0600 Subject: [PATCH 21/58] Move ghe system parameter files to right location --- .../data/system_params_ghe.json | 2 +- .../data/system_params_ghe_2.json | 0 .../data/system_params_ghe_3.json | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename tests/{system_parameters => model_connectors}/data/system_params_ghe.json (99%) rename tests/{system_parameters => model_connectors}/data/system_params_ghe_2.json (100%) rename tests/{system_parameters => model_connectors}/data/system_params_ghe_3.json (100%) diff --git a/tests/system_parameters/data/system_params_ghe.json b/tests/model_connectors/data/system_params_ghe.json similarity index 99% rename from tests/system_parameters/data/system_params_ghe.json rename to tests/model_connectors/data/system_params_ghe.json index e7f01565d..72734663e 100644 --- a/tests/system_parameters/data/system_params_ghe.json +++ b/tests/model_connectors/data/system_params_ghe.json @@ -77,7 +77,7 @@ } ], "district_system": { - "fourth_generation": { + "fifth_generation": { "central_cooling_plant_parameters": { "heat_flow_nominal": 7999, "cooling_tower_fan_power_nominal": 4999, diff --git a/tests/system_parameters/data/system_params_ghe_2.json b/tests/model_connectors/data/system_params_ghe_2.json similarity index 100% rename from tests/system_parameters/data/system_params_ghe_2.json rename to tests/model_connectors/data/system_params_ghe_2.json diff --git a/tests/system_parameters/data/system_params_ghe_3.json b/tests/model_connectors/data/system_params_ghe_3.json similarity index 100% rename from tests/system_parameters/data/system_params_ghe_3.json rename to tests/model_connectors/data/system_params_ghe_3.json From d12a267bfefcda853a2c8ca9fc84f54bc3906c4d Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 15:57:49 -0600 Subject: [PATCH 22/58] Take out SingleGHE system template for now --- .../districts/templates/SingleGHE.mot | 189 ------------------ 1 file changed, 189 deletions(-) delete mode 100644 geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot diff --git a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot b/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot deleted file mode 100644 index c7311bd27..000000000 --- a/geojson_modelica_translator/model_connectors/districts/templates/SingleGHE.mot +++ /dev/null @@ -1,189 +0,0 @@ -within {{ project_name }}.System; -model SingleGHE - {% raw %} "One-pipe system model with only one GHE component." - extends Modelica.Icons.Example; - replaceable package Medium = Buildings.Media.Water constrainedby - Modelica.Media.Interfaces.PartialMedium - "Medium in the component" - annotation (choices( - choice(redeclare package Medium = Buildings.Media.Water "Water"), - choice(redeclare package Medium = - Buildings.Media.Antifreeze.PropyleneGlycolWater ( - property_T=293.15, - X_a=0.40) - "Propylene glycol water, 40% mass fraction"))); - inner parameter - Buildings.Experimental.DHC.Examples.Combined.BaseClasses.DesignDataSeries - datDes( - {% endraw %}nBui={{ghe_data["building_numbers"]}}, - {% raw %}mPumDis_flow_nominal=95, - mPipDis_flow_nominal=datDes.mPumDis_flow_nominal, - dp_length_nominal=250, - final mCon_flow_nominal=bui.ets.mSerWat_flow_nominal) // !!!This needs to be changed to the correct instance name once building model is moved out. - "Design data" - annotation (Placement(transformation(extent={{-140,80},{-120,100}}))); - parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( - final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( - {% endraw %}kFil={{ghe_data["fill_conductivity"]}}, - cFil={{ghe_data["fill_specific_heat_capacity"]}}, - dFil={{ghe_data["fill_density"]}}), - {% raw %}final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( - {% endraw %}kSoi={{ghe_data["soil_conductivity"]}}, - cSoi={{ghe_data["soil_specific_heat_capacity"]}}, - dSoi={{ghe_data["soil_density"]}}), - {% raw %}final conDat= - Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( - dp_nominal=35000, - {% endraw %}borCon={{ghe_data["borehole_configuration"]}}, - mBor_flow_nominal={{ghe_data["nominal_mass_flow_per_borehole"]}}, - hBor={{ghe_data["borehole_height"]}}, - rBor={{ghe_data["borehole_radius"]}}, - nBor={{ghe_data["number_of_boreholes"]}}, - rTub={{ghe_data["tube_radius"]}}, - kTub={{ghe_data["tube_conductivity"]}}, - eTub={{ghe_data["tube_thickness"]}}, - xC={{ghe_data["shank_spacing"]}})) - {% raw %}"Borefield data" - annotation (choicesAllMatching=true,Placement(transformation(extent={{-110,80}, - {-90,100}}))); - parameter Integer nBui = datDes.nBui - "Number of buildings connected to DHC system" - annotation (Evaluate=true); - {% endraw %}parameter String filNam="modelica://{{project_name}}/Loads/{{data['load_resources_path']}}/{{data['time_series']['filename']}}" - {% raw %} "Library path of the file with loads as time series"; - - // Template models -{% for model in models %} - // - // Begin Model Instance for {{ model.id }} - // Source template: {{ model.instance_template_path }} - // -{{ model.instance }} - // - // End Model Instance for {{ model.id }} - // -{% endfor %} - - Buildings.Fluid.Geothermal.Borefields.OneUTube borFieUTub( //!!!Change the path to point to the template. - redeclare package Medium = Medium, - {% endraw %}gFunFilNam=Modelica.Utilities.Files.loadResource({{ghe_data["gfunction_file_path"]}}), - nTimTot={{ghe_data["gfunction_file_rows"]}}, - {% raw %}dynFil=false, - energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - {% endraw %}TExt0_start={{ghe_data["initial_ground_temperature"]}}+273.15, - {% raw %}borFieDat=borFieDat) - "Borefield with a U-tube borehole configuration" - annotation (Placement(transformation(extent={{0,0},{20,20}}))); - Buildings.Experimental.DHC.Loads.Combined.BuildingTimeSeriesWithETS bui[nBui]( //!!!Change the path to point to the template. - final filNam = filNam) - "Building and ETS" - annotation (Placement(transformation(extent={{80,40},{100,60}}))); - - // Model dependencies -{% for coupling in couplings %} - // - // Begin Component Definitions for {{ coupling.id }} - // Source template: {{ coupling.coupling_definitions_template_path }} - // -{{ coupling.component_definitions }} - // - // End Component Definitions for {{ coupling.id }} - // -{% endfor %} - - - // couplings - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMaxSet[nBui](k=bui.THeaWatSup_nominal) // !!!This needs to be changed to the correct instance name once building model is moved out. - "Heating water supply temperature set point - Maximum value" - annotation (Placement(transformation(extent={{-120,20},{-100,40}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TChiWatSupSet[nBui](k=bui.TChiWatSup_nominal) // !!!This needs to be changed to the correct instance name once building model is moved out. - "Chilled water supply temperature set point" - annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); - Buildings.Experimental.DHC.Networks.Combined.UnidirectionalSeries - dis( - redeclare final package Medium = Medium, - final nCon=nBui, - show_TOut=true, - final mDis_flow_nominal=datDes.mPipDis_flow_nominal, - final mCon_flow_nominal=datDes.mCon_flow_nominal, - final dp_length_nominal=datDes.dp_length_nominal, - final lDis=datDes.lDis, - final lCon=datDes.lCon, - final lEnd=datDes.lEnd, - final allowFlowReversal=true) "Distribution network" - annotation (Placement(transformation(extent={{70,0},{110,20}}))); - Buildings.Experimental.DHC.EnergyTransferStations.BaseClasses.Pump_m_flow pumDis( - redeclare final package Medium = Medium, - m_flow_nominal=datDes.mPumDis_flow_nominal) - "Distribution pump" - annotation (Placement(transformation( - extent={{10,-10},{-10,10}}, - rotation=270, - origin={-44,-60}))); - Modelica.Blocks.Sources.Constant masFloMaiPum(k=datDes.mPumDis_flow_nominal) - "Distribution pump mass flow rate" - annotation (Placement(transformation(extent={{0,-70},{-20,-50}}))); - Buildings.Fluid.Sources.Boundary_pT expVes( - redeclare final package Medium = Medium, - T=283.15, - nPorts=2) "Expansion vessel" - annotation (Placement(transformation(extent={{140,-76},{120,-56}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THeaWatSupMinSet[nBui](each k= - 28 + 273.15) - "Heating water supply temperature set point - Minimum value" - annotation (Placement(transformation(extent={{-120,50},{-100,70}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant THotWatSupSet[nBui](k=fill( - 63 + 273.15, nBui)) - "Hot water supply temperature set point" - annotation (Placement(transformation(extent={{-120,-40},{-100,-20}}))); - Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TColWat[nBui](k=fill(15 - + 273.15, nBui)) - "Cold water temperature" - annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}))); - - -equation - - // Connections -{% for coupling in couplings %} - // - // Begin Connect Statements for {{ coupling.id }} - // Source template: {{ coupling.connect_statements_template_path }} - // -{{ coupling.connect_statements }} - // - // End Connect Statements for {{ coupling.id }} - // -{% endfor %} - - connect(masFloMaiPum.y,pumDis. m_flow_in) annotation (Line(points={{-21,-60},{ - -32,-60}}, color={0,0,127})); - connect(dis.ports_bCon, bui.port_aSerAmb) annotation (Line(points={{78,20},{78, - 38},{74,38},{74,50},{80,50}}, color={0,127,255})); - connect(bui.port_bSerAmb, dis.ports_aCon) annotation (Line(points={{100,50},{106, - 50},{106,38},{102,38},{102,20}}, color={0,127,255})); - connect(THeaWatSupMinSet.y, bui.THeaWatSupMinSet) - annotation (Line(points={{-98,60},{78,59}}, color={0,0,127})); - connect(THeaWatSupMaxSet.y, bui.THeaWatSupMaxSet) annotation (Line(points={{-98, - 30},{-92,30},{-92,57},{78,57}}, color={0,0,127})); - connect(TChiWatSupSet.y, bui.TChiWatSupSet) annotation (Line(points={{-98,0},{ - -86,0},{-86,55},{78,55}}, color={0,0,127})); - connect(THotWatSupSet.y, bui.THotWatSupSet) annotation (Line(points={{-98,-30}, - {-80,-30},{-80,53},{78,53}}, color={0,0,127})); - connect(TColWat.y, bui.TColWat) annotation (Line(points={{-98,-60},{-74,-60},{ - -74,36},{82,36},{82,38}}, color={0,0,127})); - connect(pumDis.port_a, expVes.ports[1]) annotation (Line(points={{-44,-70},{-44, - -80},{108,-80},{108,-64},{120,-64}}, color={0,127,255})); - connect(expVes.ports[2], dis.port_bDisSup) annotation (Line(points={{120,-68}, - {108,-68},{108,-8},{122,-8},{122,10},{110,10}}, color={0,127,255})); - connect(pumDis.port_b, borFieUTub.port_a) - annotation (Line(points={{-44,-50},{-44,10},{0,10}}, color={0,127,255})); - connect(borFieUTub.port_b, dis.port_aDisSup) - annotation (Line(points={{20,10},{70,10}}, color={0,127,255})); - annotation (Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100}, - {100,100}})), Diagram( - coordinateSystem(preserveAspectRatio=false, extent={{-140,-100},{140,100}})), - experiment(StopTime=86400, __Dymola_Algorithm="Cvode"), - __Dymola_Commands(file="Resources/Scripts/System/SingleGHE.mos" - "Simulate and Plot")); -end SingleGHE; From d9d2ddbe486bfdb4adcf3f6246464613e3ff2472 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 15:59:17 -0600 Subject: [PATCH 23/58] Change within statement --- .../plants/templates/GroundTemperatureResponse.mo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo b/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo index a993f4630..a481ff14d 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo +++ b/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo @@ -1,4 +1,4 @@ -within Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer; +within geojson_modelica_translator.model_connectors.templates; model GroundTemperatureResponse "Model calculating discrete load aggregation" parameter Modelica.Units.SI.Time tLoaAgg(final min=Modelica.Constants.eps)= 3600 "Time resolution of load aggregation"; From 83afc6a6219f563e156595489d819fe7a97f7878 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 15:59:51 -0600 Subject: [PATCH 24/58] Initial implementation of borefield coupling --- .../ComponentDefinitions.mopt | 16 ++++++++++++++++ .../ConnectStatements.mopt | 5 +++++ 2 files changed, 21 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ComponentDefinitions.mopt create mode 100644 geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ConnectStatements.mopt diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ComponentDefinitions.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ComponentDefinitions.mopt new file mode 100644 index 000000000..0e97a4be2 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ComponentDefinitions.mopt @@ -0,0 +1,16 @@ + // Borefield and Ambient Water Component Definitions + Buildings.Fluid.Sources.MassFlowSource_T sou_{{ coupling.id }}( + redeclare package Medium = {{ globals.medium_w }}, + use_T_in=false, + m_flow={{ coupling.plant.id }}.borFieDat.conDat.mBorFie_flow_nominal, + T=303.15, + nPorts=1) "Source" + annotation (Placement(transformation(extent={{-90,0},{-70,20}},rotation=0))); + Buildings.Fluid.Sources.Boundary_pT sin_{{ coupling.id }}( + redeclare package Medium = {{ globals.medium_w }}, + use_p_in=false, + use_T_in=false, + p=101330, + T=283.15, + nPorts=1) "Sink" + annotation (Placement(transformation(extent={{80,0},{60,20}}, rotation=0))); diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ConnectStatements.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ConnectStatements.mopt new file mode 100644 index 000000000..6c731a389 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ConnectStatements.mopt @@ -0,0 +1,5 @@ +// Borefield ambient coupling connections +connect(sou_{{ coupling.id }}.ports[1], {{ coupling.plant.id }}.port_a) + annotation (Line(points={{-70,10},{-10,10}}, color={0,127,255})); +connect({{ coupling.plant.id }}.port_b, sin_{{ coupling.id }}.ports[1]) + annotation (Line(points={{10,10},{60,10}}, color={0,127,255})); From d1b68e2b9e2986d455d8f5c85fe0a83f72edb0d0 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 16:00:36 -0600 Subject: [PATCH 25/58] Add code to point to BorefieldSystem.mot --- .../model_connectors/districts/district.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/districts/district.py b/geojson_modelica_translator/model_connectors/districts/district.py index 1f4232087..a7edef2a4 100644 --- a/geojson_modelica_translator/model_connectors/districts/district.py +++ b/geojson_modelica_translator/model_connectors/districts/district.py @@ -132,7 +132,10 @@ def to_modelica(self): # render the full district file if 'fifth_generation' in common_template_params['sys_params']['district_system']: - final_result = render_template('DistrictEnergySystem5G.mot', district_template_params) + if common_template_params['sys_params']['ghe_parameters']: + final_result = render_template('BorefieldSystem.mot', district_template_params) + else: + final_result = render_template('DistrictEnergySystem5G.mot', district_template_params) else: final_result = render_template('DistrictEnergySystem.mot', district_template_params) with open(self.district_model_filepath, 'w') as f: From 803b120ec58542852751f0503e83a351f09f0a4b Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 29 Mar 2023 16:07:37 -0600 Subject: [PATCH 26/58] Remove duplicated test script --- .../test_time_series_multiple_5g.py | 79 ------------------- 1 file changed, 79 deletions(-) delete mode 100644 tests/model_connectors/test_time_series_multiple_5g.py diff --git a/tests/model_connectors/test_time_series_multiple_5g.py b/tests/model_connectors/test_time_series_multiple_5g.py deleted file mode 100644 index 0bd5f578c..000000000 --- a/tests/model_connectors/test_time_series_multiple_5g.py +++ /dev/null @@ -1,79 +0,0 @@ -# :copyright (c) URBANopt, Alliance for Sustainable Energy, LLC, and other contributors. -# See also https://github.com/urbanopt/geojson-modelica-translator/blob/develop/LICENSE.md - -import os -from pathlib import Path - -import pytest - -from geojson_modelica_translator.geojson.urbanopt_geojson import ( - UrbanOptGeoJson -) -from geojson_modelica_translator.model_connectors.couplings.coupling import ( - Coupling -) -from geojson_modelica_translator.model_connectors.couplings.graph import ( - CouplingGraph -) -from geojson_modelica_translator.model_connectors.districts.district import ( - District -) -from geojson_modelica_translator.model_connectors.load_connectors.time_series import ( - TimeSeries -) -from geojson_modelica_translator.model_connectors.networks.network_ambient_water_stub import ( - NetworkAmbientWaterStub -) -from geojson_modelica_translator.system_parameters.system_parameters import ( - SystemParameters -) - -from ..base_test_case import TestCaseBase - - -class DistrictSystemTest(TestCaseBase): - def setUp(self): - super().setUp() - - project_name = "time_series_multiple_5g" - self.data_dir, self.output_dir = self.set_up(os.path.dirname(__file__), project_name) - - # load in the example geojson with a single office building - filename = os.path.join(self.data_dir, "time_series_ex1.json") - self.gj = UrbanOptGeoJson(filename) - - # load system parameter data - filename = os.path.join(self.data_dir, "time_series_5g_sys_params.json") - sys_params = SystemParameters(filename) - - # create ambient water stub - ambient_water_stub = NetworkAmbientWaterStub(sys_params) - - # create our our load/ets/stubs - all_couplings = [] - for geojson_load in self.gj.buildings: - time_series_load = TimeSeries(sys_params, geojson_load) - all_couplings.append(Coupling(time_series_load, ambient_water_stub, district_type='5G')) - - # create the couplings and graph - graph = CouplingGraph(all_couplings) - - self.district = District( - root_dir=self.output_dir, - project_name=project_name, - system_parameters=sys_params, - coupling_graph=graph - ) - - self.district.to_modelica() - - def test_build_district_system(self): - root_path = Path(self.district._scaffold.districts_path.files_dir).resolve() - assert (root_path / 'DistrictEnergySystem.mo').exists() - - @pytest.mark.simulation - def test_simulate_district_system(self): - root_path = Path(self.district._scaffold.districts_path.files_dir).resolve() - self.run_and_assert_in_docker(Path(root_path) / 'DistrictEnergySystem.mo', - project_path=self.district._scaffold.project_path, - project_name=self.district._scaffold.project_name) From 2e37b66f0befaf9720f3ca2e53eea43d85a8ccb2 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 5 Apr 2023 16:52:23 -0600 Subject: [PATCH 27/58] Rename package --- .../ComponentDefinitions.mopt | 0 .../ConnectStatements.mopt | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename geojson_modelica_translator/model_connectors/couplings/5G_templates/{Borefield_NetworkAmbientWaterStub => NetworkAmbientWaterStub_Borefield}/ComponentDefinitions.mopt (100%) rename geojson_modelica_translator/model_connectors/couplings/5G_templates/{Borefield_NetworkAmbientWaterStub => NetworkAmbientWaterStub_Borefield}/ConnectStatements.mopt (100%) diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ComponentDefinitions.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt similarity index 100% rename from geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ComponentDefinitions.mopt rename to geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ConnectStatements.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt similarity index 100% rename from geojson_modelica_translator/model_connectors/couplings/5G_templates/Borefield_NetworkAmbientWaterStub/ConnectStatements.mopt rename to geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt From fe048599ae85c9fa82a8d7b0362d759fd131e256 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 5 Apr 2023 16:53:24 -0600 Subject: [PATCH 28/58] Add {%endraw%} at the end --- .../model_connectors/plants/templates/OneUTube.mot | 1 + .../plants/templates/PartialBorefield.mot | 11 ++++++----- .../model_connectors/plants/templates/TwoUTubes.mot | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot index d15c53a6d..566e141f3 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot @@ -33,3 +33,4 @@ First implementation. ")); end OneUTube; +{% endraw %} diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot index daa84c7cb..3d60d89e2 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -49,10 +49,10 @@ within {{ project_name }}.Plants.{{ model_name }}; // General parameters of borefield parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat = ( final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( - {% endraw %}kFil={{ghe_data["grout"]["conductivity"]}}, - cFil={{ghe_data["grout"]["volumetric_heat_capacity"]}}/dFil, + {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, + cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/dFil, {% raw %}dFil=1450), - {% raw %}final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( + final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/dSoi, {% raw %}dSoi=2600), @@ -62,10 +62,10 @@ within {{ project_name }}.Plants.{{ model_name }}; {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, hBor={{ghe_data["configuration"]["borehole_height"]}}, - rBor={{ghe_data["configuration"]["borehole_radius"]}}, + rBor={{ghe_data["configuration"]["borehole_diameter"]}}/2, dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, - rTub={{ghe_data["tube"]["outer_radius"]}}, + rTub={{ghe_data["tube"]["outer_diameter"]}}/2, kTub={{ghe_data["tube"]["conductivity"]}}, eTub={{ghe_data["tube"]["thickness"]}}, xC={{ghe_data["tube"]["shank_spacing"]}})) @@ -371,3 +371,4 @@ First implementation. ")); end PartialBorefield; +{% endraw %} diff --git a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot index 4de982012..6e747e03b 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot @@ -32,3 +32,4 @@ First implementation. ")); end TwoUTubes; +{% endraw %} From 5e9eb267315c0a1f32528966119314450df89ba4 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 5 Apr 2023 16:58:25 -0600 Subject: [PATCH 29/58] Add input fields needed for the test --- tests/model_connectors/data/system_params_ghe_2.json | 9 +++++++-- tests/model_connectors/data/system_params_ghe_3.json | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/model_connectors/data/system_params_ghe_2.json b/tests/model_connectors/data/system_params_ghe_2.json index 153b5dd84..edf876c74 100644 --- a/tests/model_connectors/data/system_params_ghe_2.json +++ b/tests/model_connectors/data/system_params_ghe_2.json @@ -174,7 +174,7 @@ "pipe_location": "Tunnel" }, "district_system": { - "fourth_generation": { + "fifth_generation": { "central_cooling_plant_parameters": { "heat_flow_nominal": 7999, "cooling_tower_fan_power_nominal": 4999, @@ -251,8 +251,13 @@ "flow_rate": 0.2, "flow_type": "borehole", "max_eft": 35.0, - "min_eft": 5.0 + "min_eft": 5.0, + "number_of_boreholes": 4 }, + "placeholder": { + "gfunction_file_path": "modelica://GHP/Resources/Data/System/SampleGFunction.mat", + "gfunction_file_rows": 76 + }, "ground_loads": [ 0, 0, diff --git a/tests/model_connectors/data/system_params_ghe_3.json b/tests/model_connectors/data/system_params_ghe_3.json index 4a42b5368..409973936 100644 --- a/tests/model_connectors/data/system_params_ghe_3.json +++ b/tests/model_connectors/data/system_params_ghe_3.json @@ -174,7 +174,7 @@ "pipe_location": "Tunnel" }, "district_system": { - "fourth_generation": { + "fifth_generation": { "central_cooling_plant_parameters": { "heat_flow_nominal": 7999, "cooling_tower_fan_power_nominal": 4999, From 4a067daeadf7bef564e76f1cb73a427eabcb23c7 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 5 Apr 2023 16:58:49 -0600 Subject: [PATCH 30/58] Debugging changes --- .../model_connectors/plants/borefield.py | 60 +++++++++++-------- tests/model_connectors/test_borefield.py | 2 +- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 0d405f680..289f72c2b 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -9,7 +9,10 @@ PlantBase ) from geojson_modelica_translator.modelica.input_parser import PackageParser -from geojson_modelica_translator.utils import simple_uuid +from geojson_modelica_translator.utils import ( + ModelicaPath, + simple_uuid +) class Borefield(PlantBase): @@ -31,9 +34,9 @@ def to_modelica(self, scaffold): template_data = { "gfunction": { - "gfunction_file_path": self.system_parameters.get_param( + "gfunction_file_path": str(self.system_parameters.get_param( "$.ghe_parameters.placeholder.gfunction_file_path" - ), + )), "gfunction_file_rows": self.system_parameters.get_param( "$.ghe_parameters.placeholder.gfunction_file_rows" ), @@ -70,22 +73,22 @@ def to_modelica(self, scaffold): "borehole_height": self.system_parameters.get_param( "$.ghe_parameters.borehole.length" ), - "borehole_radius": self.system_parameters.get_param( - "$.ghe_parameters.borehole.radius" + "borehole_diameter": self.system_parameters.get_param( + "$.ghe_parameters.borehole.diameter" ), "borehole_buried_depth": self.system_parameters.get_param( "$.ghe_parameters.borehole.buried_depth" ), "number_of_boreholes": self.system_parameters.get_param( - "$.ghe_parameters.placeholder.number_of_boreholes" + "$.ghe_parameters.design.number_of_boreholes" ), }, "tube": { - "outer_radius": self.system_parameters.get_param( - "$.ghe_parameters.pipe.outer_radius" + "outer_diameter": self.system_parameters.get_param( + "$.ghe_parameters.pipe.outer_diameter" ), - "inner_radius": self.system_parameters.get_param( - "$.ghe_parameters.pipe.inner_radius" + "inner_diameter": self.system_parameters.get_param( + "$.ghe_parameters.pipe.inner_diameter" ), "conductivity": self.system_parameters.get_param( "$.ghe_parameters.pipe.conductivity" @@ -101,19 +104,28 @@ def to_modelica(self, scaffold): template_data["configuration"]["nominal_mass_flow_per_borehole"] = template_data["configuration"]["nominal_mass_flow_per_borehole"]/template_data["configuration"]["number_of_boreholes"] # process tube thickness - template_data["tube"]["thickness"] = template_data["tube"]["outer_radius"]-template_data["tube"]["inner_radius"] + if template_data["tube"]["outer_diameter"] and template_data["tube"]["inner_diameter"]: + template_data["tube"]["thickness"] = (template_data["tube"]["outer_diameter"]-template_data["tube"]["inner_diameter"])/2 + else: + template_data["tube"]["thickness"] = None # process shank spacing - template_data["tube"]["shank_spacing"] = template_data["tube"]["shank_spacing"]/2+template_data["tube"]["outer_radius"] + if template_data["tube"]["shank_spacing"] and template_data["tube"]["outer_diameter"]: + template_data["tube"]["shank_spacing"] = (template_data["tube"]["shank_spacing"]+template_data["tube"]["outer_diameter"])/2 + else: + template_data["tube"]["shank_spacing"] = None # load templates partial_borefield_template = self.template_env.get_template("PartialBorefield.mot") oneutube_template = self.template_env.get_template("OneUTube.mot") twoutube_template = self.template_env.get_template("TwoUTubes.mot") + # create borefield package paths + b_modelica_path = ModelicaPath(self.borefield_name, scaffold.plants_path.files_dir, True) + self.run_template( partial_borefield_template, - os.path.join(scaffold.plants_path.files_dir, "PartialBorefield.mo"), + os.path.join(b_modelica_path.files_dir, "PartialBorefield.mo"), project_name=scaffold.project_name, model_name=self.borefield_name, ghe_data=template_data @@ -129,7 +141,7 @@ def to_modelica(self, scaffold): self.run_template( plant_template, - os.path.join(scaffold.plants_path.files_dir, "Borefield.mo"), + os.path.join(b_modelica_path.files_dir, "Borefield.mo"), project_name=scaffold.project_name, model_name=self.borefield_name, ghe_data=template_data @@ -139,6 +151,16 @@ def to_modelica(self, scaffold): self.copy_required_mo_files( dest_folder=scaffold.plants_path.files_dir, within=f'{scaffold.project_name}.Plants') + + # Borefield_ package + subpackage_models = ['Borefield'] + ['PartialBorefield'] + borefield_package = PackageParser.new_from_template( + path=b_modelica_path.files_dir, + name=self.borefield_name, + order=subpackage_models, + within=f"{scaffold.project_name}.Plants" + ) + borefield_package.save() # Plants package package = PackageParser(scaffold.project_path) @@ -159,16 +181,6 @@ def to_modelica(self, scaffold): plants_package.add_model(model_name) plants_package.save() - # Borefield_ package - b_modelica_path = os.path.join(scaffold.plants.files_dir, self.borefield_name) - subpackage_models = ['Borefield'] + ['PartialBorefield'] - new_package = PackageParser.new_from_template( - path=b_modelica_path, - name=self.borefield_name, - order=subpackage_models, - within=f"{scaffold.project_name}.Plants" - ) - new_package.save() def get_modelica_type(self, scaffold): return f'{scaffold.project_name}.Plants.{self.borefield_name}.Borefield', f'{scaffold.project_name}.Plants.{self.borefield_name}.PartialBorefield' diff --git a/tests/model_connectors/test_borefield.py b/tests/model_connectors/test_borefield.py index ba80dc78a..c7a2538d3 100644 --- a/tests/model_connectors/test_borefield.py +++ b/tests/model_connectors/test_borefield.py @@ -36,7 +36,7 @@ def setUp(self): self.data_dir, self.output_dir = self.set_up(os.path.dirname(__file__), project_name) # load system parameter data - filename = os.path.join(self.data_dir, "system_params_ghe.json") + filename = os.path.join(self.data_dir, "system_params_ghe_2.json") sys_params = SystemParameters(filename) # Create the time series load, ets and their coupling From cee7a577ef3357a85fa60992bf808f34908fda3b Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Tue, 11 Apr 2023 11:37:01 -0600 Subject: [PATCH 31/58] Add borefield_instance.mopt --- .../model_connectors/plants/templates/Borefield_Instance.mopt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt diff --git a/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt b/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt new file mode 100644 index 000000000..233e87a89 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt @@ -0,0 +1,3 @@ + {{ model.modelica_type }} {{ model.id }} + {% raw %}annotation (Placement(transformation(extent={{-10,0},{10,20}}))); +{% endraw %} \ No newline at end of file From 573800de235963654bcc646688b246317ce90707 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Tue, 11 Apr 2023 11:38:03 -0600 Subject: [PATCH 32/58] Changes for debugging, now the test passes --- .../ComponentDefinitions.mopt | 7 ++++--- .../ConnectStatements.mopt | 9 +++++---- .../model_connectors/districts/district.py | 5 +++-- tests/model_connectors/data/system_params_ghe_2.json | 8 ++++---- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt index 0e97a4be2..4ae8a8686 100644 --- a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt @@ -5,12 +5,13 @@ m_flow={{ coupling.plant.id }}.borFieDat.conDat.mBorFie_flow_nominal, T=303.15, nPorts=1) "Source" - annotation (Placement(transformation(extent={{-90,0},{-70,20}},rotation=0))); - Buildings.Fluid.Sources.Boundary_pT sin_{{ coupling.id }}( + {% raw %}annotation (Placement(transformation(extent={{-90,0},{-70,20}},rotation=0))); + {% endraw %}Buildings.Fluid.Sources.Boundary_pT sin_{{ coupling.id }}( redeclare package Medium = {{ globals.medium_w }}, use_p_in=false, use_T_in=false, p=101330, T=283.15, nPorts=1) "Sink" - annotation (Placement(transformation(extent={{80,0},{60,20}}, rotation=0))); + {% raw %}annotation (Placement(transformation(extent={{80,0},{60,20}}, rotation=0))); + {% endraw %} \ No newline at end of file diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt index 6c731a389..5500903df 100644 --- a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt @@ -1,5 +1,6 @@ // Borefield ambient coupling connections -connect(sou_{{ coupling.id }}.ports[1], {{ coupling.plant.id }}.port_a) - annotation (Line(points={{-70,10},{-10,10}}, color={0,127,255})); -connect({{ coupling.plant.id }}.port_b, sin_{{ coupling.id }}.ports[1]) - annotation (Line(points={{10,10},{60,10}}, color={0,127,255})); + connect(sou_{{ coupling.id }}.ports[1], {{ coupling.plant.id }}.port_a) + {% raw %}annotation (Line(points={{-70,10},{-10,10}}, color={0,127,255})); + {% endraw %}connect({{ coupling.plant.id }}.port_b, sin_{{ coupling.id }}.ports[1]) + {% raw %}annotation (Line(points={{10,10},{60,10}}, color={0,127,255})); + {% endraw %} diff --git a/geojson_modelica_translator/model_connectors/districts/district.py b/geojson_modelica_translator/model_connectors/districts/district.py index a7edef2a4..5e8e9e24d 100644 --- a/geojson_modelica_translator/model_connectors/districts/district.py +++ b/geojson_modelica_translator/model_connectors/districts/district.py @@ -85,7 +85,8 @@ def to_modelica(self): }, 'graph': self._coupling_graph, 'sys_params': { - 'district_system': self.system_parameters.get_param('$.district_system') + 'district_system': self.system_parameters.get_param('$.district_system'), + 'ghe_parameters': self.system_parameters.get_param('$.ghe_parameters') } } @@ -132,7 +133,7 @@ def to_modelica(self): # render the full district file if 'fifth_generation' in common_template_params['sys_params']['district_system']: - if common_template_params['sys_params']['ghe_parameters']: + if common_template_params['sys_params']['ghe_parameters']: final_result = render_template('BorefieldSystem.mot', district_template_params) else: final_result = render_template('DistrictEnergySystem5G.mot', district_template_params) diff --git a/tests/model_connectors/data/system_params_ghe_2.json b/tests/model_connectors/data/system_params_ghe_2.json index edf876c74..6d1ece5b2 100644 --- a/tests/model_connectors/data/system_params_ghe_2.json +++ b/tests/model_connectors/data/system_params_ghe_2.json @@ -252,11 +252,11 @@ "flow_type": "borehole", "max_eft": 35.0, "min_eft": 5.0, - "number_of_boreholes": 4 + "number_of_boreholes": 4 }, - "placeholder": { - "gfunction_file_path": "modelica://GHP/Resources/Data/System/SampleGFunction.mat", - "gfunction_file_rows": 76 + "placeholder": { + "gfunction_file_path": "modelica://GHP/Resources/Data/System/SampleGFunction.mat", + "gfunction_file_rows": 76 }, "ground_loads": [ 0, From 155c1600b25bf7368806b9246405d59aa5554a7d Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 12 Apr 2023 10:44:58 -0600 Subject: [PATCH 33/58] Add borehole_length to example system params file --- tests/model_connectors/data/system_params_ghe_2.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/model_connectors/data/system_params_ghe_2.json b/tests/model_connectors/data/system_params_ghe_2.json index 6d1ece5b2..ad2314044 100644 --- a/tests/model_connectors/data/system_params_ghe_2.json +++ b/tests/model_connectors/data/system_params_ghe_2.json @@ -232,6 +232,7 @@ "arrangement": "singleutube" }, "borehole": { + "length": 100, "buried_depth": 2.0, "diameter": 0.15 }, @@ -254,9 +255,9 @@ "min_eft": 5.0, "number_of_boreholes": 4 }, - "placeholder": { - "gfunction_file_path": "modelica://GHP/Resources/Data/System/SampleGFunction.mat", - "gfunction_file_rows": 76 + "placeholder": { + "gfunction_file_path": "modelica://GHP/Resources/Data/System/SampleGFunction.mat", + "gfunction_file_rows": 76 }, "ground_loads": [ 0, From 1b1dacfb8efbf2fc18f26152ca9f7703563b34a6 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 12 Apr 2023 14:38:40 -0600 Subject: [PATCH 34/58] Debug PartialBorefield.mot, it passes check --- .../plants/templates/PartialBorefield.mot | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot index 3d60d89e2..84d8b50b2 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot @@ -3,7 +3,7 @@ within {{ project_name }}.Plants.{{ model_name }}; "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( - redeclare package Medium = Buildings.Media.Water, // need to be able to change the medium in the future + redeclare package Medium = Medium, // need to be able to change the medium in the future final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( @@ -41,23 +41,22 @@ within {{ project_name }}.Plants.{{ model_name }}; parameter Boolean forceGFunCalc = false "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" annotation (Dialog(tab="Advanced")); - {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource({{ghe_data["gfunction"]["gfunction_file_path"]}}) + {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("{{ghe_data["gfunction"]["gfunction_file_path"]}}") {% raw %} "File name of g-function data file in MAT format"; {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction"]["gfunction_file_rows"]}} {% raw %} "Total length of g-function vector"; // General parameters of borefield - parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat = ( + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, - cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/dFil, - {% raw %}dFil=1450), - final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( + cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/1450{% raw %}, + dFil=1450), + final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, - cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/dSoi, - {% raw %}dSoi=2600), - final conDat= - Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( + cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/2600{% raw %}, + dSoi=2600), + final conDat=Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( dp_nominal=35000, {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, @@ -68,8 +67,8 @@ within {{ project_name }}.Plants.{{ model_name }}; rTub={{ghe_data["tube"]["outer_diameter"]}}/2, kTub={{ghe_data["tube"]["conductivity"]}}, eTub={{ghe_data["tube"]["thickness"]}}, - xC={{ghe_data["tube"]["shank_spacing"]}})) - {% raw %}"Borefield data" + xC={{ghe_data["tube"]["shank_spacing"]}}{% raw %})) + "Borefield data" annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); // Temperature gradient in undisturbed soil @@ -107,8 +106,8 @@ within {{ project_name }}.Plants.{{ model_name }}; "Average borehole wall temperature in the borefield" annotation (Placement(transformation(extent={{100,34},{120,54}}))); - {{ project_name }}.Plants.GroundTemperatureResponse groTemRes( - final tLoaAgg=tLoaAgg, + {% endraw %}{{ project_name }}.Plants.GroundTemperatureResponse groTemRes( + {% raw %}final tLoaAgg=tLoaAgg, final nCel=nCel, final borFieDat=borFieDat, final forceGFunCalc=forceGFunCalc, From 62ae2c5ba2520cb06de8617e94683f027548492f Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 12 Apr 2023 16:19:39 -0600 Subject: [PATCH 35/58] Change coupling definitions --- .../ComponentDefinitions.mopt | 18 +----------------- .../ConnectStatements.mopt | 4 ++-- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt index 4ae8a8686..fd8f493b3 100644 --- a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ComponentDefinitions.mopt @@ -1,17 +1 @@ - // Borefield and Ambient Water Component Definitions - Buildings.Fluid.Sources.MassFlowSource_T sou_{{ coupling.id }}( - redeclare package Medium = {{ globals.medium_w }}, - use_T_in=false, - m_flow={{ coupling.plant.id }}.borFieDat.conDat.mBorFie_flow_nominal, - T=303.15, - nPorts=1) "Source" - {% raw %}annotation (Placement(transformation(extent={{-90,0},{-70,20}},rotation=0))); - {% endraw %}Buildings.Fluid.Sources.Boundary_pT sin_{{ coupling.id }}( - redeclare package Medium = {{ globals.medium_w }}, - use_p_in=false, - use_T_in=false, - p=101330, - T=283.15, - nPorts=1) "Sink" - {% raw %}annotation (Placement(transformation(extent={{80,0},{60,20}}, rotation=0))); - {% endraw %} \ No newline at end of file + // No components for borefield and ambient water stub coupling diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt index 5500903df..e8a197c79 100644 --- a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt @@ -1,6 +1,6 @@ // Borefield ambient coupling connections - connect(sou_{{ coupling.id }}.ports[1], {{ coupling.plant.id }}.port_a) + connect(supHeaWat.ports[1], {{ coupling.plant.id }}.port_a) {% raw %}annotation (Line(points={{-70,10},{-10,10}}, color={0,127,255})); - {% endraw %}connect({{ coupling.plant.id }}.port_b, sin_{{ coupling.id }}.ports[1]) + {% endraw %}connect({{ coupling.plant.id }}.port_b, sinHeaWat.ports[1]) {% raw %}annotation (Line(points={{10,10},{60,10}}, color={0,127,255})); {% endraw %} From 6522be09771ec18a90d22216b30e06022e3061bc Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 12 Apr 2023 16:20:45 -0600 Subject: [PATCH 36/58] Minor changes --- .../districts/templates/BorefieldSystem.mot | 4 +-- .../model_connectors/plants/borefield.py | 29 ++++++++----------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot index 2b29aa387..68bfdb073 100644 --- a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot +++ b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot @@ -1,5 +1,5 @@ within {{ district_within_path }}; -model BorefieldSystem "Borefield model with one GHE component." +model DistrictEnergySystem "Borefield model with one GHE component." extends Modelica.Icons.Example; replaceable package MediumW = Buildings.Media.Water constrainedby @@ -54,4 +54,4 @@ equation annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( coordinateSystem(preserveAspectRatio=false)), experiment(StopTime=172800, __Dymola_Algorithm="Cvode")); -end BorefieldSystem; +end DistrictEnergySystem; diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 289f72c2b..3dfddabf5 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -34,9 +34,9 @@ def to_modelica(self, scaffold): template_data = { "gfunction": { - "gfunction_file_path": str(self.system_parameters.get_param( + "gfunction_file_path": self.system_parameters.get_param( "$.ghe_parameters.placeholder.gfunction_file_path" - )), + ), "gfunction_file_rows": self.system_parameters.get_param( "$.ghe_parameters.placeholder.gfunction_file_rows" ), @@ -98,7 +98,7 @@ def to_modelica(self, scaffold): ), }, } - + # process nominal mass flow rate if template_data["configuration"]["flow_type"] == "system": template_data["configuration"]["nominal_mass_flow_per_borehole"] = template_data["configuration"]["nominal_mass_flow_per_borehole"]/template_data["configuration"]["number_of_boreholes"] @@ -116,29 +116,24 @@ def to_modelica(self, scaffold): template_data["tube"]["shank_spacing"] = None # load templates - partial_borefield_template = self.template_env.get_template("PartialBorefield.mot") - oneutube_template = self.template_env.get_template("OneUTube.mot") - twoutube_template = self.template_env.get_template("TwoUTubes.mot") + oneutube_template = self.template_env.get_template("BorefieldOneUTube.mot") + twoutube_template = self.template_env.get_template("BorefieldTwoUTubes.mot") # create borefield package paths b_modelica_path = ModelicaPath(self.borefield_name, scaffold.plants_path.files_dir, True) - self.run_template( - partial_borefield_template, - os.path.join(b_modelica_path.files_dir, "PartialBorefield.mo"), - project_name=scaffold.project_name, - model_name=self.borefield_name, - ghe_data=template_data - ) - if template_data["configuration"]["borehole_configuration"] == "singleutube": plant_template = oneutube_template + template_data["configuration"]["borehole_configuration"] = "Buildings.Fluid.Geothermal.Borefields.Types.BoreholeConfiguration.SingleUTube" + template_data["configuration"]["borehole_type"] = "Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube" elif template_data["configuration"]["borehole_configuration"] == "doubleutube": plant_template = twoutube_template + template_data["configuration"]["borehole_configuration"] = "Buildings.Fluid.Geothermal.Borefields.Types.BoreholeConfiguration.DoubleUTubeSeries" + template_data["configuration"]["borehole_type"] = "Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube" else: raise ValueError( f"The type of geothermal heat exchanger pipe arrangement is not supported.") - + self.run_template( plant_template, os.path.join(b_modelica_path.files_dir, "Borefield.mo"), @@ -153,7 +148,7 @@ def to_modelica(self, scaffold): within=f'{scaffold.project_name}.Plants') # Borefield_ package - subpackage_models = ['Borefield'] + ['PartialBorefield'] + subpackage_models = ['Borefield'] borefield_package = PackageParser.new_from_template( path=b_modelica_path.files_dir, name=self.borefield_name, @@ -183,4 +178,4 @@ def to_modelica(self, scaffold): def get_modelica_type(self, scaffold): - return f'{scaffold.project_name}.Plants.{self.borefield_name}.Borefield', f'{scaffold.project_name}.Plants.{self.borefield_name}.PartialBorefield' + return f'{scaffold.project_name}.Plants.{self.borefield_name}.Borefield' From e3561ae9e14ea68836fc368ffd9a8dd8852901de Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 12 Apr 2023 16:23:38 -0600 Subject: [PATCH 37/58] Remove partial template models --- ...ialBorefield.mot => BorefieldOneUTube.mot} | 6 +- .../plants/templates/BorefieldTwoUTubes.mot | 373 ++++++++++++++++++ .../plants/templates/OneUTube.mot | 36 -- .../plants/templates/TwoUTubes.mot | 35 -- 4 files changed, 376 insertions(+), 74 deletions(-) rename geojson_modelica_translator/model_connectors/plants/templates/{PartialBorefield.mot => BorefieldOneUTube.mot} (99%) create mode 100644 geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot delete mode 100644 geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot delete mode 100644 geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot diff --git a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot similarity index 99% rename from geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot rename to geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot index 84d8b50b2..3578b5021 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/PartialBorefield.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot @@ -1,5 +1,5 @@ within {{ project_name }}.Plants.{{ model_name }}; -{% raw %}partial model PartialBorefield +{% raw %}model Borefield "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( @@ -116,7 +116,7 @@ within {{ project_name }}.Plants.{{ model_name }}; "Ground temperature response" annotation (Placement(transformation(extent={{20,70},{40,90}}))); - replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole borHol constrainedby + replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol constrainedby Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( redeclare final package Medium = Medium, final borFieDat=borFieDat, @@ -369,5 +369,5 @@ First implementation. ")); -end PartialBorefield; +end Borefield; {% endraw %} diff --git a/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot new file mode 100644 index 000000000..d46795386 --- /dev/null +++ b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot @@ -0,0 +1,373 @@ +within {{ project_name }}.Plants.{{ model_name }}; +{% raw %}model Borefield + "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" + + extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( + redeclare package Medium = Medium, // need to be able to change the medium in the future + final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); + + extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( + final dp_nominal=borFieDat.conDat.dp_nominal, + final computeFlowResistance=(borFieDat.conDat.dp_nominal > Modelica.Constants.eps)); + + replaceable package Medium = Buildings.Media.Water "Medium in the component" + annotation (choices( + choice(redeclare package Medium = Buildings.Media.Water "Water"), + choice(redeclare package Medium = + Buildings.Media.Antifreeze.PropyleneGlycolWater ( + property_T=293.15, + X_a=0.40) + "Propylene glycol water, 40% mass fraction"))); + + constant Real mSenFac(min=1)=1 + "Factor for scaling the sensible thermal mass of the volume"; + + // Assumptions + parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial + "Type of energy balance: dynamic (3 initialization options) or steady state" + annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Conservation equations")); + + // Initialization + parameter Medium.AbsolutePressure p_start = Medium.p_default + "Start value of pressure" + annotation(Dialog(tab = "Initialization")); + + // Simulation parameters + parameter Modelica.Units.SI.Time tLoaAgg=300 + "Time resolution of load aggregation"; + parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; + parameter Integer nSeg(min=1)=10 + "Number of segments to use in vertical discretization of the boreholes"; + parameter Boolean forceGFunCalc = false + "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" + annotation (Dialog(tab="Advanced")); + {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("{{ghe_data["gfunction"]["gfunction_file_path"]}}") + {% raw %} "File name of g-function data file in MAT format"; + {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction"]["gfunction_file_rows"]}} + {% raw %} "Total length of g-function vector"; + + // General parameters of borefield + parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( + final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( + {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, + cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/1450{% raw %}, + dFil=1450), + final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( + {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, + cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/2600{% raw %}, + dSoi=2600), + final conDat=Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( + dp_nominal=35000, + {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, + mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, + hBor={{ghe_data["configuration"]["borehole_height"]}}, + rBor={{ghe_data["configuration"]["borehole_diameter"]}}/2, + dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, + nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, + rTub={{ghe_data["tube"]["outer_diameter"]}}/2, + kTub={{ghe_data["tube"]["conductivity"]}}, + eTub={{ghe_data["tube"]["thickness"]}}, + xC={{ghe_data["tube"]["shank_spacing"]}}{% raw %})) + "Borefield data" + annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); + + // Temperature gradient in undisturbed soil + {% endraw %}parameter Modelica.Units.SI.Temperature TExt0_start={{ghe_data["soil"]["initial_ground_temperature"]}}+273.15 + {% raw %} "Initial far field temperature" + annotation (Dialog(tab="Initialization", group="Soil")); + parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then + TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg} + "Temperature of the undisturbed ground" + annotation (Dialog(tab="Initialization", group="Soil")); + + parameter Modelica.Units.SI.Temperature TGro_start[nSeg]=TExt_start + "Start value of grout temperature" + annotation (Dialog(tab="Initialization", group="Filling material")); + + parameter Modelica.Units.SI.Temperature TFlu_start[nSeg]=TGro_start + "Start value of fluid temperature" annotation (Dialog(tab="Initialization")); + + parameter Modelica.Units.SI.Height z0=10 + "Depth below which the temperature gradient starts" + annotation (Dialog(tab="Initialization", group="Temperature profile")); + parameter Real dT_dz(unit="K/m")=0.01 + "Vertical temperature gradient of the undisturbed soil for h below z0" + annotation (Dialog(tab="Initialization", group="Temperature profile")); + + // Dynamics of filling material + parameter Boolean dynFil=false + "Set to false to remove the dynamics of the filling material." + annotation (Dialog(tab="Dynamics")); + + Modelica.Blocks.Interfaces.RealOutput TBorAve(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit = "degC", + start=TExt0_start) + "Average borehole wall temperature in the borefield" + annotation (Placement(transformation(extent={{100,34},{120,54}}))); + + {% endraw %}{{ project_name }}.Plants.GroundTemperatureResponse groTemRes( + {% raw %}final tLoaAgg=tLoaAgg, + final nCel=nCel, + final borFieDat=borFieDat, + final forceGFunCalc=forceGFunCalc, + final gFunFilNam=gFunFilNam, + final nTimTot=nTimTot) + "Ground temperature response" + annotation (Placement(transformation(extent={{20,70},{40,90}}))); + + replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube borHol constrainedby + Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( + redeclare final package Medium = Medium, + final borFieDat=borFieDat, + final nSeg=nSeg, + final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, + final dp_nominal=dp_nominal, + final allowFlowReversal=allowFlowReversal, + final m_flow_small=m_flow_small, + final show_T=show_T, + final computeFlowResistance=computeFlowResistance, + final from_dp=from_dp, + final linearizeFlowResistance=linearizeFlowResistance, + final deltaM=deltaM, + final energyDynamics=energyDynamics, + final p_start=p_start, + final mSenFac=mSenFac, + final dynFil=dynFil, + final TFlu_start=TFlu_start, + final TGro_start=TGro_start) "Borehole" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + +protected + parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i - + 0.5) for i in 1:nSeg} + "Distance from the surface to the considered segment"; + + Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloDiv( + redeclare final package Medium = Medium, + allowFlowReversal=allowFlowReversal, + final k=1/borFieDat.conDat.nBor) + "Division of flow rate" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + + Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloMul( + redeclare final package Medium = Medium, + allowFlowReversal=allowFlowReversal, + final k=borFieDat.conDat.nBor) "Mass flow multiplier" + annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); + + Modelica.Blocks.Math.Gain gaiQ_flow(k=borFieDat.conDat.nBor) + "Gain to multiply the heat extracted by one borehole by the number of boreholes" + annotation (Placement(transformation(extent={{-20,70},{0,90}}))); + Buildings.Utilities.Math.Average AveTBor(nin=nSeg) + "Average temperature of all the borehole segments" + annotation (Placement(transformation(extent={{50,34},{70,54}}))); + + Modelica.Blocks.Sources.Constant TSoiUnd[nSeg]( + k = TExt_start, + each y(unit="K", + displayUnit="degC")) + "Undisturbed soil temperature" + annotation (Placement(transformation(extent={{-40,14},{-20,34}}))); + + Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor QBorHol[nSeg] + "Heat flow rate of all segments of the borehole" + annotation (Placement(transformation(extent={{-10,10},{10,-10}}, + rotation=90, + origin={0,-10}))); + + Buildings.HeatTransfer.Sources.PrescribedTemperature TemBorWal[nSeg] + "Borewall temperature" + annotation (Placement(transformation(extent={{50,6},{70,26}}))); + + Modelica.Blocks.Math.Add TSoiDis[nSeg](each final k1=1, each final k2=1) + "Addition of undisturbed soil temperature and change of soil temperature" + annotation (Placement(transformation(extent={{10,20},{30,40}}))); + + Modelica.Blocks.Math.Sum QTotSeg_flow( + final nin=nSeg, + final k = ones(nSeg)) + "Total heat flow rate for all segments of this borehole" + annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); + + Modelica.Blocks.Routing.Replicator repDelTBor(final nout=nSeg) + "Signal replicator for temperature difference of the borehole" + annotation (Placement(transformation(extent={{60,70},{80,90}}))); + +equation + connect(masFloMul.port_b, port_b) + annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}}, + color={0,127,255})); + connect(masFloDiv.port_a, port_a) + annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}}, + color={0,127,255})); + connect(masFloDiv.port_b, borHol.port_a) + annotation (Line(points={{-60,-40},{-10,-40}}, color={0,127,255})); + connect(borHol.port_b, masFloMul.port_a) + annotation (Line(points={{10,-40},{60,-40}}, color={0,127,255})); + connect(QBorHol.port_a, borHol.port_wall) + annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}}, + color={191,0,0})); + connect(QBorHol.Q_flow, QTotSeg_flow.u) + annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}}, + color={0,0,127})); + connect(groTemRes.delTBor, repDelTBor.u) + annotation (Line(points={{41,80},{58,80}}, color={0,0,127})); + connect(TSoiDis.u1, repDelTBor.y) annotation (Line(points={{8,36},{0,36},{0, + 60},{90,60},{90,80},{81,80}}, + color={0,0,127})); + connect(TSoiDis.u2, TSoiUnd.y) annotation (Line(points={{8,24},{-19,24}}, + color={0,0,127})); + connect(QTotSeg_flow.y, gaiQ_flow.u) + annotation (Line(points={{-39,80},{-22,80}}, color={0,0,127})); + connect(gaiQ_flow.y, groTemRes.QBor_flow) + annotation (Line(points={{1,80},{19,80}}, color={0,0,127})); + connect(TSoiDis.y, TemBorWal.T) + annotation (Line(points={{31,30},{36,30},{36,16},{48,16}}, + color={0,0,127})); + connect(QBorHol.port_b, TemBorWal.port) annotation (Line(points={{4.44089e-16, + 0},{0,0},{0,4},{80,4},{80,16},{70,16}}, color={191,0,0})); + connect(TSoiDis.y, AveTBor.u) annotation (Line(points={{31,30},{36,30},{36,44}, + {48,44}}, color={0,0,127})); + connect(AveTBor.y, TBorAve) + annotation (Line(points={{71,44},{110,44}}, color={0,0,127})); + annotation ( + Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,60},{100,-66}}, + lineColor={0,0,0}, + fillColor={234,210,210}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-88,-6},{-32,-62}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-82,-12},{-38,-56}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-88,54},{-32,-2}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-82,48},{-38,4}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-26,54},{30,-2}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-20,48},{24,4}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-28,-6},{28,-62}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{-22,-12},{22,-56}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{36,56},{92,0}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{42,50},{86,6}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{38,-4},{94,-60}}, + lineColor={0,0,0}, + fillColor={223,188,190}, + fillPattern=FillPattern.Forward), + Ellipse( + extent={{44,-10},{88,-54}}, + lineColor={0,0,0}, + fillColor={0,0,255}, + fillPattern=FillPattern.Forward)}), + Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, + 100}})),Documentation(info=" +

+This model simulates a borefield containing one or multiple boreholes +using the parameters in the borFieDat record. +

+

+Heat transfer to the soil is modeled using only one borehole heat exchanger +(To be added in an extended model). The +fluid mass flow rate into the borehole is divided to reflect the per-borehole +fluid mass flow rate. The borehole model calculates the dynamics within the +borehole itself using an axial discretization and a resistance-capacitance +network for the internal thermal resistances between the individual pipes and +between each pipe and the borehole wall. +

+

+The thermal interaction between the borehole wall and the surrounding soil +is modeled using + +Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperatureResponse, +which uses a cell-shifting load aggregation technique to calculate the borehole wall +temperature after calculating and/or read (from a previous calculation) the borefield's thermal response factor. +

+", revisions=" +
    +
  • +April 9, 2021, by Michael Wetter:
    +Corrected placement of each keyword.
    +See Buildings, PR #2440. +
  • +
  • +August 25, 2020, by Filip Jorissen:
    +Switched port connections for masFloDiv. +See #41. +
  • +
  • +March 24, 2020, by Damien Picard:
    +Propagated flowReversal into masFloDiv and masFloMul. +
  • +
  • +June 7, 2019, by Massimo Cimmino:
    +Converted instances that are not of interest to user to be protected. +
  • +
  • +June 4, 2019, by Massimo Cimmino:
    +Added an output for the average borehole wall temperature. +See +#1107. +
  • +
  • +April 11, 2019, by Filip Jorissen:
    +Added choicesAllMatching for borFieDat. +See #1117. +
  • +
  • +January 18, 2019, by Jianjun Hu:
    +Limited the media choice to water and glycolWater. +See #1050. +
  • +
  • +July 2018, by Alex Laferrière:
    +Changed into a partial model and changed documentation to reflect the new approach +used by the borefield models. +
  • +
  • +July 2014, by Damien Picard:
    +First implementation. +
  • +
+")); +end Borefield; +{% endraw %} diff --git a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot b/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot deleted file mode 100644 index 566e141f3..000000000 --- a/geojson_modelica_translator/model_connectors/plants/templates/OneUTube.mot +++ /dev/null @@ -1,36 +0,0 @@ -within {{ project_name }}.Plants.{{ model_name }}; -{% raw %}model OneUTube - "Borefield model containing single U-tube boreholes" - {% endraw %}extends {{ project_name }}.Plants.{{ model_name }}.PartialBorefield( - {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol); - - annotation ( - defaultComponentName="borFie", - Documentation(info=" -

-This model simulates a borefield containing one or many single U-tube boreholes -using the parameters in the borFieDat record. -

-

-Heat transfer to the soil is modeled using only one borehole heat exchanger. The -fluid mass flow rate into the borehole is divided to reflect the per-borehole -fluid mass flow rate. The borehole model calculates the dynamics within the -borehole itself using an axial discretization and a resistance-capacitance -network for the internal thermal resistances between the individual pipes and -between each pipe and the borehole wall. -

-", revisions=" -
    -
  • -July 2018, by Alex Laferrière:
    -Extended partial model and changed documentation to reflect the new approach -used by the borefield models. -
  • -
  • -July 2014, by Damien Picard:
    -First implementation. -
  • -
-")); -end OneUTube; -{% endraw %} diff --git a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot b/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot deleted file mode 100644 index 6e747e03b..000000000 --- a/geojson_modelica_translator/model_connectors/plants/templates/TwoUTubes.mot +++ /dev/null @@ -1,35 +0,0 @@ -within {{ project_name }}.Plants.{{ model_name }}; -model TwoUTubes - {% raw %}"Borefield model containing double U-tube boreholes" - {% endraw %}extends {{ project_name }}.Plants.{{ model_name }}.PartialBorefield( - {% raw %}redeclare Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube borHol); - annotation ( - defaultComponentName="borFie", - Documentation(info=" -

-This model simulates a borefield containing one or many double U-tube boreholes -using the parameters in the borFieDat record. -

-

-Heat transfer to the soil is modeled using only one borehole heat exchanger. The -fluid mass flow rate into the borehole is divided to reflect the per-borehole -fluid mass flow rate. The borehole model calculates the dynamics within the -borehole itself using an axial discretization and a resistance-capacitance -network for the internal thermal resistances between the individual pipes and -between each pipe and the borehole wall. -

-", revisions=" -
    -
  • -July 2018, by Alex Laferrière:
    -Extended partial model and changed documentation to reflect the new approach -used by the borefield models. -
  • -
  • -July 2014, by Damien Picard:
    -First implementation. -
  • -
-")); -end TwoUTubes; -{% endraw %} From 416bbcda9e6817877739c2ee1a5f6ee91b244906 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 12 Apr 2023 16:24:01 -0600 Subject: [PATCH 38/58] Add sample g-function and path --- tests/model_connectors/data/SampleGFunction.mat | Bin 0 -> 1242 bytes .../data/system_params_ghe_2.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 tests/model_connectors/data/SampleGFunction.mat diff --git a/tests/model_connectors/data/SampleGFunction.mat b/tests/model_connectors/data/SampleGFunction.mat new file mode 100644 index 0000000000000000000000000000000000000000..190de8ccc10722132086a165895604b8def87567 GIT binary patch literal 1242 zcmV<01SR_b0000?0000200000000060000~Q*>o;0000000000000000002+Kj!X# zpqP3BK-h2}b~YLiKoc`b2Zt9KK=}GwCHHP3Ks1ro)i5P0Kstn(fs-FHKxsh)uQRU@R0#U|OKwh6}+wLY>KqN(Y)E2|LMoK#=5ZLRss8Kvd#SZ+9_QK-sSaLcw96KridI-#mAvKmY&$001DYK;XC%%d}d-Kr$zy z15-iJK<&MsFNk5=K%MhNyqDYMKqT~68l>#-K-*Y(+6}t-Kvr>PR5?=vL7`pg%iYfm zL6j0PYQtU?LHXqT<3gApK{N?v$CyngL9|lsXHh9JK|8aEVlzNFL9Zg*L5Hct0n6Z{K}XSu-cm2EK?Yb1UZiZbLDdGi zN^x|*LAf4si!>Lnt+K?*EwrB%}ELApJ=AbPO# zK~_B`0Z8clL5@Y=32-}lLZ$DLE8yN1LNsG}Df-DELK1%@f+?mbLa|uu zD>4`|LibT|8rqOLLU)VwXlH;!LUUd#%(9_OLLjpyN1p^$LjDD&HLKfRLhL}JWCy2a zLZP!v0sEkELXQ5#LI3~&000000Nk^}$>FP%K4cUV1E_$cKCSED&cL#+KJcG4 z8*rYqJ`AC0uz5MUKJW7q4+AK`KIKF&ZS;Y|K0&ol=;k`dKEZejJ&K6MP#%(C6_KHJJ2x;riOK5Q5HeILE{ zK2bu?TF8+3K7w;Sq9?5UKJ_Tat6vEKKasLT(<9pkKa&2ny5yw{Kaht9Vf+gbKV@6b z*W9)fKb`#U&bVL}KeuW?FNzNtKRhDd>AS@nKe`UgGu4A0Kh(r{p>?2KQf3}>v{buKLh$9HK8XKk~&&jbuJGKTpP5N~e4`KQxK()A8In zKZ~uCx4Ke1KmXh)M-$UNKX&^g_EoAtKg!`8?$_r*KW$YAX}2CjKkAS^h6GGRKS_=l z6$))dKf$c%ge!kWKaA>WP|bfwKZjSSe?@FaKPOo%v&lh8Klh$tt7!d6KiY*w?ogac zKN;aDf4dw@KNDMIcLsk;KMNqlZy3f)KNe4E)xq{lKalaE(SsIDKl%Oagm5ZMKNX98 z+K)C&KQE>C0mVH`KfmDq()&S7KVu-(7HdRIKX=(p8_-2eKM2v3bel#@KW0^*#STYI EKUVl7IRF3v literal 0 HcmV?d00001 diff --git a/tests/model_connectors/data/system_params_ghe_2.json b/tests/model_connectors/data/system_params_ghe_2.json index ad2314044..c2f18631e 100644 --- a/tests/model_connectors/data/system_params_ghe_2.json +++ b/tests/model_connectors/data/system_params_ghe_2.json @@ -256,7 +256,7 @@ "number_of_boreholes": 4 }, "placeholder": { - "gfunction_file_path": "modelica://GHP/Resources/Data/System/SampleGFunction.mat", + "gfunction_file_path": "D:/GitHub/geojson-modelica-translator/tests/model_connectors/data/SampleGFunction.mat", "gfunction_file_rows": 76 }, "ground_loads": [ From 7116fac8efcb8e06e1aa7871c30ef1ffc1739b51 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 19 Apr 2023 11:14:25 -0600 Subject: [PATCH 39/58] Reverting 3 system params files --- .../data/system_params_ghe.json | 138 + .../data/system_params_ghe_2.json | 9025 +++++++++++++++++ .../data/system_params_ghe_3.json | 9019 ++++++++++++++++ 3 files changed, 18182 insertions(+) create mode 100644 tests/system_parameters/data/system_params_ghe.json create mode 100644 tests/system_parameters/data/system_params_ghe_2.json create mode 100644 tests/system_parameters/data/system_params_ghe_3.json diff --git a/tests/system_parameters/data/system_params_ghe.json b/tests/system_parameters/data/system_params_ghe.json new file mode 100644 index 000000000..72734663e --- /dev/null +++ b/tests/system_parameters/data/system_params_ghe.json @@ -0,0 +1,138 @@ +{ + "weather": "../../data_shared/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos", + "buildings": [ + { + "geojson_id": "abcd1234", + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "defgh2345", + "load_model": "spawn", + "load_model_parameters": { + "spawn": { + "idf_filename": "path to a file", + "has_liquid_heating": true, + "has_electric_heating": false, + "has_liquid_cooling": true, + "has_electric_cooling": false, + "temp_chw_supply": 7, + "temp_chw_return": 12, + "temp_hw_supply": 40, + "temp_hw_return": 35, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24, + "thermal_zone_names": [ + "zone a", + "zone_b" + ], + "zone_nom_htg_loads": [ + 3000, + 3000 + ], + "zone_nom_clg_loads": [ + -8750, + -8750 + ] + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + } + ], + "district_system": { + "fifth_generation": { + "central_cooling_plant_parameters": { + "heat_flow_nominal": 7999, + "cooling_tower_fan_power_nominal": 4999, + "mass_chw_flow_nominal": 9.9, + "chiller_water_flow_minimum": 9.9, + "mass_cw_flow_nominal": 9.9, + "chw_pump_head": 300000, + "cw_pump_head": 200000, + "pressure_drop_chw_nominal": 5999, + "pressure_drop_cw_nominal": 5999, + "pressure_drop_setpoint": 49999, + "temp_setpoint_chw": 6, + "pressure_drop_chw_valve_nominal": 5999, + "pressure_drop_cw_pum_nominal": 5999, + "temp_air_wb_nominal": 24.9, + "temp_cw_in_nominal": 34.9, + "cooling_tower_water_temperature_difference_nominal": 6.56, + "delta_temp_approach": 3.25, + "ratio_water_air_nominal": 0.6 + }, + "central_heating_plant_parameters": { + "heat_flow_nominal": 8001, + "mass_hhw_flow_nominal": 11, + "boiler_water_flow_minimum": 11, + "pressure_drop_hhw_nominal": 55001, + "pressure_drop_setpoint": 50000, + "temp_setpoint_hhw": 54, + "pressure_drop_hhw_valve_nominal": 6001, + "chp_installed": false + } + } + }, + "ghe_parameters": { + "connectors": { + "pipe_diameter": 12, + "pipe_insulation_rvalue": 5, + "pipe_location": "Tunnel" + }, + "soil": { + "conductivity": 2.0, + "rho_cp": 2343493, + "undisturbed_temp": 18.3 + }, + "pipe": { + "inner_diameter": 0.0216, + "outer_diameter": 0.0266, + "shank_spacing": 0.0323, + "roughness": 1e-06, + "conductivity": 0.4, + "rho_cp": 1542000 + }, + "borehole": { + "length": 96.0, + "buried_depth": 2.0, + "diameter": 0.15 + } + } +} diff --git a/tests/system_parameters/data/system_params_ghe_2.json b/tests/system_parameters/data/system_params_ghe_2.json new file mode 100644 index 000000000..c2f18631e --- /dev/null +++ b/tests/system_parameters/data/system_params_ghe_2.json @@ -0,0 +1,9025 @@ +{ + "weather": "../../data_shared/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos", + "buildings": [ + { + "geojson_id": "abcd1234", + "ets_model": "None" + }, + { + "geojson_id": "defgh2345", + "load_model": "rc", + "load_model_parameters": { + "rc": { + "order": 2, + "fraction_latent_person": 1.25, + "temp_hw_supply": 40, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24 + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "building_merge_defaults", + "load_model": "rc", + "load_model_parameters": { + "rc": { + "order": 2, + "fraction_latent_person": 1.25, + "temp_hw_supply": 40, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24 + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "ijk678", + "load_model": "spawn", + "load_model_parameters": { + "spawn": { + "idf_filename": "example_model.idf", + "has_liquid_heating": true, + "has_electric_heating": false, + "has_liquid_cooling": true, + "has_electric_cooling": false, + "temp_chw_supply": 7, + "temp_chw_return": 12, + "temp_hw_supply": 40, + "temp_hw_return": 35, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24, + "thermal_zone_names": [ + "Not Real Zones" + ], + "zone_nom_htg_loads": [ + 3000 + ], + "zone_nom_clg_loads": [ + -8750 + ] + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "lmn000", + "load_model": "spawn", + "load_model_parameters": { + "spawn": { + "idf_filename": "example_model_2.idf", + "has_liquid_heating": true, + "has_electric_heating": false, + "has_liquid_cooling": true, + "has_electric_cooling": false, + "temp_chw_supply": 7, + "temp_chw_return": 12, + "temp_hw_supply": 40, + "temp_hw_return": 35, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24, + "thermal_zone_names": [ + "Not Real Zones" + ], + "zone_nom_htg_loads": [ + 3000 + ], + "zone_nom_clg_loads": [ + -8750 + ] + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + } + ], + "connectors": { + "pipe_diameter": 12, + "pipe_insulation_rvalue": 5, + "pipe_location": "Tunnel" + }, + "district_system": { + "fifth_generation": { + "central_cooling_plant_parameters": { + "heat_flow_nominal": 7999, + "cooling_tower_fan_power_nominal": 4999, + "mass_chw_flow_nominal": 9.9, + "chiller_water_flow_minimum": 9.9, + "mass_cw_flow_nominal": 9.9, + "chw_pump_head": 300000, + "cw_pump_head": 200000, + "pressure_drop_chw_nominal": 5999, + "pressure_drop_cw_nominal": 5999, + "pressure_drop_setpoint": 49999, + "temp_setpoint_chw": 6, + "pressure_drop_chw_valve_nominal": 5999, + "pressure_drop_cw_pum_nominal": 5999, + "temp_air_wb_nominal": 24.9, + "temp_cw_in_nominal": 34.9, + "cooling_tower_water_temperature_difference_nominal": 6.56, + "delta_temp_approach": 3.25, + "ratio_water_air_nominal": 0.6 + }, + "central_heating_plant_parameters": { + "heat_flow_nominal": 8001, + "mass_hhw_flow_nominal": 11, + "boiler_water_flow_minimum": 11, + "pressure_drop_hhw_nominal": 55001, + "pressure_drop_setpoint": 50000, + "temp_setpoint_hhw": 54, + "pressure_drop_hhw_valve_nominal": 6001, + "chp_installed": false + } + } + }, + "ghe_parameters": { + "version": "0.5", + "fluid": { + "fluid_name": "Water", + "concentration_percent": 0.0 + }, + "grout": { + "conductivity": 1.0, + "rho_cp": 3901000 + }, + "soil": { + "conductivity": 2.0, + "rho_cp": 2343493, + "undisturbed_temp": 18.3 + }, + "pipe": { + "inner_diameter": 0.0216, + "outer_diameter": 0.0266, + "shank_spacing": 0.0323, + "roughness": 1e-06, + "conductivity": 0.4, + "rho_cp": 1542000, + "arrangement": "singleutube" + }, + "borehole": { + "length": 100, + "buried_depth": 2.0, + "diameter": 0.15 + }, + "simulation": { + "num_months": 240 + }, + "geometric_constraints": { + "length": 100, + "width": 100, + "b_min": 3.0, + "b_max": 10.0, + "max_height": 135.0, + "min_height": 60.0, + "method": "rectangular" + }, + "design": { + "flow_rate": 0.2, + "flow_type": "borehole", + "max_eft": 35.0, + "min_eft": 5.0, + "number_of_boreholes": 4 + }, + "placeholder": { + "gfunction_file_path": "D:/GitHub/geojson-modelica-translator/tests/model_connectors/data/SampleGFunction.mat", + "gfunction_file_rows": 76 + }, + "ground_loads": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88964.3734177778, + 122073.202982222, + 63902.6904222222, + 52317.2963288889, + 41514.9882444444, + 29434.3039733333, + 32753.9204488889, + 17284.982448, + 15288.7578817778, + 11017.8325795556, + 8217.36227022222, + 32409.2688222222, + 51278.9453822222, + 55786.086, + 58907.0002622222, + 59597.7688711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 41261.1886622222, + 94426.0466444445, + 39088.0663733333, + 22820.2751377778, + 3928.03210222222, + -3923.54811422222, + 13260.5006431111, + -19509.30426, + -27926.1600355556, + -22575.6779884444, + -14158.1774564444, + 21174.6808488889, + 22526.9402626667, + 39041.1749955556, + 49278.1489066667, + 57193.9996177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 75889.8850088889, + 129885.599591111, + 69544.6023822222, + 50567.6617955556, + 28604.0042084444, + 9723.54263155556, + 14641.9499395556, + -15588.188636, + -24385.9782417778, + -20769.2755808889, + -13236.4395048889, + 23332.5927471111, + 44427.2358755555, + 57191.6550488889, + 69121.7007688889, + 77919.1093822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18264.0158017778, + 86297.7193777778, + 141136.013404444, + 82539.9615911111, + 64681.0872933333, + 51027.4903688889, + 35500.8759733333, + 39895.7703555556, + 23758.6888355556, + 18831.9876151111, + 16533.8411902222, + 14627.9997546667, + 41958.1117644445, + 63313.3244177778, + 69317.4722711111, + 73835.1634488889, + 77274.6460088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 78453.96416, + 133601.74128, + 119131.355168889, + 104141.94012, + 94641.7469822222, + 86884.1546711111, + 86776.0114311111, + 86429.8944488889, + 85929.6220622222, + 87441.5759244445, + 93968.2695688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12990.5821497778, + 14682.5989026667, + 14619.2076213333, + 14677.2357013333, + 14371.18154, + 3897.61132088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8801.13061644444, + 12797.82928, + 13262.9331333333, + 13595.979144, + 68476.9443244444, + 151989.608933333, + 175980.410088889, + 126174.440111111, + 99703.9642844445, + 73253.4172933333, + 55307.2078044444, + 45939.4828088889, + 24878.1032515556, + 11603.1248955556, + 12236.0705742222, + 224.653953293333, + 38597.1722622222, + 57383.6166266667, + 69498.0040755556, + 77745.3182133333, + 84529.3282933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6933.06604711111, + 99460.7152622222, + 153355.320311111, + 97590.04236, + 75572.1959244444, + 58324.3748933333, + 27107.0848942222, + 21543.3056924445, + 0, + -21944.5493506667, + -26846.163684, + -27160.834136, + 12674.2998066667, + 34262.0643866667, + 50241.1805777778, + 65188.1003155556, + 73411.3826222222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 86810.3007511111, + 138299.37812, + 70408.5760177778, + 41696.1061911111, + 8072.58514133333, + -1906.89063013333, + -12989.9080862222, + -23864.2237426667, + -32266.8362622222, + -33333.9081777778, + -28793.4453746667, + 7430.70079377778, + 16430.5922377778, + 29677.2599244444, + 46644.3188311111, + 60608.2780622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 79698.3440977778, + 127704.271311111, + 65651.1526711111, + 39199.4333955556, + 15841.1969262222, + -4769.46856933333, + 13448.0368471111, + -9911.43052088889, + -27850.3425391111, + -30625.3449688889, + -25635.0473173333, + 6017.68773866667, + 8435.67094088889, + 22427.7943057778, + 32530.6002622222, + 37846.9102177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18665.786988, + 75233.1126488889, + 25548.0051973333, + 11640.0811626667, + 1866.1303, + 0, + 5645.54604177778, + -25981.6918275555, + -31033.8860977778, + -28908.3878644444, + -23248.4813382222, + -705.791434044444, + 26969.2242435556, + 39034.7274311111, + 54631.6788933333, + 67639.9332311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20573.2989288889, + 94228.5167155556, + 147449.937422222, + 118903.345844444, + 87726.4410444445, + 70720.40368, + 49318.0065777778, + 41806.594, + 35245.0248933333, + 31750.7380355556, + 29839.3282488889, + 32946.76124, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 63225.1100133333, + 116162.251742222, + 58147.3599422222, + 46259.2233911111, + 34594.9931688889, + 22900.2249368889, + 23444.0476906667, + 8618.43008577778, + 6449.557328, + 3203.32585866667, + 934.395692844444, + 23198.3661782222, + 43016.3915466667, + 46922.7363866667, + 51682.2112311111, + 54425.9429733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27703.4259911111, + 80129.7447733333, + 24337.2991302222, + 11511.2177951111, + -780.0556536, + 3080.32391333333, + 4063.98779066667, + -17188.708588, + -25987.611864, + -35929.3459377778, + -38302.6357955556, + 0, + 0, + 9146.544228, + 15054.7405995556, + 19760.3196666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13526.3161408889, + 16871.8401026667, + 0, + -27126.5741231111, + -13303.9337817778, + -16353.4852284444, + -20572.1559515556, + -21302.0495537778, + -40322.7749644445, + -75202.3401822222, + -79782.7485777778, + -41123.7383111111, + -6700.16243511111, + -2181.97303644444, + -778.1565528, + -2088.15511235556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -191.082071373333, + -15516.8258204444, + -32980.1713466667, + -32443.5581422222, + -15160.8323417778, + -18214.8384693333, + -27473.130712, + -33280.8623066667, + -70771.9841955556, + -83326.2713822222, + -85492.6530355556, + -43300.3774533333, + -10490.8614146667, + -2572.19135946667, + -2828.13915293333, + -7847.00830711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10136.5091342222, + 29068.8442977778, + 30558.8178266667, + 18813.8758204445, + 12087.1904497778, + 7378.73928577778, + 12094.9275271111, + 7333.10811377778, + -847.365295688889, + 4279.48297866667, + 3748.26228266667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16299.3256871111, + 73783.8760044445, + 130205.633244444, + 53613.8429244445, + 25291.3335182222, + 3083.31323866667, + 6512.62623111111, + -7082.03409288889, + -29622.4556266667, + -38657.8379822222, + -42871.9074888889, + -34973.0549022222, + -13752.5084244444, + 2313.63816382222, + 7828.45690577778, + 26505.5564386667, + 39588.9249022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 41745.0490666667, + 100216.252586667, + 33500.9587111111, + 9357.43819955556, + 4123.83291155556, + -13011.741884, + -16365.8235222222, + -36592.5658622222, + -10110.3964982222, + -7845.51364444444, + -8836.97321333333, + -15038.9440666667, + 0, + -1800.7959572, + 11574.1694697778, + 19879.8047586667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 61513.5747244444, + 40284.9687911111, + 23324.0057635556, + 14658.8601426667, + -3981.13658755556, + 3209.30450933333, + -19331.1170244444, + -32549.0637422222, + -37182.2249377778, + -28859.5329102222, + 7429.93880888889, + 3220.55844, + 23090.1057097778, + 38415.4681733333, + 47490.4151288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 72077.0298533333, + 133462.239431111, + 63956.0293644445, + 43974.73408, + 22637.6918355556, + 6478.835132, + 13707.0530951111, + -2686.62976693333, + -29735.5810755556, + -35753.2102, + -30325.8262933333, + 13258.7129093333, + 36070.3131422222, + 46987.7981733333, + 60952.0504755556, + 71662.9203733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20551.8168164444, + 93398.5393288889, + 148270.829604444, + 77011.4681511111, + 52111.5604088889, + 25851.0993404444, + 9133.41464222222, + 13904.7295595556, + -20776.2799804444, + -34751.7862133333, + -35649.4630266667, + -23262.4315231111, + 340.422610533333, + 27692.5530528889, + 37877.6826844444, + 53375.5761111111, + 64355.1922177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10209.6303764444, + 80581.3673555556, + 134642.729866667, + 100967.686915556, + 67513.03344, + 37703.3053733333, + 23547.3552573333, + 25341.9468991111, + 4929.51470311111, + -6441.11688, + -7250.93097422222, + -6577.39494666667, + -134.72010064, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4708.04086444444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8875.42414311111, + 71883.3098488889, + 16228.0214857778, + 4217.058832, + -13238.3444671111, + -12116.3217182222, + -23985.7017182222, + -25693.0753973333, + -29758.1475511111, + -32481.9504577778, + -48911.5169466667, + -22465.9228573333, + -42.6655854266667, + -1654.4860664, + -1194.72783013333, + -13008.312952, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5630.833872, + 10992.4233142222, + -1683.605612, + -19244.1628257778, + -18341.6503391111, + -26832.6824128889, + -39124.9933333333, + -75759.1752933333, + -87977.8960577778, + -97853.2202177778, + -101654.6456, + -59547.6537111111, + -21993.8439115556, + -12587.3749151111, + -2932.35230933333, + -1768.14490471111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -21866.2700568889, + 46789.6821022222, + 40494.8077066667, + 6372.94853955556, + 5685.02272044445, + 1040.01852128889, + 29643.8498177778, + 7491.27859244444, + -10524.9455848889, + -19007.7716675556, + -35971.5481777778, + 1888.08132622222, + -12761.7522262222, + -3890.40177155556, + -3137.41416577778, + 8061.56566755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9592.48123066667, + 83718.1074577778, + 30303.2598177778, + 16276.4661404445, + -5337.64553244444, + -10304.6440306667, + 15828.741404, + -18685.4813666667, + -44011.0748977778, + -39932.4042444444, + -28314.8602502222, + 10977.6818373333, + 36203.0743555556, + 52154.9349333333, + 65790.9475911111, + 76291.9785733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22638.1607493333, + 100633.292777778, + 158350.424328889, + 87668.4129644445, + 59119.7698888889, + 33730.4333911111, + 7968.10529022222, + 22622.7159017778, + 0, + -19181.2404582222, + -28865.6874035556, + -22652.4333124444, + 18673.17238, + 38572.5542888889, + 51277.1869555556, + 65865.9737955556, + 77114.3361111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19058.7074266667, + 95045.0128311111, + 145842.149306667, + 121280.738697778, + 82700.2714888889, + 59968.7968977778, + 38319.63392, + 36258.4647955556, + 31317.5789333333, + 24132.7354946667, + 14317.1685342222, + 18670.0658262222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14780.4260395556, + 90280.8488488889, + 137288.282786667, + 77176.1741155556, + 61711.3977244444, + 47878.7343511111, + 32201.1883333333, + 29266.9310617778, + 7380.76147644445, + -10485.6154417778, + -17548.2775342222, + -3768.60141777778, + 0, + 30193.6512222222, + 39255.99612, + 44657.2966977778, + 50613.9670311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 43510.8025111111, + 98452.8437111111, + 42554.8045466667, + 29309.1626088889, + 20198.255828, + 8785.451312, + 29833.7598977778, + 15588.0421004444, + -5773.38366044444, + 6882.04236666667, + 5466.68474266667, + 30846.0275155556, + 30970.8758088889, + 39423.0466533333, + 43727.9682044444, + 48123.1556577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8187.55693822222, + 56505.8686488889, + 33359.4053644444, + 15438.6930622222, + 2146.97741506667, + -3204.43952888889, + -2757.35075675555, + -25895.0893142222, + -37259.5957111111, + -28277.0247697778, + -35699.2851155555, + -10864.43916, + 2117.74064102222, + 9863.39616577778, + 32992.7734044444, + 46989.5566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 78484.4435555556, + 137739.026155556, + 53077.5227911111, + 23093.3587991111, + -4517.95494177778, + 0, + -11521.9148906667, + -35254.9893111111, + -22933.488508, + -10875.1948697778, + -8375.47413466667, + -17476.2699622222, + -10330.6394382222, + 3302.97003644445, + 17338.0576262222, + 26267.6413106667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5990.78381066667, + 63924.9638266667, + 43227.1096755556, + 10271.5856093333, + 5924.25666844444, + 13820.969836, + 15317.6253862222, + -116.993108342222, + -5212.12317555555, + -7858.93630133333, + -7913.24237822222, + 22036.8960577778, + 17776.6678511111, + 27385.2386857778, + 29390.3433066667, + 31987.8325644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3371.46075511111, + 29332.0221555556, + 32797.0019022222, + 33287.3098711111, + 42957.4842533333, + 51200.9884666667, + 54518.8465155556, + 52105.9920577778, + 56329.43984, + 61921.23664, + 66213.5561333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17361.737772, + 19848.3582284444, + 20870.7367995556, + 22360.1828004444, + 23280.2795537778, + 23033.5722924444, + 16250.9982608889, + 9359.31385466667, + 7162.89241244445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4105.92626666667, + 7222.47376933333, + 68003.0483377778, + 147921.781911111, + 180003.397231111, + 113331.184808889, + 76657.73132, + 46752.4620711111, + 14841.8830515555, + 18315.8014671111, + -904.827748444445, + -26393.2222817778, + -24993.221584, + -24251.9861297778, + 11180.0181324445, + 30216.5107688889, + 42175.8636, + 51767.7879955556, + 57523.9976888889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 61644.5775111111, + 117151.073671111, + 48611.9982711111, + 20134.6593968889, + -4745.02643866667, + -1194.97107915556, + -13879.9064364444, + -35990.8908711111, + -17204.9740346667, + -18012.9417808889, + -17394.5910435556, + -15063.0931262222, + -20796.8535724444, + 0, + 13764.4364186667, + 27304.1459093333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20532.6206586667, + 79060.62136, + 25411.815052, + 23062.732868, + 1979.42279942222, + -18218.8242364444, + -16717.0106346667, + -3835.392324, + -9665.01633066667, + -17047.3603911111, + -25913.0545733333, + -15926.4513124445, + -2055.67404111111, + -1967.8640748, + -15031.5586746667, + -12885.398928, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13830.1136546667, + 18834.5080266667, + 8988.52028488889, + -16676.2444431111, + -21886.6971133333, + -13886.3246937778, + -17971.5308328889, + -32864.1151866667, + -66610.3744177778, + -82380.8239777778, + -99216.5870266667, + -54502.4345333333, + -18160.415164, + -6028.35552711111, + -704.217642177778, + -1901.66810293333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -238.832733648889, + -5325.24862444445, + -37605.1265511111, + -29937.5070711111, + -26544.7400462222, + -20154.3244684444, + -21740.3667075556, + -26430.9405337778, + -22140.0277817778, + -23904.1693351111, + -28128.8773231111, + -25146.4098537778, + -10371.0246373333, + -9411.74427644445, + -13110.5947697778, + -10395.4081537778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -2390.9679072, + -4482.81571555556, + -9504.999504, + -15619.4886306667, + -20231.1090995555, + -11164.0164497778, + -10339.021272, + -10337.3800737778, + -16061.4398662222, + -14721.2549822222, + -424.273186133333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9135.70059688889, + -11355.2160426667, + -12126.4619786667, + -11638.5865, + -7201.98809866667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10797.443104, + 4788.16650622222, + -15495.8126217778, + -27206.3773866667, + -34430.8733466667, + -52828.1192755556, + -83881.0549955556, + -120761.123617778, + -143668.440875556, + -148461.618897778, + -145847.131515555, + -94292.6992888889, + -50219.2002444444, + -29066.7048786667, + -14392.6343453333, + -332.811553777778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -532.114562888889, + -12298.4067995556, + -31546.7605422222, + -20994.7058795555, + -15752.8359862222, + -30510.4610933333, + -61743.0494044444, + -104286.717248889, + -105187.910915556, + -97812.7764044445, + -100758.727213333, + -49099.9616711111, + -15489.3943644444, + -8717.25366444444, + -4745.08505288889, + -4423.55673688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8490.38731733334, + 23245.4040915556, + -6148.33884, + -20088.4127755556, + -33668.3023155556, + -38083.4186044444, + -38753.9653066667, + -48900.9663866667, + -50756.3995911111, + -74498.0903022222, + -91803.9394133333, + -50254.0757066667, + -15698.4712951111, + -4632.92673866667, + -7189.26881244444, + -28043.9453151111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4645.23572533333, + 28801.5341373333, + 7512.49694088889, + -9706.36866444444, + -29023.8578822222, + -39409.2723111111, + -43012.8746933333, + -56026.9904533333, + -64517.5536133333, + -85818.8411822222, + -102370.325253333, + -62400.4079066667, + -22977.1854106667, + -7406.81549822222, + -4335.10787555556, + -22314.2878644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3669.80714622222, + 42168.2437511111, + 21758.3612737778, + 12901.1075395556, + -169.27845992, + -18185.3848226667, + -21762.0832768889, + -25389.1606551111, + -31818.1443911111, + -29993.4836533333, + -25275.449064, + -46.0877767911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10783.0240053333, + -14972.5927671111, + -15031.2362964444, + -19111.5188408889, + -14732.1279204444, + -1755.37286568889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -597.566134133333, + -10114.294344, + -28204.28452, + -25736.0396222222, + -43148.8596888889, + -67077.5297688889, + -96135.8235066667, + -124298.785, + -133839.12888, + -152409.579835556, + -156974.455462222, + -120461.898013333, + -72988.4810088889, + -48112.8981688889, + -26800.2101337778, + -8879.82020977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -12863.9754297778, + -28449.2040475556, + -24372.5262777778, + -68799.6156177778, + -107417.889, + -127485.05412, + -160611.761022222, + -163658.821364444, + -163320.324231111, + -168583.588315556, + -123440.086644444, + -80489.9291688889, + -58327.0125333333, + -44831.3809377778, + -27823.3799968889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -7940.878984, + -53979.8887422222, + -46838.0388355556, + -42354.0508355556, + -24654.0503871111, + -36167.9058222222, + -24054.9251146667, + -19737.7531911111, + -21260.7265271111, + -23780.1123337778, + -19563.8741008889, + -26805.1630355556, + -27241.1063133333, + -8167.83325244444, + -2591.78023253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9391.844748, + 20848.3754737778, + -30310.5865955556, + -29389.7571644444, + -32601.2304, + -40203.2019511111, + -43173.1845911111, + -62102.0615155556, + -87311.15928, + -87789.7444044444, + -79135.3544933333, + -47049.9292488889, + -13072.671368, + -5391.89299511111, + -4808.21257022222, + -12296.150152, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16117.3871413333, + 28388.0401066667, + -25293.0919448889, + -23444.4872973333, + -19997.6193453333, + -40532.61388, + -48593.5347911111, + -95149.0530755556, + -111293.461373333, + -130591.607897778, + -136892.343715556, + -89780.2833911111, + -51153.8040177778, + -27219.2139013333, + -10932.9884928889, + -2954.83086355555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -14.0429418955556, + 2569.7998992, + -11974.358072, + -19541.3955466667, + -23872.224584, + -11578.4190008889, + -499.8855328, + -23941.066988, + -37919.0057111111, + -53211.74936, + -60855.9231511111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5359.03972355556, + -8735.36545911111, + -9133.12157111111, + -11530.5897955556, + -6706.05316444445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10240.4028431111, + 0, + -7499.80696177778, + -25263.9899835556, + -19023.5095862222, + -39619.6973688889, + -41569.2064, + -59112.7361822222, + -102729.044293333, + -116765.392088889, + -121843.435231111, + -84787.2308711111, + -41805.7147866667, + -22521.4305257778, + -5876.51538444444, + -2266.58852764444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -20877.711892, + 20189.5223088889, + -8037.18215111111, + -24868.0509124445, + -35194.03052, + -25973.6909862222, + -34082.1187244444, + -38266.0019066667, + -49879.2377555556, + -70911.1929733333, + -99401.2218266667, + -59183.36632, + -24295.8002608889, + -10453.3483124444, + -3982.77778577778, + -1368.74173306667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4275.350676, + 8076.01407333333, + -30227.9405422222, + -31831.03952, + -54445.2856666667, + -102155.211057778, + -124133.785964444, + -162502.948902222, + -183820.355382222, + -188243.384591111, + -193529.508222222, + -142416.73416, + -90536.993, + -62633.6925111111, + -41626.9414088889, + -25391.0363102222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -745.997859777778, + -18880.1978128889, + -48185.5798044445, + -100762.537137778, + -142568.544995556, + -153729.279048889, + -160541.423955556, + -181762.116968889, + -185163.793355556, + -187824.879044444, + -177383.634568889, + -114302.422471111, + -65283.0553555556, + -33796.3743911111, + -16287.954528, + -4999.73454133333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + 1918.3028192, + -43352.5441111111, + -21319.9561986667, + -33108.8295644444, + -52827.2400622222, + -65895.8670488889, + -115465.621711111, + -131122.945822222, + -145111.229955556, + -145325.758008889, + -107594.024737778, + -64965.9524133333, + -49777.54208, + -26387.6246235556, + -13770.6788333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -12370.4436786667, + -9592.42261644445, + -7848.88396222222, + -13515.0329031111, + -42522.5667244445, + -53844.78296, + -83173.8744044445, + -103680.939262222, + -106960.404995556, + -102963.794253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8873.46056666667, + -11065.1049497778, + -15854.2972048889, + -12539.1647173333, + -9205.42221422222, + -1998.42259955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -636.181183733333, + -16382.4406542222, + -47509.4647511111, + -26390.379492, + -36085.55284, + -71644.4568933333, + -93042.1648577778, + -134224.810462222, + -153269.157404444, + -173343.06316, + -194715.86008, + -173270.381524444, + -135327.930124445, + -109494.297822222, + -89694.4135555556, + -66224.9859066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -92.5518568888889, + -25340.3936222222, + -48658.5965777778, + -62797.2261911111, + -116970.248795556, + -156033.404124444, + -170967.428733333, + -191766.97856, + -184415.289737778, + -180552.905564445, + -178978.234484445, + -143465.342595556, + -87614.7809511111, + -49638.9194444444, + -25934.5073786667, + -4331.76686488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + 0, + -36674.9188444444, + -33426.5186488889, + -34658.8826711111, + -33400.1422488889, + -45674.5465244444, + -57123.6625511111, + -99388.6197688889, + -112940.814088889, + -131964.352982222, + -101448.323537778, + -75168.3439333333, + -52495.4835644444, + -28143.2378075555, + -6504.97707511111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2802.65368911111, + 1555.07927622222, + -29550.9462755556, + -31458.2530666667, + -35121.3488844444, + -24593.7949666667, + -21442.1961591111, + -22625.8517626667, + -20660.1652062222, + -20568.4925626667, + -22419.8520786667, + -19739.2185466667, + -10312.908636, + -24370.6213155556, + -17435.5037706667, + -796.579002844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9371.62284133333, + 26171.1036866667, + -18092.2761306667, + -32162.5029466667, + -27774.8181137778, + -28481.9987048889, + -20777.8625644444, + -20874.8397951111, + -30101.0407511111, + -49298.0777422222, + -87394.0984044445, + -62091.5109555556, + -35715.6970977778, + -16568.599424, + -6475.84580666667, + -7693.96657288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16926.5857862222, + 38228.7818755556, + 35134.2440133333, + 15308.8332528889, + 10799.3773733333, + -4222.53926177778, + -2420.8787448, + -2805.84523351111, + -13818.6252671111, + -18678.3304315556, + -21316.7031093333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4085.968124, + -1923.84772462222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23025.9524435556, + 23631.144288, + 13145.3530035556, + -10784.518668, + -15343.2691084445, + -24377.2154155555, + -39061.1038311111, + -58899.3804133333, + -89823.9509866667, + -112527.290751111, + -123403.452755556, + -88527.9905333333, + -54805.4700622222, + -31855.6574933333, + -13181.4593644444, + -3758.87145688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10176.542648, + -35850.5098088889, + -29967.6933955556, + -23927.2926457778, + -23440.0619235556, + -18971.8997635556, + -21512.1522333333, + -19682.0989871111, + -20229.4972084444, + -22785.8978964444, + -20969.8241422222, + -6863.84265066667, + -26056.1611968889, + -13730.498784, + -2280.30425564445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5111.68770577778, + 28816.8617564444, + 24040.4767088889, + 12421.3208235556, + 5969.53615511111, + 1517.70684813333, + 10047.9137373333, + -10246.2056511111, + -17096.1567311111, + -24103.8972973333, + -26623.8985533333, + 8786.242604, + 0, + 10019.8082177778, + 19937.92076, + 26909.3498155556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2386.40185928889, + 44323.4887022222, + 31680.9871111111, + 8446.92487155556, + -9874.03464711111, + -27254.7048128889, + -17166.6989475556, + -21697.5490182222, + -30389.1296533333, + -44908.45864, + -77427.6291288889, + -59401.9973688889, + -34531.98288, + -15707.4392711111, + -6097.66684488889, + -1975.54546862222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -37177.8288711111, + -40254.1963244445, + -28835.1200866667, + -21715.5728915556, + -33631.3753555556, + -41622.5453422222, + -57693.3927911111, + -82845.63476, + -95167.2234844444, + -70803.0497333333, + -41476.5959288889, + -20790.2008582222, + -5761.80735155556, + -1421.15163986667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -21199.2109008889, + 16003.0014866667, + 10322.140376, + 12409.9203573333, + -1540.07403533333, + -8506.916528, + -7391.48787911111, + -20699.9935702222, + -18206.6617853333, + -19442.3375111111, + -21145.6081946667, + -334.713585288889, + -2581.88908253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7118.11114666667, + -8166.13344, + -10363.0531031111, + -8393.38077955556, + -5165.14387644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -648.317258444445, + -5496.78314577778, + -28383.2044333333, + -15698.2954524444, + -25845.8240604444, + -55748.5728977778, + -88387.0233288889, + -122158.486675556, + -128765.188733333, + -141017.905746667, + -153540.248182222, + -104490.1086, + -64542.4646577778, + -44493.1768755556, + -33959.9080711111, + -23196.72498, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -17607.8881982222, + -33015.33988, + -43494.3905288889, + -82756.5411422222, + -113452.223177778, + -129837.829, + -166762.444431111, + -179621.232502222, + -187197.706866667, + -195415.713893333, + -171655.266631111, + -123766.567862222, + -108322.59952, + -90969.56596, + -70499.1349911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -32064.9102666667, + -96841.2456711111, + -124649.884191111, + -138448.551315556, + -172699.185928889, + -157474.141706667, + -199329.971653333, + -206157.063186667, + -220773.984853333, + -241437.549684444, + -201760.99652, + -163432.277395555, + -140653.618355556, + -111764.133577778, + -92666.4476933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -53189.7690266667, + -135589.642626667, + -139575.409737778, + -156733.257937778, + -192619.815493333, + -211421.792626667, + -236616.822977778, + -241885.069271111, + -243615.654182222, + -249857.189635556, + -220760.210511111, + -175753.573048889, + -143003.462524444, + -119934.076942222, + -98757.0515244444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1550.11172088889, + -55541.6646933333, + -142384.789408889, + -150757.244911111, + -161477.493084444, + -184039.279502222, + -130345.721235556, + -117999.807608889, + -120908.245315556, + -130596.297035556, + -159203.847404444, + -118902.466631111, + -76515.0056888889, + -53749.2417777778, + -24379.2082991111, + -9072.25070133333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -7544.177928, + -20552.9304866667, + -18102.5336195556, + -14585.0355297778, + -17844.2500493333, + -14004.1099733333, + -11784.0376924445, + -6201.97085333333, + -5551.11852977778, + -5743.22664311111, + -728.434108088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1860.54729533333, + -61319.85472, + -102445.644528889, + -106063.607395556, + -110047.909151111, + -113517.871106667, + -114220.069488889, + -136823.472004445, + -147247.718355556, + -145561.387182222, + -152437.421591111, + -114853.689231111, + -80832.5292977778, + -58264.0022444445, + -33433.2592844444, + -16729.1437786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -23650.3697528889, + -93961.8220044444, + -140278.194262222, + -158889.382102222, + -188950.272111111, + -184857.827115556, + -215964.980991111, + -234021.385217778, + -236963.819173333, + -234682.260573333, + -192739.974648889, + -149086.446506667, + -124546.430088889, + -107891.198844444, + -73193.0446444444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -19216.5555271111, + -31733.7399111111, + -24382.5786168889, + -23033.8360564444, + -22814.8533222222, + -23907.6861884444, + -33343.5795244445, + -36700.12296, + -42719.21744, + -48874.5899866667, + -36531.9001422222, + -20522.6269337778, + -38505.7340755556, + -15363.4910151111, + 2124.12372982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 45405.2141733333, + 23974.565016, + 3445.49051777778, + -22028.3676884444, + -41876.9310666667, + -29311.8002488889, + -40652.1868933333, + -42394.4946488889, + -69212.5528133333, + -80420.1782444445, + -63381.6099866667, + -38777.4109955555, + -19210.4889551111, + -7242.05091955556, + -17327.6536017778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1961.44581746667, + 30341.6521333333, + 9272.97510533333, + -27377.0033875556, + -26207.2100475556, + -35068.0099422222, + -49315.95508, + -103514.767942222, + -126187.33524, + -152970.811013333, + -171076.158115556, + -135688.407591111, + -102684.497484445, + -72395.8912222222, + -31758.9440266667, + -15523.1268493333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -213.221249248889, + -15596.0429417778, + -7669.49513511111, + -11200.1521177778, + -28004.4100222222, + -42330.0190044445, + -49693.7237422222, + -65762.8127644445, + -84417.6682, + -93009.6339644445, + -98512.6302177778, + -4228.01969155556, + -11445.9801657778, + -9217.760508, + -2696.97810786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2408.65474875556, + -5147.03208177778, + -4669.32617066667, + -2353.41377502222, + -10160.3944297778, + -12787.8355551111, + -19995.2454693333, + -21985.6672275555, + -19034.2359888889, + -9705.723908, + -3365.80448266667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 280.612072035556, + -18013.0590093333, + -38253.1067777778, + -48455.4982977778, + -91000.3384266667, + -122441.007226667, + -139812.211195556, + -167725.183031111, + -187581.336951111, + -197289.024435556, + -204599.09716, + -187188.621662222, + -133704.902311111, + -95594.5211644445, + -65426.6602, + -43530.4382755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -13915.8662617778, + -56281.0831066667, + -70388.06104, + -123875.883386667, + -156793.923657778, + -178207.457462222, + -208070.524471111, + -209646.660906667, + -232619.333022222, + -225197.014062222, + -199581.133595556, + -145718.180226667, + -114179.918746667, + -83570.1065466667, + -67095.9932488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -124.52825968, + -25777.3040346667, + -73334.30492, + -103717.866222222, + -152241.357017778, + -189557.808524444, + -198788.962382222, + -220542.751746667, + -236322.286511111, + -237870.581191111, + -236340.45692, + -202136.127542222, + -147784.33156, + -124551.99844, + -83485.4089955556, + -58658.47596, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -84.1114088888889, + -22166.7558671111, + -66021.3014844444, + -97015.9160533333, + -149711.274115556, + -190441.417924445, + -202867.339964444, + -211837.660533333, + -210948.482782222, + -218473.08356, + -219149.198613333, + -188266.537208889, + -146743.342973333, + -111734.826466667, + -80720.2830622222, + -55645.4118666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28.6188629137778, + -23718.5087862222, + -67816.0689688889, + -99769.9052844444, + -141092.931951111, + -174490.43656, + -192393.857666667, + -206179.629662222, + -216000.735666667, + -229050.606102222, + -229894.650902222, + -194782.094151111, + -154411.841666667, + -117668.637253333, + -87203.6021822222, + -63021.7186622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -13400.0904133333, + -17568.528748, + -34044.6056222222, + -59658.14152, + -96113.8431733333, + -105652.428626667, + -113482.409502222, + -123986.957337778, + -131581.895182222, + -140022.636253333, + -6466.35030266667, + -9987.160096, + -7094.75337911111, + -2345.74996546667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2713.91468737778, + -8168.65385155555, + -10905.3811942222, + -15285.4168711111, + -23510.6920613333, + -33477.2199511111, + -38368.5767955556, + -41425.0154133333, + -54998.6039244445, + -28739.7547471111, + -16223.5374977778, + -2560.34542515556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -17550.6807173333, + -89099.4792, + -154172.402568889, + -171054.177782222, + -196169.785862222, + -223924.499297778, + -226409.156177778, + -242154.987764444, + -248312.411808889, + -248403.849995556, + -254221.01848, + -225779.34636, + -176644.509226667, + -149732.082164444, + -117742.491173333, + -80909.9000711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -41971.0068933333, + -134799.522911111, + -148426.157293333, + -177735.026831111, + -210086.853715556, + -218935.549773333, + -231753.60096, + -226470.114968889, + -230513.617088889, + -227142.713168889, + -187725.234866667, + -150031.893911111, + -112638.657773333, + -98503.8380844444, + -74927.1464088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1877.6567868, + -42702.8054577778, + -113102.0032, + -136907.583413333, + -171616.874315556, + -202113.854137778, + -219343.50476, + -237608.282546667, + -236017.199484445, + -253095.332342222, + -234423.771853333, + -200105.730884444, + -143727.64124, + -125272.367231111, + -101369.194337778, + -72910.8171644445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -125.946723857778, + -33369.9559244445, + -63091.1765155556, + -101448.90968, + -143186.631968889, + -174241.326115556, + -185586.98804, + -205623.673764445, + -217706.409533333, + -222297.075417778, + -231790.820991111, + -173448.275688889, + -129869.773751111, + -109558.773466667, + -76363.1948533333, + -57760.7991466667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -210.012999795556, + -34136.33688, + -88733.7264533333, + -105775.518493333, + -144197.434231111, + -167162.193426667, + -173197.699888889, + -204774.353684444, + -209637.282631111, + -222246.667186667, + -214929.560755555, + -178309.153137778, + -137069.944808889, + -114292.164982222, + -83928.5325155556, + -68613.8085333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -26324.4677991111, + -28908.8860853333, + -35347.01364, + -68119.1044977778, + -95572.8339022222, + -95821.0651333333, + -99538.3791066667, + -99293.9578, + -108511.044244444, + -105328.87812, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9467.72085866667, + -19082.534108, + -27872.6159435556, + -31535.9169111111, + -24281.586312, + -6888.51923822222, + -3046.26905022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16894.2893497778, + -82126.1451822222, + -142692.807146667, + -124151.663302222, + -144407.273146667, + -164633.57588, + -155992.960311111, + -180468.208013333, + -173722.590248889, + -179869.170662222, + -186030.404631111, + -147748.869955556, + -115294.468182222, + -85308.3113066667, + -49111.3914444445, + -20027.9228982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -25155.3485226667, + -48712.2285911111, + -48344.1312755556, + -56127.5138444445, + -86310.0283644445, + -102301.746613333, + -127578.250733333, + -140910.934791111, + -144905.787106667, + -146267.68856, + -108183.683813333, + -73234.6607422222, + -45526.8386844444, + -18820.0596208889, + -5503.93408088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -20160.4496546667, + 10373.2226706667, + -40262.1092444444, + -41993.2802977778, + -34516.7431822222, + -36385.9507288889, + -46331.6119555556, + -62019.7085333333, + -85494.9976044444, + -93848.9896266667, + -108612.446848889, + -82469.3314533333, + -54605.5955644445, + -36869.2249911111, + -9014.54499955556, + -5277.74179733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23619.1576795556, + 20590.0332893333, + -36009.06128, + -33645.1496977778, + -30591.6417911111, + -42000.3140044444, + -76381.9514044445, + -112900.663346667, + -132869.649644444, + -144504.572755556, + -155178.515693333, + -128548.902253333, + -96297.0126177778, + -63398.6081111111, + -27294.8555551111, + -10967.6294982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6282.44818044444, + -35486.80856, + -47623.7624844444, + -61371.4352355556, + -109905.769662222, + -138747.190777778, + -170759.055173333, + -176008.837986667, + -205303.933182222, + -205873.07728, + -164055.053506667, + -128510.216866667, + -100602.813382222, + -71898.2564755556, + -45092.2142266667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -10582.3582155556, + -12495.2333577778, + -14820.8698528889, + -14761.2298817778, + -33002.7378222222, + -55159.7930355556, + -69541.3786, + -89681.8114977778, + -104420.357675556, + -106638.319844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3197.02482977778, + -11483.2001968889, + -12726.4371573333, + -2782.00976004444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -17767.14304, + -85457.4845022222, + -152345.983404444, + -152182.742795556, + -158644.960795556, + -175621.397977778, + -175532.890502222, + -201069.641768889, + -215492.843431111, + -222399.357235556, + -232074.513826667, + -200484.671831111, + -156992.918942222, + -134206.053911111, + -99923.7676177778, + -76249.4832622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -36307.4076711111, + -117843.893777778, + -138070.489582222, + -168828.595764444, + -196496.26708, + -211683.212057778, + -229062.328946667, + -235404.09472, + -241166.458906667, + -243326.392995556, + -200291.537968889, + -156334.681226667, + -126792.820155556, + -105280.814457778, + -80953.8607377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1462.14349617778, + -40898.3666266667, + -126377.538391111, + -161088.001577778, + -182003.314493333, + -219155.939248889, + -225198.186346667, + -242396.185288889, + -239715.463835556, + -278460.050866667, + -259189.453026667, + -217528.515368889, + -174823.365342222, + -132099.458764445, + -107400.304733333, + -87655.5178355556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -284.488230551111, + -36514.9020177778, + -110190.634782222, + -155667.944448889, + -192395.029951111, + -221194.248826667, + -231547.86504, + -241491.474768889, + -243857.73092, + -250985.806484444, + -256630.649155556, + -212801.864488889, + -169100.565755556, + -136528.935537778, + -99206.0364666667, + -82246.3043377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -382.249719511111, + -36823.7989688889, + -125239.836337778, + -169110.823244444, + -195278.263542222, + -218792.824142222, + -235302.105973333, + -252766.799626667, + -265638.189755555, + -271703.882542222, + -277822.328128889, + -239227.500435556, + -189659.211128889, + -165254.007422222, + -124063.448897778, + -102980.792377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4611.59116177778, + -64086.73908, + -105665.323755556, + -131630.838057778, + -154802.212386667, + -178518.11284, + -165210.925968889, + -171532.176764444, + -173317.272902222, + -181981.627231111, + -185216.546155556, + -10325.2469297778, + -13420.7519266667, + -12841.877868, + -7601.414716, + -3233.30703333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7255.73734044444, + -12059.1435444445, + -18556.6473062222, + -18747.9934346667, + -31021.28404, + -36410.2756311111, + -18486.163704, + -26836.7561013333, + -22498.6002862222, + -32707.6152133333, + -19465.3435933333, + -5340.165944, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -24563.9310204444, + -68940.5828222222, + -148455.757475556, + -211114.654102222, + -234992.915951111, + -244483.730813333, + -266917.445155556, + -259520.03724, + -287107.114, + -290776.950453333, + -313565.573911111, + -299146.475244444, + -266043.800173333, + -209966.987631111, + -182399.546635556, + -142936.935382222, + -109083.412124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7350.69238044444, + -60558.7490444445, + -136398.225822222, + -140248.59408, + -141601.996471111, + -162245.046324444, + -165654.049488889, + -189331.264555556, + -185872.439302222, + -191360.488928889, + -192237.650764444, + -152765.368164444, + -116975.231004444, + -86548.5882488889, + -50438.4174355556, + -22027.2833253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 300.107748488889, + -25577.8984506667, + -39157.8172977778, + -45987.8395422222, + -56625.7347333333, + -93916.3959822222, + -102622.073337778, + -140341.497622222, + -151909.307448889, + -169482.437413333, + -177740.595182222, + -142391.823115556, + -112498.569782222, + -90910.3655955556, + -50850.7684888889, + -26365.2926048889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -18637.0660191111, + -36826.4366088889, + -40562.8002044444, + -71258.1891688889, + -129767.491933333, + -140962.808377778, + -164593.425137778, + -173566.383346667, + -175735.109568889, + -195292.037884444, + -160182.411844444, + -122487.898604444, + -90899.5219644445, + -67141.4192711111, + -38905.7761422222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 87.3199514133333, + -17073.3851057778, + -37779.2107911111, + -63041.0613555555, + -116257.792924445, + -143268.398808889, + -158008.410342222, + -176921.461426667, + -190804.826102222, + -198294.258346667, + -212409.442271111, + -178607.7926, + -139578.047377778, + -111544.916386667, + -77036.6722666667, + -56118.1355688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -14350.4614124445, + -21425.6376413333, + -35913.5200977778, + -55173.5673777778, + -84941.3862755556, + -86141.5124755556, + -96418.6371288889, + -107026.345995556, + -115471.776204444, + -126700.795826667, + -4583.10464977778, + -11200.9141026667, + -9515.87244222222, + -3132.31472844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6869.64545866667, + -8291.77302533333, + -8491.03207377778, + -7599.65628933333, + -15814.6446835556, + -18462.6300937778, + -18071.5853102222, + -24712.6353022222, + -16639.9329324444, + -2730.34718457778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10956.4341817778, + -74645.7981422222, + -137372.980337778, + -161395.726244444, + -192131.852093333, + -215664.876173333, + -226725.672977778, + -249357.503391111, + -247871.339786667, + -254640.110168889, + -261851.417928889, + -222212.084795556, + -180819.014133333, + -153162.47952, + -121024.594546667, + -96716.3973777778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3907.42920311111, + -71837.0046133333, + -173828.681991111, + -169011.472137778, + -206146.219555556, + -234470.077088889, + -232580.940706667, + -256400.295262222, + -251646.095697778, + -268230.989875556, + -261944.907613333, + -236064.090862222, + -185312.087337778, + -166862.088608889, + -132181.518675556, + -107543.909577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5896.26837733333, + -65447.4682488889, + -149449.268542222, + -174141.975008889, + -198467.170302222, + -229805.850355556, + -234825.572346667, + -255318.569791111, + -252798.451306667, + -258639.06548, + -263545.368951111, + -236491.974684444, + -187337.794857778, + -158440.690231111, + -134082.084831111, + -117751.869448889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3234.36208933333, + -81259.8269777778, + -177222.738528889, + -199113.978244444, + -214636.196573333, + -238177.426644444, + -250050.616568889, + -258046.475693333, + -259072.810724445, + -259823.36584, + -273502.753022222, + -242032.48404, + -193497.2704, + -167868.787875556, + -144229.378982222, + -110018.895111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6511.95216755556, + -102979.620093333, + -176124.894146667, + -204956.643915556, + -224818.952328889, + -254913.545515556, + -250829.599582222, + -264648.781684444, + -260930.295426667, + -276280.481013333, + -290121.93652, + -251551.7268, + -209446.493337778, + -178093.745871111, + -139655.12508, + -109065.534786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7210.86815333333, + -63441.3964933333, + -96009.8029288889, + -127807.432342222, + -155118.143044444, + -171841.952928889, + -173363.285066667, + -176692.86596, + -174298.768053333, + -175604.106782222, + -172457.695333333, + -449.7703728, + -3271.201128, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2946.771408, + -7607.89158755556, + -9761.43672622222, + -15227.4180982222, + -16847.1635151111, + -30800.6014933333, + -35933.7420044444, + -41920.8917333333, + -69211.3805288889, + -73412.2618355556, + -36294.8056133333, + -35552.1634177778, + -13540.2663257778, + -6550.75478266667, + -3044.77438755556, + 0, + 0, + 0, + 0, + 0, + 0, + -27864.5271808889, + -87120.9561288889, + -154703.447422222, + -220937.225462222, + -234686.070497778, + -251195.938471111, + -263404.694817778, + -264736.703017778, + -279543.534764445, + -283935.791506667, + -276757.600782222, + -275782.260124444, + -234008.490088889, + -175033.497328889, + -142909.679768889, + -114169.075115556, + -97931.7632755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12799.2946355556, + -91262.344, + -180398.164017778, + -200315.5698, + -210836.822688889, + -234665.262448889, + -249409.376977778, + -257209.757671111, + -274689.984093333, + -268367.561013333, + -275819.480155555, + -238911.276706667, + -175197.32408, + -146700.847662222, + -115408.472844444, + -98972.16572, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12229.681624, + -93426.0880133333, + -161080.967871111, + -147655.966413333, + -165578.144071111, + -170719.490573333, + -165997.23576, + -186593.687306667, + -185167.017137778, + -191464.822244445, + -192319.710675556, + -151381.486377778, + -118399.556604444, + -102389.374875556, + -85364.8740311111, + -65412.8858577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2961.42496355556, + -46790.8543866667, + -137251.941968889, + -146216.694186667, + -173996.611737778, + -193783.893946667, + -188822.786177778, + -219235.36152, + -214067.638617778, + -225600.866053333, + -229586.926235556, + -185999.046022222, + -145741.918986667, + -125124.073248889, + -98905.0524355556, + -74518.0191377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7852.10774444445, + -96263.6025111111, + -172367.13636, + -179963.832631111, + -219189.349355555, + -212144.212915555, + -228122.156822222, + -258314.928831111, + -256203.937617778, + -272174.261675556, + -287328.089617778, + -224315.45616, + -145956.740111111, + -118539.644595556, + -88291.4821466667, + -70944.3100088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3393.55831688889, + -39974.6064844444, + -56461.9079822222, + -66099.2584, + -99121.0458444445, + -114528.087226667, + -110893.712377778, + -130610.364448889, + -140048.426511111, + -141954.854088889, + -149048.054191111, + -1330.57508226667, + -6452.98626, + -6494.30928666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7737.253176, + -7992.72326355556, + -7911.63048711111, + -21227.1405777778, + -32437.1105777778, + -39789.6786133333, + -41694.3477644444, + -20401.2368795556, + -15637.8641893333, + -2962.09902711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10709.2580066667, + -20742.3716528889, + -42454.2811555556, + -70872.8006577778, + -79020.7636888889, + -86133.3064844444, + -90472.2242844444, + -90873.1455644445, + -82898.38756, + -71755.5308444445, + -24585.8234324445, + -10957.4892377778, + -3185.09683555556, + 0, + 0, + 0, + 0, + 0, + 0, + -55874.5934755556, + -121073.830493333, + -204618.146782222, + -261937.873906667, + -285111.299733333, + -299105.445288889, + -307173.692977778, + -312182.278266667, + -313014.600222222, + -325833.530622222, + -328673.389688889, + -337116.7684, + -293938.6016, + -247294.57584, + -208965.856715556, + -183938.756111111, + -155901.522124445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -53954.3915555556, + -141148.908533333, + -214246.118924444, + -243077.868693333, + -262044.844862222, + -281833.299355556, + -286945.631817778, + -312220.377511111, + -307279.198577778, + -310643.654933333, + -310713.992, + -223851.23152, + -189652.470493333, + -161340.921946667, + -136074.968386667, + -123530.059475556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -20765.7587275556, + -130227.320506667, + -211759.117475556, + -224340.660275556, + -243245.212297778, + -241047.765106667, + -263797.703177778, + -280823.669377778, + -278813.494626667, + -277665.828155556, + -297862.823777778, + -266828.351537778, + -207161.417884444, + -185758.141568889, + -140982.737213333, + -121263.447502222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7136.10571288889, + -91931.4253466667, + -175095.335333333, + -183993.85348, + -213918.465422222, + -229115.667888889, + -214348.986884444, + -234930.491804444, + -249464.181275556, + -253519.40624, + -256416.121102222, + -230285.314693333, + -176199.62728, + -157180.777524444, + -114208.932786667, + -86786.5619911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6196.78349466667, + -73401.1251333333, + -111573.344284445, + -132513.568244444, + -154678.536377778, + -168016.495715556, + -158071.420631111, + -172820.224297778, + -174890.478626667, + -177576.182288889, + -174241.912257778, + -11450.4934608889, + -11417.8746462222, + -9890.03632977778, + -3858.72078444445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8556.12316755556, + -17445.1458102222, + -21819.2907577778, + -23007.2838137778, + -37653.4832844445, + -51998.43496, + -77853.1683822222, + -84632.7823955556, + -90923.8468666667, + -89027.0906355556, + -85402.3871333333, + -70395.3878177778, + -28393.4326151111, + -15004.4202897778, + -5963.41096888889, + 0, + 0, + 0, + 0, + 0, + 0, + -57765.1952133333, + -115417.264977778, + -192839.325755556, + -255885.955462222, + -278057.664231111, + -294161.335644444, + -295855.286666667, + -290749.987911111, + -308093.936266667, + -308480.790133333, + -311537.521822222, + -320068.821866667, + -290922.899866667, + -244745.736386667, + -214773.646924444, + -180590.125595556, + -147908.593711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -32363.2566577778, + -127580.595302222, + -225289.038391111, + -251652.250191111, + -287605.62796, + -307554.685422222, + -316411.2944, + -324757.959644445, + -329218.501955556, + -335288.004666667, + -340680.513111111, + -306748.739866667, + -252753.025284444, + -187831.912751111, + -146841.228724445, + -122395.874275556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2519.05756702222, + -57405.59696, + -120116.660244444, + -146824.2306, + -159806.401608889, + -177012.606542222, + -178769.567853333, + -200967.946093333, + -202484.002951111, + -209508.917484444, + -217852.065875556, + -177261.716986667, + -138986.043733333, + -118197.92368, + -90180.3254577778, + -67002.5035644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -30403.1970666667, + -78124.5522311111, + -111555.173875556, + -137239.926053333, + -160418.041017778, + -162158.883417778, + -175691.148902222, + -185599.003955556, + -205090.284342222, + -206268.430208889, + -184382.465773333, + -151559.673613333, + -133041.682386667, + -96032.6624755556, + -72157.3313377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -781.679267555556, + -36018.7326266667, + -111462.563404444, + -138599.482937778, + -176331.50928, + -208223.21452, + -228545.058435555, + -252072.807235555, + -266184.181235556, + -270351.945506667, + -283706.609897778, + -251608.289524444, + -192464.780875556, + -162727.148302222, + -131718.46632, + -83687.9211333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -69.9420068088889, + -16719.9413457778, + -27823.7609893333, + -53325.16788, + -67386.7197911111, + -102112.129604444, + -104921.509275556, + -113623.376706667, + -128466.842342222, + -134664.124057778, + -141364.608871111, + -4849.44767555556, + -11354.7178217778, + -10494.4661893333, + -6017.07228933333, + -2342.84563075556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4870.57810266667, + -12056.124912, + -15750.4621102222, + -17343.010528, + -16901.8212773333, + -33241.0046355556, + -44639.7124311111, + -90096.50712, + -94506.3481288889, + -90807.7907066667, + -89252.1692488889, + -77356.9989911111, + -30183.6868044444, + -21992.7595484444, + -6865.65969155556, + -3377.90831955555, + 0, + 0, + 0, + 0, + 0, + -89424.2019911111, + -147146.315751111, + -209565.480208889, + -284446.028311111, + -300207.392666667, + -315095.405111111, + -332046.638177778, + -335795.017688889, + -325950.759066667, + -332832.068755555, + -350093.9572, + -337275.0268, + -310435.574444444, + -260079.21692, + -242089.046764444, + -214802.074822222, + -180389.078813333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -71305.3736177778, + -178432.243004444, + -260747.419053333, + -281384.900555555, + -299462.992044444, + -321091.640044444, + -326621.891911111, + -325804.223511111, + -331138.117733333, + -325900.936977778, + -341946.580311111, + -310001.8292, + -253352.355706667, + -238926.809475556, + -211559.82912, + -182462.263853333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -86373.3317244444, + -175708.733168889, + -234612.80272, + -253517.061671111, + -259827.761906667, + -290313.311955556, + -299518.675555556, + -313887.952133333, + -324294.907288889, + -312472.418666667, + -314318.766666667, + -264638.231124445, + -213429.036666667, + -188188.580293333, + -169893.323111111, + -165353.358528889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -70905.6246222222, + -163678.7502, + -230251.025373333, + -236964.698386667, + -241497.04312, + -261263.51728, + -269418.807088889, + -270002.604742222, + -271628.856337778, + -281773.219777778, + -282014.124231111, + -244867.653968889, + -191395.364391111, + -167710.529475556, + -140614.932968889, + -124879.945013333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -47233.3917644444, + -152361.809244444, + -230525.046862222, + -248322.962368889, + -271469.718724444, + -281171.251715556, + -282502.673773333, + -315259.524933333, + -304717.757066667, + -274303.423297778, + -316229.590311111, + -274801.058044444, + -212859.306426667, + -200282.452764444, + -164939.835191111, + -145650.773871111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -33408.6413111111, + -120100.541333333, + -149807.987582222, + -166302.322786667, + -193727.038151111, + -207721.476777778, + -202151.074168889, + -198159.738706667, + -212416.182906667, + -179236.723204445, + -194928.043564444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -21198.4782231111, + -41722.18952, + -51852.4855466667, + -81828.6780044445, + -87720.5796222222, + -88304.6703466667, + -42803.3288488889, + -31809.6453288889, + -21090.4522115556, + -3457.53574044444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -67370.0147377778, + -125698.492626667, + -198727.417448889, + -281874.622382222, + -280161.035595556, + -307751.043066667, + -307030.088133333, + -293745.174666667, + -341123.050488889, + -348042.459422222, + -345354.997333333, + -351166.597466667, + -307135.593733333, + -253510.907177778, + -234738.823297778, + -200358.358182222, + -177293.954808889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -60213.8043466667, + -149139.492377778, + -232865.805826667, + -265865.612937778, + -292907.28436, + -321592.791644444, + -305828.496577778, + -329397.275333333, + -314655.798444444, + -334203.641555556, + -331844.419111111, + -304767.579155556, + -257790.038471111, + -222408.44244, + -164560.015031111, + -135754.05552, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -35735.3328622222, + -143179.598262222, + -233774.326271111, + -259757.717911111, + -281698.486644445, + -295090.371066667, + -305620.416088889, + -316059.609066667, + -328834.5788, + -335009.587111111, + -330288.211511111, + -303375.491377778, + -246199.369097778, + -224449.9758, + -191158.269862222, + -169716.015088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -56043.1093644444, + -168393.092093333, + -252340.967302222, + -262408.25304, + -286180.423146667, + -306848.384044444, + -323204.682755556, + -330214.943733333, + -317302.230577778, + -299231.465866667, + -326070.918222222, + -318070.076888889, + -247564.201262222, + -227908.214911111, + -201494.59488, + -132949.951128889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -57995.5491066667, + -158197.73428, + -235519.564737778, + -267548.720328889, + -288732.779453333, + -314227.914622222, + -328981.114355556, + -331724.259955555, + -342222.067155556, + -325317.725466667, + -349836.054622222, + -322715.254, + -241955.406337778, + -207237.909444444, + -190539.596746667, + -157364.826182222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -48460.7735777778, + -142082.633093333, + -163812.097555555, + -186292.996346667, + -204016.471791111, + -226436.997933333, + -228490.84028, + -223418.65856, + -215263.368751111, + -223122.363666667, + -227551.254297778, + -25584.1701724444, + -24185.0779951111, + -32139.3503288889, + -8668.51593866667, + -4793.09010088889, + -3493.52487288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1468.93688453333, + -12591.0089968889, + -29632.1269733333, + -58937.4796577778, + -86917.5647777778, + -93834.6291422222, + -102822.533977778, + -106731.809528889, + -112301.039853333, + -108354.2512, + -102364.756902222, + -87838.1011377778, + -42999.3934222222, + -24860.3431422222, + -16043.0350004444, + -3797.52753644444, + 0, + 0, + 0, + 0, + 0, + -122297.988524444, + -178637.685853333, + -243375.335871111, + -303870.781555556, + -307088.702355555, + -293997.215822222, + -317398.944044444, + -322858.858844444, + -346254.725644444, + -347048.948355555, + -354501.746711111, + -351550.520622222, + -271038.318048889, + -229865.343791111, + -203595.328604445, + -178744.94988, + -160303.450213333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -69427.0808666667, + -178879.762591111, + -263887.96908, + -285404.663915556, + -304418.824533333, + -325789.569955555, + -334590.495422222, + -345331.551644445, + -341293.031733333, + -348868.919955556, + -357063.188222222, + -327196.311288889, + -261247.984511111, + -241428.757551111, + -199012.57564, + -179123.304684444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -86421.6884577778, + -166713.501555556, + -268414.15932, + -277933.109008889, + -315757.745822222, + -326255.553022222, + -337313.126044444, + -346266.448488889, + -336738.706666667, + -330346.825733333, + -306593.412177778, + -294518.8824, + -257163.745506667, + -236766.875386667, + -201920.427204444, + -166477.579311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -84406.8245688889, + -185678.426226667, + -262307.729648889, + -277690.153057778, + -309225.190755556, + -320065.891155556, + -331340.3368, + -303240.678666667, + -311179.975066667, + -327609.541555555, + -346055.437288889, + -326706.882533333, + -253614.36128, + -232063.670195555, + -185213.322373333, + -173864.143595556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -68420.0885288889, + -169367.260466667, + -248502.028817778, + -268039.321368889, + -301948.235066667, + -323793.755688889, + -331498.5952, + -330628.174, + -338634.876755556, + -336700.607422222, + -275012.362315556, + -270089.939933333, + -211712.81224, + -194657.832, + -160589.194546667, + -136022.508657778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -47999.77272, + -146973.989937778, + -185451.882257778, + -209497.487711111, + -223396.092084444, + -240056.89168, + -221208.31624, + -236379.435377778, + -209223.759293333, + -212237.116457778, + -202823.379297778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6003.67893955556, + -15985.5344484444, + -18904.493408, + -33816.0101555556, + -53159.2896311111, + -77814.4829955556, + -91857.8644977778, + -99146.5430311111, + -94559.394, + -94704.4642, + -74931.8355466667, + -27895.3289546667, + -13270.758132, + -5574.76936844444, + 0, + 0, + 0, + 0, + 0, + 0, + -26330.8567493333, + -100679.011871111, + -187748.094413333, + -276938.132586667, + -281579.499773333, + -293830.165288889, + -300491.671644445, + -314526.847155556, + -332752.939555556, + -332550.720488889, + -335724.680622222, + -331785.804888889, + -293402.281466667, + -252236.927057778, + -216573.103546667, + -184701.034071111, + -164288.338111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16240.9459217778, + -21624.427776, + -23746.1160848889, + -54473.4204933333, + -58602.4993777778, + -96110.32632, + -100804.153235556, + -120063.028231111, + -102751.610768889, + -96753.91048, + -87214.4458133333, + -44905.2348577778, + -29026.1438368889, + -8172.78615422222, + -7279.73986444445, + 0, + 0, + 0, + 0, + 0, + -126383.399813333, + -164170.816595555, + -255451.624075556, + -321449.1868, + -330540.252666667, + -347333.227333333, + -353604.949111111, + -340366.927022222, + -350337.206222222, + -363765.724533333, + -364703.552088889, + -359146.923822222, + -342227.928577778, + -278720.884155556, + -256441.325217778, + -230753.642328889, + -198576.192755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -124013.91988, + -214423.133875556, + -295529.977733333, + -318796.893244444, + -317527.895333333, + -350586.316666667, + -357605.369777778, + -362452.765955555, + -363918.121511111, + -350984.893377778, + -372182.726844444, + -346814.491466667, + -292231.462377778, + -268606.413968889, + -237328.399635556, + -205988.547297778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -123184.821706667, + -231865.554124444, + -303141.034488889, + -317908.887777778, + -337512.4144, + -337374.670977778, + -370773.0548, + -359102.963155555, + -352459.041066667, + -362613.955066667, + -371579.000355556, + -338585.054666667, + -289180.592111111, + -265464.398586667, + -238945.859097778, + -209142.578595556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -110961.118733333, + -181360.316475556, + -215061.442755556, + -236706.209666667, + -253805.150573333, + -266925.065004444, + -250332.257906667, + -264052.381973333, + -264002.852955555, + -258391.420391111, + -264955.334066667, + -43229.4542444445, + -37520.1359288889, + -30371.5453866667, + -22709.9338644444, + -3878.79615555556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3987.81860888889, + -19383.6060604444, + -34159.4894977778, + -60264.5056488889, + -90603.5201422222, + -104457.870777778, + -117913.05856, + -120604.037502222, + -133146.894915556, + -130485.809226667, + -113042.216693333, + -108062.645444444, + -84887.4611911111, + -39952.9192222222, + -25004.7978928889, + -6550.81339688889, + -3447.83508666667, + 0, + 0, + 0, + 0, + -121755.806968889, + -146912.445004445, + -221777.167266667, + -288334.202742222, + -296755.014977778, + -295682.374711111, + -325109.644977778, + -328315.842933333, + -337491.899422222, + -347019.641244444, + -349759.856133333, + -353997.6644, + -314459.4408, + -261570.362733333, + -243873.55676, + -207587.836351111, + -179350.727866667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -78162.9445466667, + -185295.968426667, + -268563.625586667, + -273702.041377778, + -296250.932666667, + -308855.921155556, + -307569.338977778, + -322422.182888889, + -335923.968977778, + -330132.883822222, + -339563.912177778, + -304204.882622222, + -234325.886102222, + -207827.56852, + -182821.275964444, + -161362.609208889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -66331.0776488889, + -168130.500377778, + -244095.997733333, + -265277.712288889, + -295691.166844445, + -307853.617955556, + -315971.687733333, + -324664.176888889, + -322199.448844444, + -341208.041111111, + -347966.260933333, + -311437.877644444, + -261325.355284444, + -250926.313048889, + -222338.398444444, + -196963.422431111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -100108.695488889, + -185480.310155555, + -275173.551426667, + -283452.224173333, + -306455.668755556, + -321302.651244444, + -334329.662133333, + -353358.769377778, + -345826.841822222, + -354970.660488889, + -361775.771688889, + -315959.964888889, + -278677.802702222, + -230874.387626667, + -178669.630604445, + -163587.312013333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -92329.1228444444, + -183302.498728889, + -270403.526022222, + -286391.141275555, + -308867.644, + -331659.784311111, + -354457.786044444, + -359073.656044444, + -353637.186933333, + -362042.4664, + -357174.555244445, + -342157.591511111, + -270042.755484444, + -216463.494951111, + -199254.652377778, + -174029.435702222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -99660.8828311111, + -168359.975057778, + -195402.818764444, + -206943.95912, + -220071.786471111, + -247060.412022222, + -240883.645284444, + -253169.186262222, + -243572.279657778, + -246735.103088889, + -239954.02372, + -34308.0765511111, + -18444.6062204445, + -34816.5549288889, + -26634.2732706667, + -4862.07904044444, + -4277.37286666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10832.4944088889, + -52230.54728, + -63113.1568488889, + -97764.1266, + -115067.338071111, + -118536.420813333, + -116851.554995556, + -124831.881351111, + -130776.82884, + -116125.324782222, + -93163.2032266667, + -76051.6602622222, + -37243.4768, + -23436.75022, + -7093.55178755556, + -9131.27522311111, + 0, + 0, + 0, + 0, + -123352.458382222, + -156938.700786667, + -222136.76552, + -296728.638577778, + -308568.711466667, + -312276.061022222, + -330285.2808, + -331123.464177778, + -335074.062755556, + -324672.969022222, + -339467.198711111, + -338432.657688889, + -325042.238622222, + -266949.096835556, + -249056.51936, + -214312.352995556, + -176965.715164444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -95283.8657866667, + -178065.904115556, + -251218.211875556, + -267306.35052, + -279352.745471111, + -302466.970933333, + -310590.902133333, + -321938.615555556, + -323852.369911111, + -338927.947866667, + -343203.855377778, + -313357.493422222, + -259234.292906667, + -217287.903986667, + -184661.762542222, + -154916.803191111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -67402.25256, + -167568.389986667, + -237306.712373333, + -243389.989426667, + -255018.758044444, + -273974.890582222, + -291963.888453333, + -307765.696622222, + -316598.859911111, + -336545.279733333, + -338453.172666667, + -316935.891688889, + -260723.973364444, + -240730.369093333, + -203765.309848889, + -179051.795333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -70289.5891466667, + -171559.432377778, + -253527.905302222, + -262625.125662222, + -278173.42732, + -302616.4372, + -319869.533511111, + -324256.808044444, + -329587.771555556, + -346395.399777778, + -353909.743066667, + -326235.038044445, + -268041.959008889, + -248628.928608889, + -214222.673235556, + -191838.780982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -90844.4245955556, + -186157.890564444, + -271297.685982222, + -296661.232222222, + -306569.966488889, + -329576.048711111, + -330792.293822222, + -350870.595644445, + -342945.9528, + -349161.991066667, + -355542.149155556, + -332538.997644445, + -281974.26656, + -251517.144408889, + -215949.448222222, + -188008.634631111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -77191.9999555556, + -161481.303008889, + -193421.364982222, + -215149.364088889, + -238832.147506667, + -249671.968693333, + -242474.728346667, + -245037.928284444, + -230561.38768, + -224066.052644444, + -231966.077515555, + -4882.94570355556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4738.31511022222, + -17821.4198097778, + -22128.9203866667, + -37890.8708844444, + -41438.7897555555, + -57504.6549955556, + -79769.5603777778, + -90657.4452266667, + -96382.8824533333, + -101437.186835556, + -91478.63048, + -74694.1548755556, + -36989.3841466667, + -18854.4368622222, + -7195.51122711111, + -3240.31143288889, + 0, + 0, + 0, + 0, + 0, + -75832.7361422222, + -140157.448964445, + -208972.30428, + -280390.217204445, + -297077.3932, + -279210.605982222, + -302918.300444445, + -306783.9084, + -315863.251422222, + -317715.460844445, + -322310.815866667, + -336920.410755556, + -306669.610666667, + -249541.84512, + -231425.068244444, + -199262.565297778, + -175734.816497778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -78599.6205022222, + -164015.488906667, + -235085.233351111, + -253124.053311111, + -286758.066306667, + -324376.9672, + -317073.635111111, + -334933.388622222, + -334106.928088889, + -341378.022355556, + -338130.794444444, + -247943.728351111, + -201716.15664, + -178977.648342222, + -164871.549622222, + -147451.98892, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -86700.6921555556, + -176772.288231111, + -253849.404311111, + -266805.785062222, + -285305.898951111, + -313275.433511111, + -336902.826488889, + -337896.337555556, + -336181.871555556, + -353669.424755556, + -344938.836355556, + -319309.767688889, + -264538.293875556, + -235230.596622222, + -198950.737635556, + -177658.828342222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -85315.9311555556, + -172573.751493333, + -228052.698968889, + -220526.046693333, + -230612.968195556, + -249651.453715556, + -241197.231373333, + -262873.649964445, + -267855.858853333, + -279316.111582222, + -266173.337604444, + -220802.412751111, + -175832.116106667, + -153973.700355556, + -134088.239324444, + -110439.159084444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23090.164324, + -119372.259622222, + -192193.397026667, + -192013.744435556, + -196516.195915556, + -203927.671244444, + -193487.599053333, + -213194.286706667, + -219622.508457778, + -219376.621795555, + -218981.268866667, + -166353.024088889, + -132380.807031111, + -113280.483506667, + -86975.8859288889, + -72000.2452222222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5539.835292, + -52022.7598622222, + -57776.9180577778, + -58433.9834888889, + -66182.7836666667, + -113613.412288889, + -106482.406013333, + -104828.898804444, + -124988.088253333, + -150814.686848889, + -148963.35664, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7525.714448, + -24296.5915528889, + -40084.5081511111, + -55500.9278088889, + -63569.1754977778, + -87065.5656888889, + -91209.8842711111, + -69503.2793555556, + -28943.8201617778, + -12799.0601786667, + -3966.80541022222, + 0, + 0, + 0, + 0, + 0, + 0, + -60376.1657422222, + -123257.796413333, + -210793.155093333, + -297475.969911111, + -302880.2012, + -329142.303466667, + -336061.7124, + -337318.987466667, + -357441.249955555, + -369849.8808, + -358226.680533333, + -343672.769155556, + -330475.777022222, + -269133.941968889, + -244307.595075556, + -216666.886302222, + -185574.972124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -111190.007271111, + -196688.8148, + -281806.043742222, + -288327.462106667, + -320807.361066667, + -333796.272711111, + -335490.223733333, + -346099.397955556, + -353704.593288889, + -370043.307733333, + -364246.361155556, + -342383.256266667, + -287558.443511111, + -239057.812262222, + -205974.479884444, + -195091.284173333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -113458.377671111, + -196900.412142222, + -271198.041804444, + -296080.951422222, + -318389.5244, + -331850.280533333, + -354097.308577778, + -351588.619866667, + -347327.365911111, + -357007.504711111, + -365184.188711111, + -340006.449555555, + -277725.614662222, + -270250.249831111, + -230034.445822222, + -176784.304146667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -112215.170017778, + -203783.187186667, + -268007.083546667, + -277453.058528889, + -300582.523688889, + -324807.781733333, + -334836.675155555, + -362578.786533333, + -353156.550311111, + -358771.7928, + -367783.729466667, + -342096.046577778, + -267369.360808889, + -244544.689604444, + -213040.131302222, + -185223.579862222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -114703.929893333, + -193755.75912, + -270975.30776, + -285605.124555556, + -306792.700533333, + -318081.799733333, + -340657.067422222, + -336829.558711111, + -344472.853288889, + -318530.198533333, + -334974.418577778, + -336703.538133333, + -268332.39248, + -235011.379431111, + -202019.192168889, + -182228.686177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -100496.135497778, + -170495.584244444, + -189204.364764444, + -174478.713715556, + -204237.74048, + -224755.062826667, + -215672.496022222, + -223655.166946667, + -222577.544471111, + -219638.334297778, + -214212.415746667, + 0, + -4244.226524, + -8572.066236, + -4010.56092711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2620.31949733333, + -17762.659052, + -22344.9137955556, + -47292.8852, + -64604.0095911111, + -97797.5367066667, + -120155.345631111, + -121829.074746667, + -123623.842231111, + -120295.726693333, + -101416.378786667, + -95493.11856, + -54917.1301555556, + -34027.9005688889, + -23963.0473213333, + -7639.77772444444, + -4002.67731422222, + 0, + 0, + -19290.7904395556, + 0, + -122227.944528889, + -173705.885195555, + -258998.370662222, + -323987.182622222, + -333019.634266667, + -331911.825466667, + -346547.796755556, + -363079.938133333, + -366004.787822222, + -374788.129022222, + -372590.095688889, + -379231.087066667, + -329672.762177778, + -206535.417991111, + -230758.331466667, + -168310.152968889, + -161362.90228, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -77484.1918533333, + -168434.41512, + -254466.612071111, + -265955.292697778, + -303267.055066667, + -324409.205022222, + -346826.214311111, + -353865.7824, + -348086.420088889, + -364551.155111111, + -364510.125155556, + -271437.187831111, + -244666.607186667, + -235678.40928, + -209684.760151111, + -175734.523426667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -115490.825826667, + -199593.735653333, + -291757.566391111, + -294556.981644445, + -310116.126933333, + -318509.683555556, + -351559.312755556, + -347239.444577778, + -352494.2096, + -350093.9572, + -355627.139777778, + -346008.545911111, + -270678.133653333, + -231782.321928889, + -209130.855751111, + -182848.531577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -113887.726848889, + -210440.004404444, + -284569.70432, + -301414.845644445, + -322946.780177778, + -337178.313333333, + -347051.879066667, + -344367.347688889, + -349205.951733333, + -355252.008755556, + -364325.490355556, + -331841.4884, + -268021.737102222, + -248827.04468, + -223148.446995556, + -202850.34184, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -100601.934168889, + -188427.140177778, + -260682.650337778, + -270714.474471111, + -287684.464088889, + -298539.818044444, + -310787.259777778, + -323304.326933333, + -332234.203688889, + -342567.891066667, + -352250.960577778, + -292545.92768, + -233983.285973333, + -216843.901253333, + -189725.152128889, + -170202.806204444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -85960.3945288889, + -162440.231684444, + -176564.500813333, + -182577.733871111, + -195436.521942222, + -211794.872151111, + -204441.717973333, + -207877.097537778, + -214100.462582222, + -236985.213364444, + -229666.641577778, + -24677.0564693333, + -20906.5207822222, + -24716.8262191111, + -10472.2513991111, + -5053.77685422222, + -3915.63519422222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6409.14282177778, + -18757.9578524444, + -29705.6878222222, + -45869.7318844445, + -56495.0250177778, + -96723.7241555556, + -105257.66184, + -111248.914564445, + -113846.989964445, + -120285.176133333, + -93930.1703244445, + -87088.1321644444, + -50666.1336888889, + -29443.6822488889, + -7298.43780133333, + -7563.98953511111, + -3505.01326044444, + 0, + 0, + 0, + 0, + -134422.04732, + -169150.387844445, + -243996.353555556, + -293812.581022222, + -310221.632533333, + -316546.107111111, + -336073.435244444, + -328667.528266667, + -346497.974666667, + -345264.145288889, + -348048.320844444, + -370720.302, + -330868.492311111, + -279322.266075556, + -246268.826951111, + -226656.801266667, + -192843.428751111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -121138.013066667, + -200987.581857778, + -273425.089177778, + -287176.278782222, + -308217.026133333, + -322041.190444444, + -331401.881733333, + -350894.041333333, + -344264.7728, + -364035.349955556, + -368390.386666667, + -327146.4892, + -281413.035382222, + -246904.791262222, + -211012.079213333, + -192943.659071111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -110066.372631111, + -197034.931782222, + -274620.233168889, + -285231.458888889, + -309591.529644445, + -325742.678577778, + -336296.169288889, + -353297.224444445, + -366614.375733333, + -368548.645066667, + -372294.093866667, + -323993.044044444, + -276435.808702222, + -244941.507888889, + -228350.752288889, + -212317.124871111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -112219.273013333, + -197323.313755556, + -280219.063675556, + -297168.245244445, + -309670.658844444, + -326434.3264, + -352283.1984, + -358806.961333333, + -355961.240844444, + -364070.518488889, + -371142.3244, + -342670.465955556, + -285210.65084, + -254832.95096, + -228287.742, + -206701.29624, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -104689.690026667, + -201550.571462222, + -277750.818777778, + -304128.684133333, + -315807.567911111, + -331952.855422222, + -348540.680311111, + -339707.517022222, + -356986.989733333, + -352110.286444444, + -370283.626044444, + -322715.254, + -291270.775275556, + -261099.9836, + -217680.326204444, + -207707.116293333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -123890.830013333, + -197092.37372, + -212676.723124444, + -230995.132924444, + -252344.191084444, + -256691.021804444, + -253585.054168889, + -247259.407306667, + -261684.660466667, + -259548.465137778, + -256451.582706667, + -30729.9713555556, + -10074.6418226667, + -11336.3422631111, + -4157.36024666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1804.02560084445, + -33814.5448, + -54723.4101511111, + -79554.1531111111, + -102433.042471111, + -107028.690564444, + -120306.863395556, + -111135.789115556, + -76173.2847733333, + -32786.4513422222, + -20028.3331977778, + -3430.54389111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -123668.095968889, + -174758.010484444, + -242386.513942222, + -294565.773777778, + -298161.756311111, + -294498.367422222, + -311566.828933333, + -323981.3212, + -333649.737155556, + -332823.276622222, + -364346.005333333, + -361259.966533333, + -346093.536533333, + -291442.221875556, + -255189.911573333, + -228652.029391111, + -200261.058573333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -115489.360471111, + -210029.411777778, + -271135.324586667, + -287334.244111111, + -316765.910444444, + -337236.927555555, + -333321.497511111, + -345897.178888889, + -359481.024888889, + -353206.3724, + -357532.102, + -330660.411822222, + -270911.125186667, + -235277.194928889, + -202450.592844444, + -185604.572306667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -88124.7246844444, + -187382.341666667, + -243890.847955556, + -249671.675622222, + -252242.202337778, + -271341.060506667, + -271923.685875556, + -305573.524711111, + -317434.112577778, + -326698.0904, + -334247.602222222, + -302021.502844444, + -250154.070671111, + -219935.215333333, + -185747.297937778, + -168040.234475556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -104347.382968889, + -191717.156471111, + -255406.198053333, + -255294.53796, + -274262.686413333, + -286092.794884444, + -299043.900355556, + -327750.215688889, + -345149.847555556, + -342245.512844444, + -336952.648577778, + -317665.638755556, + -251441.238991111, + -205757.314191111, + -183180.288075556, + -162826.499408889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23009.3646186667, + -114750.235128889, + -196257.121053333, + -204789.593382222, + -240155.363573333, + -245309.605204444, + -261407.415195556, + -283077.093151111, + -288423.003288889, + -302206.137644444, + -307891.7172, + -273251.004937778, + -215153.467084444, + -188469.049346667, + -159617.663813333, + -136766.030066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -37541.2370488889, + -124478.730662222, + -142542.461666667, + -160760.641146667, + -187882.907124444, + -209585.702115556, + -218905.65652, + -213862.195768889, + -206889.154822222, + -220224.47652, + -213899.122728889, + -19952.2812444445, + -17427.151244, + -22142.9291857778, + -9090.65556711111, + -4350.99232977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7772.27517377778, + -17812.1001484445, + -22307.7523786667, + -40931.7767333333, + -61520.6084311111, + -105122.556057778, + -111307.235715556, + -111349.731026667, + -115850.131008889, + -108744.62192, + -93060.6283377778, + -75527.9421866667, + -27677.1375124444, + -14019.2617497778, + -6958.70976933333, + 0, + 0, + 0, + 0, + 0, + 0, + -89744.5287155556, + -155012.930515556, + -217259.76916, + -285346.635835556, + -292606.886471111, + -300327.551822222, + -310236.286088889, + -316431.809377778, + -336858.865822222, + -331527.902311111, + -327269.579066667, + -333866.609777778, + -318263.503822222, + -258257.486893333, + -234713.912253333, + -208582.812773333, + -186181.922395556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -109261.306288889, + -191412.069444444, + -268313.049786667, + -295002.449733333, + -307962.054266667, + -315986.341288889, + -329236.086222222, + -337043.500622222, + -339616.664977778, + -338948.462844444, + -346093.536533333, + -317636.331644444, + -268170.324155556, + -234434.029342222, + -204713.981035556, + -174277.960004444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -61278.8247644444, + -154554.860368889, + -219315.663004444, + -233312.4462, + -261219.849684444, + -281008.89032, + -281864.071822222, + -291111.637662222, + -300263.076177778, + -304014.3864, + -316704.365511111, + -296435.567466667, + -235511.651817778, + -201952.665026667, + -167908.938617778, + -143504.614124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -70999.1143066667, + -157788.90008, + -220898.540075556, + -219222.17332, + -222587.508888889, + -241424.654555555, + -249293.90696, + -263118.071271111, + -256984.385986667, + -258750.139431111, + -253207.871648889, + -211445.824457778, + -167314.004262222, + -146437.376733333, + -128070.903271111, + -112490.949933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -30212.9939155555, + -125641.050688889, + -186602.47944, + -203003.031888889, + -217029.122195556, + -229695.069475556, + -243926.30956, + -253189.70124, + -264778.612186667, + -277032.794555556, + -259817.504417778, + -217762.386115556, + -168613.188497778, + -147062.204342222, + -126973.938102222, + -113723.313955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -22398.3406591111, + -104299.026235556, + -117561.666297778, + -119726.582595556, + -120597.883008889, + -131793.199453333, + -118326.581897778, + -123189.510844444, + -125930.898017778, + -123825.475155556, + -122271.612124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6614.937356, + -13624.465656, + -35288.3994177778, + -46633.4752, + -44799.4361866667, + -36194.2822222222, + -21334.6097542222, + -3191.60301422222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8514.94667644444, + -11919.2020888889, + -25755.9391506667, + -44637.6609333333, + -53084.2634266667, + -70284.6069377778, + -76173.2847733333, + -85885.9544666667, + -98265.8643422222, + -93985.8538355555, + -74944.4376044445, + -34179.7114044445, + -21983.0588946667, + -7380.46840533333, + -3472.01345333333, + 0, + 0, + 0, + 0, + 0, + 0, + -125797.843733333, + -162012.054791111, + -234216.277506667, + -282656.829177778, + -297071.531777778, + -299029.2468, + -300283.591155556, + -322375.291511111, + -329177.472, + -331372.574622222, + -335847.770488889, + -316235.451733333, + -310945.518177778, + -248216.284484444, + -215078.733951111, + -190460.760617778, + -174872.308217778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -95474.9481511111, + -179611.854226667, + -272487.261622222, + -286243.726506667, + -299169.920933333, + -316856.762488889, + -348567.056711111, + -354639.490133333, + -358068.422133333, + -343171.617555555, + -345947.000977778, + -316144.599688889, + -270396.785386667, + -228049.768257778, + -202321.055413333, + -175575.092742222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -90708.4396, + -178193.390048889, + -264411.101013333, + -289749.150066667, + -293076.972533333, + -321768.634311111, + -333787.480577778, + -333790.411288889, + -348487.927511111, + -344270.634222222, + -369814.712266667, + -314858.017511111, + -262319.159422222, + -230816.359546667, + -195714.353355556, + -166809.042737778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -57897.0772133333, + -150819.669057778, + -238830.096008889, + -264536.242377778, + -286276.550471111, + -320775.123244444, + -325927.313377778, + -322762.145377778, + -324769.682488889, + -323937.360533333, + -332876.029422222, + -305060.650266667, + -242678.998911111, + -223975.786742222, + -188883.158826667, + -165867.112186667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -55418.8678977778, + -136430.170573333, + -178298.016435556, + -211233.934044444, + -220284.263026667, + -243224.404248889, + -226032.5598, + -219949.575817778, + -201273.03312, + -191576.189266667, + -176464.563564445, + -1474.64004835556, + -8050.45827244445, + -3631.26829511111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4456.17555155556, + -20460.5544724444, + -26795.6968386667, + -43305.0665911111, + -45983.7365466667, + -53688.8691288889, + -75098.88608, + -59770.0946844445, + -27613.6876168889, + -7244.42479555556, + -3372.63303955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -68657.4761288889, + -115558.232182222, + -191081.19216, + -267440.577088889, + -281334.199253333, + -306168.459066667, + -332656.226088889, + -325678.202933333, + -334625.663955556, + -339308.940311111, + -355858.665955556, + -352271.475555555, + -310831.220444444, + -225711.646933333, + -203365.853924444, + -173042.3722, + -148992.37068, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -65272.7978666667, + -136098.414075556, + -238233.989368889, + -241104.620902222, + -266003.942502222, + -291880.070115555, + -310561.595022222, + -316865.554622222, + -321358.334755556, + -325467.191733333, + -323371.733288889, + -282045.775911111, + -229133.545226667, + -190566.266217778, + -158023.943111111, + -137709.425973333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -18831.8117724444, + -104911.251786667, + -171882.103671111, + -162591.163306667, + -176409.173124444, + -197864.616097778, + -191332.647173333, + -218719.849435555, + -224195.883146667, + -240014.68944, + -236025.405475556, + -188367.939813333, + -139971.348808889, + -110713.473644444, + -78478.5821333333, + -59033.6069822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -168.485409493333, + -31562.00024, + -69478.6613822222, + -109839.535591111, + -142605.471955555, + -169863.722928889, + -177935.1944, + -203154.256582222, + -210366.736626667, + -225169.465377778, + -230225.235115556, + -191383.934617778, + -146808.111688889, + -112933.487311111, + -91882.7755422222, + -66923.3743644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2108.05757151111, + -36401.4834977778, + -113089.694213333, + -137884.389426667, + -178177.85728, + -208984.320195556, + -224341.246417778, + -249745.236471111, + -264762.493275555, + -287607.972528889, + -285241.423306667, + -247078.582431111, + -197942.279942222, + -169194.348511111, + -145229.337613333, + -122453.023142222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -53310.2212533333, + -136413.758591111, + -148898.880995555, + -149168.213346667, + -147009.451542222, + -167675.360942222, + -170744.98776, + -175733.058071111, + -186711.208822222, + -163701.316675556, + -164899.098306667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12625.4741595556, + -25424.0654244444, + -38299.7050844445, + -50727.3855511111, + -52215.6006533333, + -42215.7212711111, + -50527.2179822222, + -13084.1011413333, + -5692.34949822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4239.06847244445, + -43961.54588, + -115937.759271111, + -180460.588164444, + -193632.376182222, + -215197.13468, + -238052.578351111, + -241567.087115556, + -272222.91148, + -272695.04904, + -254250.325591111, + -274458.457915556, + -217121.146524445, + -164393.257568889, + -122731.147626667, + -92330.0020577778, + -72305.3322488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4158.03431022222, + -47813.6725644445, + -108807.632208889, + -135705.112644445, + -160573.075635556, + -197226.89336, + -209160.749004444, + -234969.177191111, + -238328.651337778, + -241137.444866667, + -248910.569946667, + -216783.528604444, + -159587.77056, + -124983.399115556, + -100441.038128889, + -81000.7521155556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4244.13860266667, + -42478.3129866667, + -125077.474942222, + -147276.439324445, + -178693.955506667, + -209508.917484444, + -213098.745524444, + -238680.922813333, + -236663.714355556, + -237617.953893333, + -246138.996448889, + -207704.478653333, + -157566.752177778, + -124068.138035556, + -100750.228151111, + -82122.6283288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9120.78327733333, + -72327.0195111111, + -156840.521964445, + -179678.088297778, + -204257.962386667, + -233897.416137778, + -234591.994671111, + -251987.230471111, + -252535.273448889, + -245891.35136, + -214565.566435555, + -173145.533231111, + -131186.835324444, + -105150.690884444, + -87869.4597466667, + -75486.9122311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3313.90158888889, + -43578.7950088889, + -126544.881995556, + -146824.523671111, + -179410.514373333, + -207266.044271111, + -213252.900928889, + -229727.600368889, + -251219.970302222, + -255941.345902222, + -253345.322, + -213691.335311111, + -157697.461893333, + -121851.641222222, + -99684.9146622222, + -71727.98216, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2786.12447844444, + -36368.9526044444, + -58702.4366266667, + -95848.0276755556, + -135418.489097778, + -158045.337302222, + -158569.055377778, + -171444.255431111, + -183201.389195556, + -185806.791373333, + -181057.867088889, + -17874.2605311111, + -12087.0146071111, + -7678.08211866667, + -2964.61943866667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3475.94060622222, + -9956.91515733333, + -28800.5670026667, + -41984.7812355556, + -46765.9433422222, + -58516.0434, + -68480.1681066667, + -80103.0753022222, + -76978.3511155556, + -41886.6024133333, + -23667.5144128889, + -11596.0032675556, + -3028.97785466667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -31232.5883111111, + -106162.37236, + -165932.760115556, + -243270.709484444, + -257300.023573333, + -271208.885435555, + -287540.273102222, + -294061.691466667, + -290295.727688889, + -304873.084755556, + -302009.78, + -316628.167022222, + -281965.767497778, + -227844.61848, + -188166.893031111, + -163406.194066667, + -145749.538835555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -49249.7210088889, + -139403.963137778, + -208977.872631111, + -219464.8362, + -238080.127035555, + -243792.669133333, + -267214.326191111, + -274930.302404444, + -277685.46392, + -296626.063688889, + -286700.624368889, + -261894.499382222, + -209764.182422222, + -175098.559115556, + -155345.273155556, + -140887.782173333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -85429.9358177778, + -164254.634933333, + -228501.683911111, + -222904.611831111, + -232595.887333333, + -247103.200404444, + -234525.7606, + -256178.440431111, + -256436.929151111, + -259087.757351111, + -274582.133924444, + -232182.657066667, + -181801.681568889, + -146427.119244444, + -133883.382617778, + -128625.979955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -38044.4401466667, + -135699.837364445, + -209576.32384, + -229328.144444444, + -239765.872066667, + -242874.184271111, + -234992.329808889, + -237348.328471111, + -196994.194897778, + -195666.875835556, + -187191.552373333, + -121840.211448889, + -75842.70056, + -51390.8985466667, + -34413.5821511111, + -24753.9290217778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -30702.4226711111, + -54978.0889466667, + -63116.9667733333, + -83408.3312933333, + -129501.969506667, + -133990.646644444, + -160467.863106667, + -175860.250933333, + -194440.373235556, + -193601.017573333, + -147028.794235556, + -109636.730382222, + -90463.7252222222, + -68435.9143688889, + -55155.3969688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2375.83078431111, + -29012.7504871111, + -30577.8674488889, + -31602.4440533333, + -30420.7813333333, + -37759.5750266667, + -28374.2950715556, + -24407.1086688889, + -23467.1416942222, + -21134.9697133333, + -21661.7943426667, + -181.930632857778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -32593.0244088889, + -108561.745546667, + -186219.142426667, + -211707.243888889, + -224505.659311111, + -251772.995488889, + -251440.652848889, + -276373.970697778, + -280582.764924444, + -285847.787435555, + -296995.333288889, + -248085.281697778, + -183935.239257778, + -155345.859297778, + -128603.120408889, + -101920.461097778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -31255.4478577778, + -51000.2347555556, + -77975.9651777778, + -126062.780017778, + -174417.168782222, + -152038.551808889, + -181607.668493333, + -181937.373493333, + -183590.880702222, + -188115.312515556, + -146243.656728889, + -96278.8422088889, + -64449.8541866667, + -28556.2922315556, + -13343.2639248889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -781.679267555556, + -13640.8776382222, + -45825.1850755556, + -39332.7807511111, + -35818.2719866667, + -54326.8849377778, + -71413.8099288889, + -128300.964093333, + -143727.055097778, + -170797.154417778, + -167830.39556, + -120551.870844444, + -80668.9956177778, + -59618.8699911111, + -29498.1934755556, + -24503.411836, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 72.8319810355556, + -32759.4888, + -36817.9375466667, + -30635.3093866667, + -44940.4033911111, + -81404.6041066667, + -119462.818595556, + -157580.52652, + -170987.943711111, + -187592.766724444, + -183252.090497778, + -134066.258991111, + -87216.20424, + -48660.9411466667, + -19896.6563475556, + -7984.400044, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2864.6352984, + -21574.4591515556, + -51948.3198, + -33723.9858266667, + -45348.94452, + -65259.9027377778, + -79076.7402711111, + -125009.775515556, + -141462.787693333, + -165055.305208889, + -165920.451128889, + -127300.126248889, + -82725.7686755556, + -50931.6561155555, + -25141.8379444444, + -9108.76736177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2999.84658622222, + -17525.6817515556, + -19652.3815764444, + -13798.6964315556, + -28776.6524, + -40636.3610533333, + -44393.2396266667, + -50213.0457511111, + -60941.2068444444, + -77590.2835955556, + -92378.06572, + -3919.44511866667, + -5287.47175822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3374.68453733333, + -10327.1225848889, + -18755.5253622222, + -31229.6576, + -36299.7878222222, + -42502.0517466667, + -37973.8100088889, + -23639.2916648889, + -11343.9328048889, + -2482.93362186667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6108.89146844445, + -18822.8437964444, + -29517.82924, + -36640.6295244444, + -43583.7772177778, + -56359.9192355556, + -59068.7755155556, + -56106.1196533333, + -33530.5588933333, + -13631.0011417778, + -3298.48604844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -17009.6714462222, + -52549.1155777778, + -113742.363577778, + -201000.770057778, + -211859.933937778, + -233494.736431111, + -273507.735231111, + -296371.091822222, + -299334.040755556, + -317346.191244444, + -313562.6432, + -319939.870577778, + -274668.882973333, + -221928.39196, + -170914.382862222, + -144918.975306667, + -117111.216, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -19722.2790364444, + -80679.5461777778, + -169052.795164445, + -187906.645884444, + -220408.525177778, + -255611.347831111, + -271866.537008889, + -295401.026444444, + -301350.37, + -291658.801426667, + -262139.506831111, + -186542.106791111, + -135511.685711111, + -93505.2172133333, + -65993.4597288889, + -38543.83332, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -24677.9649897778, + -41936.1314311111, + -40524.4078888889, + -70290.1752888889, + -96098.3104044444, + -116449.461431111, + -149747.321862222, + -161341.80116, + -171501.111226667, + -176386.89972, + -142003.210822222, + -93065.9036177778, + -49457.8014977778, + -23648.7871688889, + -10769.8944195556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5626.99464044444, + -14090.2142657778, + -41678.2288533333, + -45072.2853911111, + -40857.3366711111, + -62537.8582577778, + -75652.2043377778, + -112647.156835556, + -140863.750342222, + -160462.001684444, + -177246.77036, + -135867.180968889, + -87816.7069466667, + -51495.2318622222, + -22560.7020546667, + -10624.677684, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2687.03420506667, + -16208.3857213333, + -5999.60525111111, + -12787.27872, + -32052.3082088889, + -44730.2714044444, + -48020.5807688889, + -52154.9349333333, + -61699.3818088889, + -76085.9495822222, + -86027.5078133333, + -1512.24693333333, + -2534.47310746667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4976.90430177778, + -11600.4286413333, + -17537.4339031111, + -24497.2866497778, + -28636.4764875556, + -21038.9010031111, + -11344.5482542222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1088.90864404445, + -48149.2389866667, + -110713.766715556, + -144337.229151111, + -186959.733124444, + -222816.397426667, + -235746.694848889, + -248504.666457778, + -254856.396648889, + -255827.927382222, + -256534.814902222, + -213225.645315556, + -153947.030884445, + -130347.186591111, + -103809.890551111, + -89334.5222311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3973.60466, + -48118.7595911111, + -134712.18772, + -160792.878968889, + -192193.397026667, + -230675.685413333, + -247764.954973333, + -263910.828626667, + -259263.306946667, + -268471.015115556, + -263784.514977778, + -221440.42856, + -171224.452097778, + -148018.788448889, + -130180.136057778, + -117984.567911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -25741.3149022222, + -111139.012897778, + -194589.546431111, + -204204.330373333, + -214433.684435556, + -234489.712853333, + -243949.755248889, + -258412.22844, + -271792.97616, + -273621.153751111, + -286539.142186667, + -236428.964395556, + -187644.933382222, + -165139.416617778, + -146575.120155556, + -134290.16532, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -33090.9522266667, + -113479.18572, + -193121.846306667, + -197643.933551111, + -200263.989284445, + -212455.747506667, + -207522.481493333, + -223756.27648, + -235741.126497778, + -230133.210786667, + -238356.200022222, + -197321.262257778, + -132410.993355555, + -101502.248622222, + -72394.4258666667, + -48484.5123377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -29313.2656044444, + -37226.4786755555, + -32369.9972933333, + -45037.703, + -81455.0123377778, + -86484.6987466667, + -128269.898555556, + -132026.190986667, + -146515.040577778, + -141832.936506667, + -100174.050346667, + -52159.331, + -24141.6741635556, + -7873.67777822222, + -5063.65335066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5413.72679288889, + -12632.9474728889, + -11696.9955724445, + -11351.7578035556, + -16604.998856, + -34257.3752488889, + -38523.9044844444, + -42931.4009244445, + -49990.3117066667, + -66240.8117466667, + -73333.4257066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4188.89469822222, + -14015.7742035556, + -17399.5439453333, + -23690.7842591111, + -25411.0530671111, + -23485.1948746667, + -14475.5734697778, + -1899.90967626667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1214.17016764445, + -41616.9769911111, + -72215.94556, + -72083.4774177778, + -105559.818155556, + -117731.354471111, + -110763.588804444, + -123192.441555556, + -130695.648142222, + -132194.120733333, + -127112.853808889, + -78398.57372, + -33876.3828044445, + -21000.1570022222, + -12816.820288, + -9659.828972, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -24989.8512662222, + -53197.3888755556, + -27971.7619004444, + -28471.9170586667, + -27672.8293671111, + -29601.3545066667, + -28784.6239342222, + -26464.9953968889, + -27390.7484226667, + -28618.2474644444, + -24108.4692066667, + -31137.9263422222, + -18698.6988737778, + -17147.5027897778, + -6098.42882977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12359.0139053333, + 16607.2848106667, + -26800.6497404444, + -29886.8057688889, + -46424.2224266667, + -41149.5285688889, + -37537.7201955556, + -38708.2462133333, + -44204.20876, + -53035.6136222222, + -59939.1967155555, + -45191.8584044444, + -36552.1220488889, + -14521.1753346667, + -3569.48890488889, + 3624.99657333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2407.40333511111, + 44439.8379333333, + 30160.8272577778, + -4842.38466177778, + -32202.94676, + -46214.9696533333, + -43212.45612, + -55770.5532311111, + -67485.1916844445, + -105042.254573333, + -109381.758515556, + -70802.7566622222, + -24365.5218782222, + -8903.00213466667, + -4112.95997333333, + -6095.17574044444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2661.15602595556, + 7250.22760355556, + -43691.3343155556, + -33557.8145066667, + -19939.767108, + -23022.4648973333, + -42411.7858444444, + -92671.7229733333, + -118804.58088, + -133103.520391111, + -139231.637324445, + -82964.6216311111, + -45261.0231866667, + -26849.1823164444, + -17169.3952017778, + -9341.17275288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -15900.6610546667, + -12487.2618235556, + -8816.10655022222, + -9842.03128177778, + -9988.53753022222, + -16673.9584884444, + -17772.7993124444, + -8624.76042177778, + -7907.08788488889, + -8636.65910888889, + -651.473634311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12188.3879044444, + 21551.1306911111, + -24874.4984768889, + -35069.1822266667, + -32432.7145111111, + -42689.9103288889, + -36594.0312177778, + -50754.6411644445, + -47822.4646977778, + -25986.9084933333, + -26051.178988, + -38567.8651511111, + -10239.4650155556, + -145.443279524444, + 6868.23871733333, + 11501.956748, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6407.882616, + 37713.2697911111, + 12165.4111293333, + -120.776363315556, + -27610.8741342222, + -37044.4815155556, + -34725.7028844444, + -48920.8952222222, + -60039.1339644445, + -94924.2675333333, + -111131.393048889, + -72664.9305022222, + -25736.5378431111, + -11839.1936755556, + -5603.54895155556, + -25773.6699528889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1314.59391457778, + 20242.2751088889, + -26684.3005093333, + -27622.4504431111, + -36425.2222577778, + -23012.2074084444, + -43998.7659111111, + -80688.3383111111, + -120584.694808889, + -142415.268804444, + -162145.695217778, + -113301.584626667, + -68173.6157244445, + -47929.1425822222, + -23815.0757173333, + -14498.7260875555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -23498.9106026667, + -30784.4825822222, + -27171.6777671111, + -75171.2746444445, + -126849.38288, + -136613.046946667, + -179952.695928889, + -183191.717848889, + -187066.70408, + -183715.142853333, + -131066.676168889, + -84490.6429066667, + -58364.5256355555, + -37124.783, + -22241.6062288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -22919.4504017778, + -33279.6900222222, + -45258.6786177778, + -103257.451506667, + -139707.87788, + -149239.136555556, + -164159.093751111, + -174986.019808889, + -177311.832146667, + -173722.004106667, + -133848.507155556, + -87684.5318755556, + -69254.4619822222, + -51042.4369955556, + -36065.6240044444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -15697.0352466667, + -17413.69928, + -18500.4655742222, + -18274.0681408889, + -21118.4405026667, + -16521.7080462222, + -13222.8116982222, + -12846.5083915556, + -14510.9471528889, + -34426.47728, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12091.9382017778, + -14338.5627253333, + -20078.3311293333, + -18449.764272, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -597.566134133333, + -21087.9318, + -47723.4066622222, + -77298.67784, + -115648.498084444, + -139636.954671111, + -140188.221431111, + -158967.045946667, + -163476.824204444, + -166680.38452, + -154744.184306667, + -92452.2127111111, + -44983.7779155556, + -21004.9340613333, + -8477.28703866667, + -3765.87585644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -483.608363288889, + 1088.97018897778, + -31577.82608, + -28504.97548, + -47222.2550622222, + -59938.3175022222, + -76097.9654977778, + -119455.198746667, + -130175.44692, + -135026.946093333, + -126040.213542222, + -60685.6488355556, + -20187.1484328889, + -7747.30551511111, + -9985.81196888889, + -18691.4600173333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5615.41833155556, + 36579.3776622222, + -29886.2196266667, + -19199.2057173333, + -43802.9944088889, + -60027.7041911111, + -76471.9242355556, + -124128.510684445, + -141213.384177778, + -151136.772, + -150049.478177778, + -96115.0154577778, + -45090.1627288889, + -26463.7351911111, + -10776.4885195556, + -4371.39007911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1980.99659128889, + 5340.92792888889, + -25956.2825622222, + -29438.1138977778, + -18932.5403133333, + -35461.6044444444, + -35082.3704266667, + -87115.97392, + -99405.3248222222, + -113063.317813333, + -124865.291457778, + -69019.12588, + -34471.6102311111, + -23259.6473475555, + -8150.51274977778, + -4565.02216222222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4478.74202711111, + 2053.0862232, + -6590.70037511111, + -9891.06207866667, + -27693.8718728889, + -42438.4553155555, + -46675.67744, + -50161.4652355556, + -57320.8994088889, + -65863.6292266667, + -55015.6020488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7456.46174444445, + -12287.5631684445, + -14360.8068226667, + -13025.8092973333, + -8249.83454933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -22148.7026866667, + 20250.1587217778, + -2867.63341586667, + -24594.3518017778, + -11214.6005235556, + -35568.5754, + -21572.202504, + -23631.7597373333, + -26041.8300195555, + -26242.5544235556, + -27500.3570182222, + -20067.1065057778, + -9136.14020355555, + -26814.0430902222, + -9473.55297377778, + 6533.46358711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8863.49614888889, + 41993.2802977778, + 0, + -23922.1052871111, + -37395.8737777778, + -48563.3484666667, + -55495.0663866667, + -73353.0614711111, + -115348.100195556, + -121385.072013333, + -117149.022173333, + -57821.7579377778, + -16802.1184853333, + -6125.86028577778, + -5807.73159466667, + -24731.3332391111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3655.82765422222, + 39571.3406355556, + -21967.0865191111, + -17883.726728, + -44345.7621066667, + -58721.4862488889, + -74157.5416711111, + -119588.546102222, + -135447.796208889, + -141071.53776, + -132060.480306667, + -69048.4329911111, + -24706.1877377778, + -7135.84194888889, + -4217.61566711111, + -1873.73842604444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3568.87345555556, + 768.074906577778, + -33505.3547777778, + -37662.2754177778, + -42206.9291377778, + -25946.4939871111, + -25450.2366746667, + -27776.8403044444, + -31209.1426222222, + -38253.69292, + -62631.0548711111, + -30136.2092844444, + -9994.83855911111, + -5340.10732977778, + -7142.67050577778, + -16037.9355631111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13230.4901613333, + 26480.0006377778, + -43435.4832355556, + -29968.5726088889, + -19585.3269062222, + -20637.8624946667, + -39129.9755422222, + -62032.01752, + -98871.0561866667, + -108096.348622222, + -107629.193271111, + -51347.2309511111, + -15854.7661186667, + -4370.12987333333, + -8652.98316977778, + -32930.9354, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2823.74601697778, + 28674.575732, + 27883.4302675556, + 6589.58670488889, + -5122.50202977778, + -23630.2064604444, + -31655.1968533333, + -38467.6348311111, + -44336.6769022222, + -46787.0444622222, + -40042.5989822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -270.676375226667, + 57.7865894044444, + -14219.4000115556, + -18936.7019231111, + -23641.0793986667, + -26827.6122826667, + -11899.3025604444, + -30381.5098044444, + -30796.4984977778, + -26684.6521946667, + -19816.58932, + 16060.6485742222, + 7518.94450533333, + 20621.2160555556, + 29893.8394755556, + 36279.5659155555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30700.6642444444, + 97398.0807822222, + 30332.5669288889, + 22511.7591791111, + 2594.70215151111, + -2285.53557497778, + -20929.2924075556, + -42813.5863377778, + -45704.4397777778, + -29523.10452, + -39551.9979422222, + 2310.23267751111, + -3378.553076, + 19042.1489088889, + 33206.1291733333, + 44225.30988, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 53672.4571466667, + 111845.314275556, + 35717.7485955556, + 9175.70480355556, + 4947.421348, + -3716.05376755556, + -10449.4211595556, + -39129.3894, + -21167.2661497778, + -26353.5111462222, + -37165.2268133333, + -29127.986048, + 0, + -6475.55273555556, + 15675.3186773333, + 29008.3837275556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29671.6915733333, + 10261.1229706667, + -8959.71139466667, + -13829.8498906667, + -28296.338156, + -26299.2343764444, + -28020.7340831111, + -29577.9088177778, + -38930.1010444444, + -34534.9135911111, + -39692.9651466667, + -8473.00820044445, + -12931.7334706667, + 11100.4786328889, + 25615.177096, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14914.3302302222, + 81785.0104088889, + 51623.89008, + 19461.7974328889, + 6081.43070533333, + 9135.87643955556, + -7438.20341422222, + -22975.426984, + -28827.8812302222, + -26860.1724831111, + -23380.6271022222, + -100.321758186667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -481.937857955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -1076.73447008889, + -27352.5026426667, + -22908.2257782222, + -39291.7507955556, + -95627.0520577778, + -113601.982515556, + -145072.83764, + -152635.537662222, + -160070.165608889, + -161685.573573333, + -113807.425364444, + -72497.2938266667, + -52253.4068266667, + -35533.6999377778, + -19847.0980226667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -18886.8798342222, + -42030.5003288889, + -20401.1782653333, + -15121.2677417778, + -34832.3807688889, + -39502.1758533333, + -83455.5157422222, + -91633.6650977778, + -96569.8618222222, + -89365.0016266667, + -37819.9476755556, + -6842.00885288889, + -3463.07478444445, + -8888.583036, + -25974.8925777778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2905.18168662222, + 38215.0075333333, + 7987.91689733333, + -13397.1597022222, + -27209.8063186667, + -26608.4243986667, + -20778.3607853333, + -19929.0993195556, + -18404.7485493333, + -18620.2437373333, + -21114.5133497778, + -18309.8521235556, + -9693.854528, + -19303.1580404445, + -13415.2714968889, + -2223.73566977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8140.43110355556, + 39755.0962222222, + 17005.7442933333, + 5619.90231955556, + -2260.34611297778, + -10098.7908822222, + -901.554144133333, + -17946.9714737778, + -22709.8459431111, + -22719.839668, + -21045.8467884444, + 14746.8107831111, + 20168.6263386667, + 9234.14318311111, + 21741.7734488889, + 31421.0330355556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 42876.3035555556, + 108029.82148, + 37853.9439244444, + 13984.2983662222, + 9877.9618, + -4001.47572266667, + -14528.12112, + -40716.3694666667, + -44801.7807555556, + -20369.0576715556, + -17720.8964186667, + -12528.3210862222, + -6713.37994222222, + 7250.98958844445, + 25233.3054382222, + 36532.4862844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48481.2885555555, + 109591.597431111, + 83941.7207155556, + 58593.1211022222, + 39927.7151066667, + 23956.3946071111, + 29062.8656471111, + 29697.4818311111, + 12803.1631742222, + 10702.0777644444, + 16986.6360568889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23436.3692275556, + 101629.148413333, + 148742.381022222, + 67144.3499822222, + 31942.1134711111, + 2197.50287462222, + 0, + -15527.0833093333, + -38940.3585333333, + -24047.7155653333, + -31560.2418133333, + -27083.3461342222, + -24681.2473862222, + -6528.83306355556, + 8937.08630488889, + 26813.0173413333, + 37089.3213955555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 38477.0131066667, + 102320.210093333, + 25617.6682004444, + 11518.5445728889, + -320.062960444444, + -25100.1925395556, + -32350.6546, + -39675.6739511111, + -44564.1000844444, + -40762.3816311111, + -36485.5949066667, + -18570.6854124445, + -3054.32850577778, + -19845.3982102222, + -7314.41017688889, + 153.318393351111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2376.08575617778, + 23050.5411097778, + 12945.7129626667, + -7557.65919911111, + -20419.4365955556, + -21591.6038115556, + -38242.2631466667, + -34660.0549555556, + -19026.9971324444, + -18959.8545408889, + -22565.4204995556, + -30673.9947733333, + -24277.3953951111, + -7509.77137955556, + 1839.27619408889, + 6698.52123688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5224.28562666667, + 58564.9862755556, + 35495.8937644444, + -1655.71989577778, + -4975.87855288889, + -30088.4386933333, + -45219.4070888889, + -41187.3347422222, + -42826.1883955556, + -50383.6131377778, + -47863.4946533333, + -27620.9264733333, + -4211.08018133333, + -16034.0377173333, + -14587.1749488889, + 4860.17407822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6317.76324933333, + 51304.4425688889, + 27619.0215111111, + -4403.95027955556, + -6104.96431555556, + -31418.6884666667, + -44785.9549155556, + -39232.8435022222, + -41628.4067644444, + -46920.3918177778, + -40876.0932222222, + -43217.4383288889, + -5062.97928711111, + -11109.8862155556, + 8802.91835022222, + 25675.9893515556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17669.3159031111, + 84128.1139422222, + 59027.1594177778, + 29730.3057955556, + 10059.0504395556, + 4786.43738666667, + -5851.04750488889, + -14845.5171333333, + -24647.2511373333, + -26459.7201168889, + -16966.2676146667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7936.04331066667, + -8369.26102711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13606.9693106667, + 38096.3137333333, + 18734.0432497778, + -18870.4971591111, + -13746.7642306667, + -40696.7337022222, + -49684.6385377778, + -99798.6262533333, + -112439.076346667, + -142072.375604444, + -138252.486742222, + -77831.7741911111, + -28477.4267955556, + -16417.99018, + -2494.91436888889, + -1910.30197786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -11038.1717146667, + -46561.3797066667, + -24760.7868857778, + -28510.8955164444, + -86800.9224755556, + -120247.956102222, + -164354.865253333, + -164341.677053333, + -160511.530702222, + -159084.274391111, + -99789.2479777778, + -61130.5307822222, + -43087.0216844444, + -24543.0350502222, + -17196.9731933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -19905.214024, + -53630.2549066667, + -88953.8228577778, + -133233.643964444, + -141618.701524444, + -142930.780888889, + -150570.265542222, + -148036.958857778, + -144477.903284444, + -141595.841977778, + -82222.8586488889, + -41170.6296888889, + -24629.6082564444, + -7616.53718533333, + -3630.24254622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5148.17505911111, + 11311.9587466667, + -32257.1649155556, + -40792.5679555556, + -31288.2718222222, + -24670.1399911111, + -33017.3913777778, + -32626.1414444444, + -32031.7932311111, + -43884.7612488889, + -40115.5736888889, + -26358.3761266667, + -9408.78425822222, + -18226.7957706667, + -11019.4151635556, + -857.754666577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9354.88848088889, + 39109.1674933333, + 28895.6978853333, + -2744.71353044445, + -8712.94551911111, + -18400.3817897778, + -39187.1244088889, + -43785.1170711111, + -22641.6482955555, + -23809.8297444444, + -23378.194612, + -29349.6064222222, + 0, + 11417.4936537778, + 19459.3063284444, + 16220.8998577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5979.17819466667, + 50191.0654177778, + 44647.33228, + 28346.453316, + 16952.5518866667, + 9022.80960488889, + 11554.7388551111, + 3305.93005466667, + -344.288218488889, + 328.309981511111, + -3054.79741955555, + -217.35736184, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20973.0772315556, + 92140.3850488889, + 149047.468048889, + 67067.8584222222, + 39552.8771555556, + 6897.92682088889, + -2339.17638044444, + 6671.08978088889, + -25310.0607622222, + -33598.25832, + -38766.5673644444, + -36206.88428, + 0, + 1197.61751128889, + 15578.165604, + 33707.8669155555, + 44548.5673155556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 47254.7859555556, + 109941.231266667, + 34553.084, + 8150.835128, + 7671.42940444444, + -13771.7925035556, + -27705.5947173333, + -24327.8329333333, + -30963.25596, + -46981.9367511111, + -44144.1291822222, + -25807.0507524444, + -16401.109284, + -12831.4738435556, + 6574.52284977778, + 23918.7642764444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14380.4425871111, + 74172.4882977778, + 40339.4800177778, + 11365.1804604444, + -6702.30185422222, + -13663.6785706667, + -26282.2069448889, + -24631.1029191111, + -24929.9475311111, + -30465.3281422222, + -29012.2522662222, + -14967.6105582222, + -21474.3753671111, + -7618.85244711111, + -5669.98817244444, + 11288.9233573333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11120.6126182222, + 76817.4550755556, + 50630.6720844444, + 11615.1408111111, + 19441.4876048889, + 8770.09438577778, + 13155.7277208889, + -5481.33829822222, + -11460.8388711111, + -14292.6970964444, + -10607.0641102222, + 20729.1541457778, + 15974.1339822222, + 27234.3949848889, + 34257.0821777778, + 39180.0907022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7254.97535555556, + 66132.9615777778, + 43034.2688844444, + 23440.9118297778, + 10673.0637244444, + -973.157278, + -2146.8807016, + -26067.4737417778, + -30182.51452, + -29877.7205644444, + -37012.5367644444, + 0, + 10681.6214008889, + 5653.69341866667, + 16174.7411577778, + 23593.7484142222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48121.6903022222, + 39818.6926533333, + 27173.4068866667, + 20271.9045982222, + 8953.61551555556, + 11266.1224248889, + 3444.02516222222, + 2798.84376466667, + 6142.21365377778, + 8322.57479911111, + -150.739367573333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11525.1093657778, + 60229.3371155556, + 112483.037013333, + 49611.37076, + 25463.0145751111, + -719.647836177778, + 3686.57081377778, + -8337.93172533333, + -33542.86788, + -30704.76724, + -20687.8897333333, + -31062.3139955556, + -5298.28608222222, + 1531.89442062222, + 16252.4636164444, + 34206.0878044444, + 43642.9775822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 36461.8561466667, + 96058.7458044444, + 29876.8413511111, + 20499.2398591111, + 2563.98243764444, + -21246.981492, + -28307.416244, + -31195.0752088889, + -45564.3517866667, + -42909.7136622222, + -36861.019, + -20486.7843368889, + -5884.13523333333, + -19734.0018808889, + -13262.581448, + 9840.82969022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8322.545492, + 71167.3371244444, + 35873.9554977778, + 14789.6870866667, + -3574.96933466667, + -16252.9325302222, + -12563.07932, + -18959.8545408889, + -2224.51230822222, + -1919.73593693333, + -17072.9454991111, + -30390.88808, + -3970.46879911111, + -3283.598036, + 10150.2834764444, + 20394.4669368889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10593.2604608889, + 52404.63152, + 35691.3721955556, + 14469.3603622222, + 0, + -20827.5381177778, + -23855.9591373333, + -14165.2111631111, + -11747.5503391111, + -12604.0506613333, + -15097.9978955556, + -14427.8321857778, + -5895.94599911111, + -16316.1479688889, + -6108.18809777778, + 5555.133604, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12618.6162955556, + 34125.78632, + 27918.4229582222, + 15448.0127235556, + 8667.78326088889, + -639.012250666667, + 3682.17474711111, + 6657.57920266667, + 10344.7947728889, + 13405.4243075556, + 18355.4246813333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } +} diff --git a/tests/system_parameters/data/system_params_ghe_3.json b/tests/system_parameters/data/system_params_ghe_3.json new file mode 100644 index 000000000..409973936 --- /dev/null +++ b/tests/system_parameters/data/system_params_ghe_3.json @@ -0,0 +1,9019 @@ +{ + "weather": "../../data_shared/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos", + "buildings": [ + { + "geojson_id": "abcd1234", + "ets_model": "None" + }, + { + "geojson_id": "defgh2345", + "load_model": "rc", + "load_model_parameters": { + "rc": { + "order": 2, + "fraction_latent_person": 1.25, + "temp_hw_supply": 40, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24 + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "building_merge_defaults", + "load_model": "rc", + "load_model_parameters": { + "rc": { + "order": 2, + "fraction_latent_person": 1.25, + "temp_hw_supply": 40, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24 + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "ijk678", + "load_model": "spawn", + "load_model_parameters": { + "spawn": { + "idf_filename": "example_model.idf", + "has_liquid_heating": true, + "has_electric_heating": false, + "has_liquid_cooling": true, + "has_electric_cooling": false, + "temp_chw_supply": 7, + "temp_chw_return": 12, + "temp_hw_supply": 40, + "temp_hw_return": 35, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24, + "thermal_zone_names": [ + "Not Real Zones" + ], + "zone_nom_htg_loads": [ + 3000 + ], + "zone_nom_clg_loads": [ + -8750 + ] + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + }, + { + "geojson_id": "lmn000", + "load_model": "spawn", + "load_model_parameters": { + "spawn": { + "idf_filename": "example_model_2.idf", + "has_liquid_heating": true, + "has_electric_heating": false, + "has_liquid_cooling": true, + "has_electric_cooling": false, + "temp_chw_supply": 7, + "temp_chw_return": 12, + "temp_hw_supply": 40, + "temp_hw_return": 35, + "temp_setpoint_cooling": 20, + "temp_setpoint_heating": 24, + "thermal_zone_names": [ + "Not Real Zones" + ], + "zone_nom_htg_loads": [ + 3000 + ], + "zone_nom_clg_loads": [ + -8750 + ] + } + }, + "ets_model": "Indirect Heating and Cooling", + "ets_indirect_parameters": { + "heat_flow_nominal": 8000, + "heat_exchanger_efficiency": 0.8, + "nominal_mass_flow_district": 0.5, + "nominal_mass_flow_building": 0.5, + "valve_pressure_drop": 6000, + "heat_exchanger_secondary_pressure_drop": 500, + "heat_exchanger_primary_pressure_drop": 500, + "cooling_supply_water_temperature_building": 7, + "heating_supply_water_temperature_building": 50, + "delta_temp_chw_building": 5, + "delta_temp_chw_district": 8, + "delta_temp_hw_building": 15, + "delta_temp_hw_district": 20, + "cooling_controller_y_max": 1, + "cooling_controller_y_min": 0, + "heating_controller_y_max": 1, + "heating_controller_y_min": 0 + } + } + ], + "connectors": { + "pipe_diameter": 12, + "pipe_insulation_rvalue": 5, + "pipe_location": "Tunnel" + }, + "district_system": { + "fifth_generation": { + "central_cooling_plant_parameters": { + "heat_flow_nominal": 7999, + "cooling_tower_fan_power_nominal": 4999, + "mass_chw_flow_nominal": 9.9, + "chiller_water_flow_minimum": 9.9, + "mass_cw_flow_nominal": 9.9, + "chw_pump_head": 300000, + "cw_pump_head": 200000, + "pressure_drop_chw_nominal": 5999, + "pressure_drop_cw_nominal": 5999, + "pressure_drop_setpoint": 49999, + "temp_setpoint_chw": 6, + "pressure_drop_chw_valve_nominal": 5999, + "pressure_drop_cw_pum_nominal": 5999, + "temp_air_wb_nominal": 24.9, + "temp_cw_in_nominal": 34.9, + "cooling_tower_water_temperature_difference_nominal": 6.56, + "delta_temp_approach": 3.25, + "ratio_water_air_nominal": 0.6 + }, + "central_heating_plant_parameters": { + "heat_flow_nominal": 8001, + "mass_hhw_flow_nominal": 11, + "boiler_water_flow_minimum": 11, + "pressure_drop_hhw_nominal": 55001, + "pressure_drop_setpoint": 50000, + "temp_setpoint_hhw": 54, + "pressure_drop_hhw_valve_nominal": 6001, + "chp_installed": false + } + } + }, + "ghe_parameters": { + "version": "0.5", + "fluid": { + "fluid_name": "Water", + "concentration_percent": 0.0 + }, + "grout": { + "conductivity": 1.0, + "rho_cp": 3901000 + }, + "soil": { + "conductivity": 2.0, + "rho_cp": 2343493, + "undisturbed_temp": 18.3 + }, + "pipe": { + "inner_diameter": 0.0216, + "outer_diameter": 0.0266, + "shank_spacing": 0.0323, + "roughness": 1e-06, + "conductivity": -1, + "rho_cp": 1542000, + "arrangement": "singleutube" + }, + "borehole": { + "buried_depth": 2.0, + "diameter": 0.15 + }, + "simulation": { + "num_months": 240 + }, + "geometric_constraints": { + "length": 100, + "width": 100, + "b_min": 3.0, + "b_max": 10.0, + "max_height": 135.0, + "min_height": 60.0, + "method": "rectangular" + }, + "design": { + "flow_rate": 0.2, + "flow_type": "borehole", + "max_eft": 35.0, + "min_eft": 5.0 + }, + "ground_loads": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 88964.3734177778, + 122073.202982222, + 63902.6904222222, + 52317.2963288889, + 41514.9882444444, + 29434.3039733333, + 32753.9204488889, + 17284.982448, + 15288.7578817778, + 11017.8325795556, + 8217.36227022222, + 32409.2688222222, + 51278.9453822222, + 55786.086, + 58907.0002622222, + 59597.7688711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 41261.1886622222, + 94426.0466444445, + 39088.0663733333, + 22820.2751377778, + 3928.03210222222, + -3923.54811422222, + 13260.5006431111, + -19509.30426, + -27926.1600355556, + -22575.6779884444, + -14158.1774564444, + 21174.6808488889, + 22526.9402626667, + 39041.1749955556, + 49278.1489066667, + 57193.9996177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 75889.8850088889, + 129885.599591111, + 69544.6023822222, + 50567.6617955556, + 28604.0042084444, + 9723.54263155556, + 14641.9499395556, + -15588.188636, + -24385.9782417778, + -20769.2755808889, + -13236.4395048889, + 23332.5927471111, + 44427.2358755555, + 57191.6550488889, + 69121.7007688889, + 77919.1093822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18264.0158017778, + 86297.7193777778, + 141136.013404444, + 82539.9615911111, + 64681.0872933333, + 51027.4903688889, + 35500.8759733333, + 39895.7703555556, + 23758.6888355556, + 18831.9876151111, + 16533.8411902222, + 14627.9997546667, + 41958.1117644445, + 63313.3244177778, + 69317.4722711111, + 73835.1634488889, + 77274.6460088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 78453.96416, + 133601.74128, + 119131.355168889, + 104141.94012, + 94641.7469822222, + 86884.1546711111, + 86776.0114311111, + 86429.8944488889, + 85929.6220622222, + 87441.5759244445, + 93968.2695688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12990.5821497778, + 14682.5989026667, + 14619.2076213333, + 14677.2357013333, + 14371.18154, + 3897.61132088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8801.13061644444, + 12797.82928, + 13262.9331333333, + 13595.979144, + 68476.9443244444, + 151989.608933333, + 175980.410088889, + 126174.440111111, + 99703.9642844445, + 73253.4172933333, + 55307.2078044444, + 45939.4828088889, + 24878.1032515556, + 11603.1248955556, + 12236.0705742222, + 224.653953293333, + 38597.1722622222, + 57383.6166266667, + 69498.0040755556, + 77745.3182133333, + 84529.3282933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6933.06604711111, + 99460.7152622222, + 153355.320311111, + 97590.04236, + 75572.1959244444, + 58324.3748933333, + 27107.0848942222, + 21543.3056924445, + 0, + -21944.5493506667, + -26846.163684, + -27160.834136, + 12674.2998066667, + 34262.0643866667, + 50241.1805777778, + 65188.1003155556, + 73411.3826222222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 86810.3007511111, + 138299.37812, + 70408.5760177778, + 41696.1061911111, + 8072.58514133333, + -1906.89063013333, + -12989.9080862222, + -23864.2237426667, + -32266.8362622222, + -33333.9081777778, + -28793.4453746667, + 7430.70079377778, + 16430.5922377778, + 29677.2599244444, + 46644.3188311111, + 60608.2780622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 79698.3440977778, + 127704.271311111, + 65651.1526711111, + 39199.4333955556, + 15841.1969262222, + -4769.46856933333, + 13448.0368471111, + -9911.43052088889, + -27850.3425391111, + -30625.3449688889, + -25635.0473173333, + 6017.68773866667, + 8435.67094088889, + 22427.7943057778, + 32530.6002622222, + 37846.9102177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18665.786988, + 75233.1126488889, + 25548.0051973333, + 11640.0811626667, + 1866.1303, + 0, + 5645.54604177778, + -25981.6918275555, + -31033.8860977778, + -28908.3878644444, + -23248.4813382222, + -705.791434044444, + 26969.2242435556, + 39034.7274311111, + 54631.6788933333, + 67639.9332311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20573.2989288889, + 94228.5167155556, + 147449.937422222, + 118903.345844444, + 87726.4410444445, + 70720.40368, + 49318.0065777778, + 41806.594, + 35245.0248933333, + 31750.7380355556, + 29839.3282488889, + 32946.76124, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 63225.1100133333, + 116162.251742222, + 58147.3599422222, + 46259.2233911111, + 34594.9931688889, + 22900.2249368889, + 23444.0476906667, + 8618.43008577778, + 6449.557328, + 3203.32585866667, + 934.395692844444, + 23198.3661782222, + 43016.3915466667, + 46922.7363866667, + 51682.2112311111, + 54425.9429733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 27703.4259911111, + 80129.7447733333, + 24337.2991302222, + 11511.2177951111, + -780.0556536, + 3080.32391333333, + 4063.98779066667, + -17188.708588, + -25987.611864, + -35929.3459377778, + -38302.6357955556, + 0, + 0, + 9146.544228, + 15054.7405995556, + 19760.3196666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13526.3161408889, + 16871.8401026667, + 0, + -27126.5741231111, + -13303.9337817778, + -16353.4852284444, + -20572.1559515556, + -21302.0495537778, + -40322.7749644445, + -75202.3401822222, + -79782.7485777778, + -41123.7383111111, + -6700.16243511111, + -2181.97303644444, + -778.1565528, + -2088.15511235556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -191.082071373333, + -15516.8258204444, + -32980.1713466667, + -32443.5581422222, + -15160.8323417778, + -18214.8384693333, + -27473.130712, + -33280.8623066667, + -70771.9841955556, + -83326.2713822222, + -85492.6530355556, + -43300.3774533333, + -10490.8614146667, + -2572.19135946667, + -2828.13915293333, + -7847.00830711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10136.5091342222, + 29068.8442977778, + 30558.8178266667, + 18813.8758204445, + 12087.1904497778, + 7378.73928577778, + 12094.9275271111, + 7333.10811377778, + -847.365295688889, + 4279.48297866667, + 3748.26228266667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16299.3256871111, + 73783.8760044445, + 130205.633244444, + 53613.8429244445, + 25291.3335182222, + 3083.31323866667, + 6512.62623111111, + -7082.03409288889, + -29622.4556266667, + -38657.8379822222, + -42871.9074888889, + -34973.0549022222, + -13752.5084244444, + 2313.63816382222, + 7828.45690577778, + 26505.5564386667, + 39588.9249022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 41745.0490666667, + 100216.252586667, + 33500.9587111111, + 9357.43819955556, + 4123.83291155556, + -13011.741884, + -16365.8235222222, + -36592.5658622222, + -10110.3964982222, + -7845.51364444444, + -8836.97321333333, + -15038.9440666667, + 0, + -1800.7959572, + 11574.1694697778, + 19879.8047586667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 61513.5747244444, + 40284.9687911111, + 23324.0057635556, + 14658.8601426667, + -3981.13658755556, + 3209.30450933333, + -19331.1170244444, + -32549.0637422222, + -37182.2249377778, + -28859.5329102222, + 7429.93880888889, + 3220.55844, + 23090.1057097778, + 38415.4681733333, + 47490.4151288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 72077.0298533333, + 133462.239431111, + 63956.0293644445, + 43974.73408, + 22637.6918355556, + 6478.835132, + 13707.0530951111, + -2686.62976693333, + -29735.5810755556, + -35753.2102, + -30325.8262933333, + 13258.7129093333, + 36070.3131422222, + 46987.7981733333, + 60952.0504755556, + 71662.9203733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20551.8168164444, + 93398.5393288889, + 148270.829604444, + 77011.4681511111, + 52111.5604088889, + 25851.0993404444, + 9133.41464222222, + 13904.7295595556, + -20776.2799804444, + -34751.7862133333, + -35649.4630266667, + -23262.4315231111, + 340.422610533333, + 27692.5530528889, + 37877.6826844444, + 53375.5761111111, + 64355.1922177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10209.6303764444, + 80581.3673555556, + 134642.729866667, + 100967.686915556, + 67513.03344, + 37703.3053733333, + 23547.3552573333, + 25341.9468991111, + 4929.51470311111, + -6441.11688, + -7250.93097422222, + -6577.39494666667, + -134.72010064, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4708.04086444444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8875.42414311111, + 71883.3098488889, + 16228.0214857778, + 4217.058832, + -13238.3444671111, + -12116.3217182222, + -23985.7017182222, + -25693.0753973333, + -29758.1475511111, + -32481.9504577778, + -48911.5169466667, + -22465.9228573333, + -42.6655854266667, + -1654.4860664, + -1194.72783013333, + -13008.312952, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5630.833872, + 10992.4233142222, + -1683.605612, + -19244.1628257778, + -18341.6503391111, + -26832.6824128889, + -39124.9933333333, + -75759.1752933333, + -87977.8960577778, + -97853.2202177778, + -101654.6456, + -59547.6537111111, + -21993.8439115556, + -12587.3749151111, + -2932.35230933333, + -1768.14490471111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -21866.2700568889, + 46789.6821022222, + 40494.8077066667, + 6372.94853955556, + 5685.02272044445, + 1040.01852128889, + 29643.8498177778, + 7491.27859244444, + -10524.9455848889, + -19007.7716675556, + -35971.5481777778, + 1888.08132622222, + -12761.7522262222, + -3890.40177155556, + -3137.41416577778, + 8061.56566755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9592.48123066667, + 83718.1074577778, + 30303.2598177778, + 16276.4661404445, + -5337.64553244444, + -10304.6440306667, + 15828.741404, + -18685.4813666667, + -44011.0748977778, + -39932.4042444444, + -28314.8602502222, + 10977.6818373333, + 36203.0743555556, + 52154.9349333333, + 65790.9475911111, + 76291.9785733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 22638.1607493333, + 100633.292777778, + 158350.424328889, + 87668.4129644445, + 59119.7698888889, + 33730.4333911111, + 7968.10529022222, + 22622.7159017778, + 0, + -19181.2404582222, + -28865.6874035556, + -22652.4333124444, + 18673.17238, + 38572.5542888889, + 51277.1869555556, + 65865.9737955556, + 77114.3361111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19058.7074266667, + 95045.0128311111, + 145842.149306667, + 121280.738697778, + 82700.2714888889, + 59968.7968977778, + 38319.63392, + 36258.4647955556, + 31317.5789333333, + 24132.7354946667, + 14317.1685342222, + 18670.0658262222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14780.4260395556, + 90280.8488488889, + 137288.282786667, + 77176.1741155556, + 61711.3977244444, + 47878.7343511111, + 32201.1883333333, + 29266.9310617778, + 7380.76147644445, + -10485.6154417778, + -17548.2775342222, + -3768.60141777778, + 0, + 30193.6512222222, + 39255.99612, + 44657.2966977778, + 50613.9670311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 43510.8025111111, + 98452.8437111111, + 42554.8045466667, + 29309.1626088889, + 20198.255828, + 8785.451312, + 29833.7598977778, + 15588.0421004444, + -5773.38366044444, + 6882.04236666667, + 5466.68474266667, + 30846.0275155556, + 30970.8758088889, + 39423.0466533333, + 43727.9682044444, + 48123.1556577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8187.55693822222, + 56505.8686488889, + 33359.4053644444, + 15438.6930622222, + 2146.97741506667, + -3204.43952888889, + -2757.35075675555, + -25895.0893142222, + -37259.5957111111, + -28277.0247697778, + -35699.2851155555, + -10864.43916, + 2117.74064102222, + 9863.39616577778, + 32992.7734044444, + 46989.5566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 78484.4435555556, + 137739.026155556, + 53077.5227911111, + 23093.3587991111, + -4517.95494177778, + 0, + -11521.9148906667, + -35254.9893111111, + -22933.488508, + -10875.1948697778, + -8375.47413466667, + -17476.2699622222, + -10330.6394382222, + 3302.97003644445, + 17338.0576262222, + 26267.6413106667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5990.78381066667, + 63924.9638266667, + 43227.1096755556, + 10271.5856093333, + 5924.25666844444, + 13820.969836, + 15317.6253862222, + -116.993108342222, + -5212.12317555555, + -7858.93630133333, + -7913.24237822222, + 22036.8960577778, + 17776.6678511111, + 27385.2386857778, + 29390.3433066667, + 31987.8325644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3371.46075511111, + 29332.0221555556, + 32797.0019022222, + 33287.3098711111, + 42957.4842533333, + 51200.9884666667, + 54518.8465155556, + 52105.9920577778, + 56329.43984, + 61921.23664, + 66213.5561333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17361.737772, + 19848.3582284444, + 20870.7367995556, + 22360.1828004444, + 23280.2795537778, + 23033.5722924444, + 16250.9982608889, + 9359.31385466667, + 7162.89241244445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4105.92626666667, + 7222.47376933333, + 68003.0483377778, + 147921.781911111, + 180003.397231111, + 113331.184808889, + 76657.73132, + 46752.4620711111, + 14841.8830515555, + 18315.8014671111, + -904.827748444445, + -26393.2222817778, + -24993.221584, + -24251.9861297778, + 11180.0181324445, + 30216.5107688889, + 42175.8636, + 51767.7879955556, + 57523.9976888889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 61644.5775111111, + 117151.073671111, + 48611.9982711111, + 20134.6593968889, + -4745.02643866667, + -1194.97107915556, + -13879.9064364444, + -35990.8908711111, + -17204.9740346667, + -18012.9417808889, + -17394.5910435556, + -15063.0931262222, + -20796.8535724444, + 0, + 13764.4364186667, + 27304.1459093333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20532.6206586667, + 79060.62136, + 25411.815052, + 23062.732868, + 1979.42279942222, + -18218.8242364444, + -16717.0106346667, + -3835.392324, + -9665.01633066667, + -17047.3603911111, + -25913.0545733333, + -15926.4513124445, + -2055.67404111111, + -1967.8640748, + -15031.5586746667, + -12885.398928, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13830.1136546667, + 18834.5080266667, + 8988.52028488889, + -16676.2444431111, + -21886.6971133333, + -13886.3246937778, + -17971.5308328889, + -32864.1151866667, + -66610.3744177778, + -82380.8239777778, + -99216.5870266667, + -54502.4345333333, + -18160.415164, + -6028.35552711111, + -704.217642177778, + -1901.66810293333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -238.832733648889, + -5325.24862444445, + -37605.1265511111, + -29937.5070711111, + -26544.7400462222, + -20154.3244684444, + -21740.3667075556, + -26430.9405337778, + -22140.0277817778, + -23904.1693351111, + -28128.8773231111, + -25146.4098537778, + -10371.0246373333, + -9411.74427644445, + -13110.5947697778, + -10395.4081537778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -2390.9679072, + -4482.81571555556, + -9504.999504, + -15619.4886306667, + -20231.1090995555, + -11164.0164497778, + -10339.021272, + -10337.3800737778, + -16061.4398662222, + -14721.2549822222, + -424.273186133333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9135.70059688889, + -11355.2160426667, + -12126.4619786667, + -11638.5865, + -7201.98809866667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10797.443104, + 4788.16650622222, + -15495.8126217778, + -27206.3773866667, + -34430.8733466667, + -52828.1192755556, + -83881.0549955556, + -120761.123617778, + -143668.440875556, + -148461.618897778, + -145847.131515555, + -94292.6992888889, + -50219.2002444444, + -29066.7048786667, + -14392.6343453333, + -332.811553777778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -532.114562888889, + -12298.4067995556, + -31546.7605422222, + -20994.7058795555, + -15752.8359862222, + -30510.4610933333, + -61743.0494044444, + -104286.717248889, + -105187.910915556, + -97812.7764044445, + -100758.727213333, + -49099.9616711111, + -15489.3943644444, + -8717.25366444444, + -4745.08505288889, + -4423.55673688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8490.38731733334, + 23245.4040915556, + -6148.33884, + -20088.4127755556, + -33668.3023155556, + -38083.4186044444, + -38753.9653066667, + -48900.9663866667, + -50756.3995911111, + -74498.0903022222, + -91803.9394133333, + -50254.0757066667, + -15698.4712951111, + -4632.92673866667, + -7189.26881244444, + -28043.9453151111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4645.23572533333, + 28801.5341373333, + 7512.49694088889, + -9706.36866444444, + -29023.8578822222, + -39409.2723111111, + -43012.8746933333, + -56026.9904533333, + -64517.5536133333, + -85818.8411822222, + -102370.325253333, + -62400.4079066667, + -22977.1854106667, + -7406.81549822222, + -4335.10787555556, + -22314.2878644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3669.80714622222, + 42168.2437511111, + 21758.3612737778, + 12901.1075395556, + -169.27845992, + -18185.3848226667, + -21762.0832768889, + -25389.1606551111, + -31818.1443911111, + -29993.4836533333, + -25275.449064, + -46.0877767911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10783.0240053333, + -14972.5927671111, + -15031.2362964444, + -19111.5188408889, + -14732.1279204444, + -1755.37286568889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -597.566134133333, + -10114.294344, + -28204.28452, + -25736.0396222222, + -43148.8596888889, + -67077.5297688889, + -96135.8235066667, + -124298.785, + -133839.12888, + -152409.579835556, + -156974.455462222, + -120461.898013333, + -72988.4810088889, + -48112.8981688889, + -26800.2101337778, + -8879.82020977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -12863.9754297778, + -28449.2040475556, + -24372.5262777778, + -68799.6156177778, + -107417.889, + -127485.05412, + -160611.761022222, + -163658.821364444, + -163320.324231111, + -168583.588315556, + -123440.086644444, + -80489.9291688889, + -58327.0125333333, + -44831.3809377778, + -27823.3799968889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -7940.878984, + -53979.8887422222, + -46838.0388355556, + -42354.0508355556, + -24654.0503871111, + -36167.9058222222, + -24054.9251146667, + -19737.7531911111, + -21260.7265271111, + -23780.1123337778, + -19563.8741008889, + -26805.1630355556, + -27241.1063133333, + -8167.83325244444, + -2591.78023253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9391.844748, + 20848.3754737778, + -30310.5865955556, + -29389.7571644444, + -32601.2304, + -40203.2019511111, + -43173.1845911111, + -62102.0615155556, + -87311.15928, + -87789.7444044444, + -79135.3544933333, + -47049.9292488889, + -13072.671368, + -5391.89299511111, + -4808.21257022222, + -12296.150152, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16117.3871413333, + 28388.0401066667, + -25293.0919448889, + -23444.4872973333, + -19997.6193453333, + -40532.61388, + -48593.5347911111, + -95149.0530755556, + -111293.461373333, + -130591.607897778, + -136892.343715556, + -89780.2833911111, + -51153.8040177778, + -27219.2139013333, + -10932.9884928889, + -2954.83086355555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -14.0429418955556, + 2569.7998992, + -11974.358072, + -19541.3955466667, + -23872.224584, + -11578.4190008889, + -499.8855328, + -23941.066988, + -37919.0057111111, + -53211.74936, + -60855.9231511111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5359.03972355556, + -8735.36545911111, + -9133.12157111111, + -11530.5897955556, + -6706.05316444445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10240.4028431111, + 0, + -7499.80696177778, + -25263.9899835556, + -19023.5095862222, + -39619.6973688889, + -41569.2064, + -59112.7361822222, + -102729.044293333, + -116765.392088889, + -121843.435231111, + -84787.2308711111, + -41805.7147866667, + -22521.4305257778, + -5876.51538444444, + -2266.58852764444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -20877.711892, + 20189.5223088889, + -8037.18215111111, + -24868.0509124445, + -35194.03052, + -25973.6909862222, + -34082.1187244444, + -38266.0019066667, + -49879.2377555556, + -70911.1929733333, + -99401.2218266667, + -59183.36632, + -24295.8002608889, + -10453.3483124444, + -3982.77778577778, + -1368.74173306667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4275.350676, + 8076.01407333333, + -30227.9405422222, + -31831.03952, + -54445.2856666667, + -102155.211057778, + -124133.785964444, + -162502.948902222, + -183820.355382222, + -188243.384591111, + -193529.508222222, + -142416.73416, + -90536.993, + -62633.6925111111, + -41626.9414088889, + -25391.0363102222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -745.997859777778, + -18880.1978128889, + -48185.5798044445, + -100762.537137778, + -142568.544995556, + -153729.279048889, + -160541.423955556, + -181762.116968889, + -185163.793355556, + -187824.879044444, + -177383.634568889, + -114302.422471111, + -65283.0553555556, + -33796.3743911111, + -16287.954528, + -4999.73454133333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + 1918.3028192, + -43352.5441111111, + -21319.9561986667, + -33108.8295644444, + -52827.2400622222, + -65895.8670488889, + -115465.621711111, + -131122.945822222, + -145111.229955556, + -145325.758008889, + -107594.024737778, + -64965.9524133333, + -49777.54208, + -26387.6246235556, + -13770.6788333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -12370.4436786667, + -9592.42261644445, + -7848.88396222222, + -13515.0329031111, + -42522.5667244445, + -53844.78296, + -83173.8744044445, + -103680.939262222, + -106960.404995556, + -102963.794253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8873.46056666667, + -11065.1049497778, + -15854.2972048889, + -12539.1647173333, + -9205.42221422222, + -1998.42259955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -636.181183733333, + -16382.4406542222, + -47509.4647511111, + -26390.379492, + -36085.55284, + -71644.4568933333, + -93042.1648577778, + -134224.810462222, + -153269.157404444, + -173343.06316, + -194715.86008, + -173270.381524444, + -135327.930124445, + -109494.297822222, + -89694.4135555556, + -66224.9859066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -92.5518568888889, + -25340.3936222222, + -48658.5965777778, + -62797.2261911111, + -116970.248795556, + -156033.404124444, + -170967.428733333, + -191766.97856, + -184415.289737778, + -180552.905564445, + -178978.234484445, + -143465.342595556, + -87614.7809511111, + -49638.9194444444, + -25934.5073786667, + -4331.76686488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + 0, + -36674.9188444444, + -33426.5186488889, + -34658.8826711111, + -33400.1422488889, + -45674.5465244444, + -57123.6625511111, + -99388.6197688889, + -112940.814088889, + -131964.352982222, + -101448.323537778, + -75168.3439333333, + -52495.4835644444, + -28143.2378075555, + -6504.97707511111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2802.65368911111, + 1555.07927622222, + -29550.9462755556, + -31458.2530666667, + -35121.3488844444, + -24593.7949666667, + -21442.1961591111, + -22625.8517626667, + -20660.1652062222, + -20568.4925626667, + -22419.8520786667, + -19739.2185466667, + -10312.908636, + -24370.6213155556, + -17435.5037706667, + -796.579002844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9371.62284133333, + 26171.1036866667, + -18092.2761306667, + -32162.5029466667, + -27774.8181137778, + -28481.9987048889, + -20777.8625644444, + -20874.8397951111, + -30101.0407511111, + -49298.0777422222, + -87394.0984044445, + -62091.5109555556, + -35715.6970977778, + -16568.599424, + -6475.84580666667, + -7693.96657288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16926.5857862222, + 38228.7818755556, + 35134.2440133333, + 15308.8332528889, + 10799.3773733333, + -4222.53926177778, + -2420.8787448, + -2805.84523351111, + -13818.6252671111, + -18678.3304315556, + -21316.7031093333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4085.968124, + -1923.84772462222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23025.9524435556, + 23631.144288, + 13145.3530035556, + -10784.518668, + -15343.2691084445, + -24377.2154155555, + -39061.1038311111, + -58899.3804133333, + -89823.9509866667, + -112527.290751111, + -123403.452755556, + -88527.9905333333, + -54805.4700622222, + -31855.6574933333, + -13181.4593644444, + -3758.87145688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10176.542648, + -35850.5098088889, + -29967.6933955556, + -23927.2926457778, + -23440.0619235556, + -18971.8997635556, + -21512.1522333333, + -19682.0989871111, + -20229.4972084444, + -22785.8978964444, + -20969.8241422222, + -6863.84265066667, + -26056.1611968889, + -13730.498784, + -2280.30425564445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5111.68770577778, + 28816.8617564444, + 24040.4767088889, + 12421.3208235556, + 5969.53615511111, + 1517.70684813333, + 10047.9137373333, + -10246.2056511111, + -17096.1567311111, + -24103.8972973333, + -26623.8985533333, + 8786.242604, + 0, + 10019.8082177778, + 19937.92076, + 26909.3498155556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2386.40185928889, + 44323.4887022222, + 31680.9871111111, + 8446.92487155556, + -9874.03464711111, + -27254.7048128889, + -17166.6989475556, + -21697.5490182222, + -30389.1296533333, + -44908.45864, + -77427.6291288889, + -59401.9973688889, + -34531.98288, + -15707.4392711111, + -6097.66684488889, + -1975.54546862222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -37177.8288711111, + -40254.1963244445, + -28835.1200866667, + -21715.5728915556, + -33631.3753555556, + -41622.5453422222, + -57693.3927911111, + -82845.63476, + -95167.2234844444, + -70803.0497333333, + -41476.5959288889, + -20790.2008582222, + -5761.80735155556, + -1421.15163986667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -21199.2109008889, + 16003.0014866667, + 10322.140376, + 12409.9203573333, + -1540.07403533333, + -8506.916528, + -7391.48787911111, + -20699.9935702222, + -18206.6617853333, + -19442.3375111111, + -21145.6081946667, + -334.713585288889, + -2581.88908253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7118.11114666667, + -8166.13344, + -10363.0531031111, + -8393.38077955556, + -5165.14387644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -648.317258444445, + -5496.78314577778, + -28383.2044333333, + -15698.2954524444, + -25845.8240604444, + -55748.5728977778, + -88387.0233288889, + -122158.486675556, + -128765.188733333, + -141017.905746667, + -153540.248182222, + -104490.1086, + -64542.4646577778, + -44493.1768755556, + -33959.9080711111, + -23196.72498, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -17607.8881982222, + -33015.33988, + -43494.3905288889, + -82756.5411422222, + -113452.223177778, + -129837.829, + -166762.444431111, + -179621.232502222, + -187197.706866667, + -195415.713893333, + -171655.266631111, + -123766.567862222, + -108322.59952, + -90969.56596, + -70499.1349911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -32064.9102666667, + -96841.2456711111, + -124649.884191111, + -138448.551315556, + -172699.185928889, + -157474.141706667, + -199329.971653333, + -206157.063186667, + -220773.984853333, + -241437.549684444, + -201760.99652, + -163432.277395555, + -140653.618355556, + -111764.133577778, + -92666.4476933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -53189.7690266667, + -135589.642626667, + -139575.409737778, + -156733.257937778, + -192619.815493333, + -211421.792626667, + -236616.822977778, + -241885.069271111, + -243615.654182222, + -249857.189635556, + -220760.210511111, + -175753.573048889, + -143003.462524444, + -119934.076942222, + -98757.0515244444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1550.11172088889, + -55541.6646933333, + -142384.789408889, + -150757.244911111, + -161477.493084444, + -184039.279502222, + -130345.721235556, + -117999.807608889, + -120908.245315556, + -130596.297035556, + -159203.847404444, + -118902.466631111, + -76515.0056888889, + -53749.2417777778, + -24379.2082991111, + -9072.25070133333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -7544.177928, + -20552.9304866667, + -18102.5336195556, + -14585.0355297778, + -17844.2500493333, + -14004.1099733333, + -11784.0376924445, + -6201.97085333333, + -5551.11852977778, + -5743.22664311111, + -728.434108088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1860.54729533333, + -61319.85472, + -102445.644528889, + -106063.607395556, + -110047.909151111, + -113517.871106667, + -114220.069488889, + -136823.472004445, + -147247.718355556, + -145561.387182222, + -152437.421591111, + -114853.689231111, + -80832.5292977778, + -58264.0022444445, + -33433.2592844444, + -16729.1437786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -23650.3697528889, + -93961.8220044444, + -140278.194262222, + -158889.382102222, + -188950.272111111, + -184857.827115556, + -215964.980991111, + -234021.385217778, + -236963.819173333, + -234682.260573333, + -192739.974648889, + -149086.446506667, + -124546.430088889, + -107891.198844444, + -73193.0446444444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -19216.5555271111, + -31733.7399111111, + -24382.5786168889, + -23033.8360564444, + -22814.8533222222, + -23907.6861884444, + -33343.5795244445, + -36700.12296, + -42719.21744, + -48874.5899866667, + -36531.9001422222, + -20522.6269337778, + -38505.7340755556, + -15363.4910151111, + 2124.12372982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 45405.2141733333, + 23974.565016, + 3445.49051777778, + -22028.3676884444, + -41876.9310666667, + -29311.8002488889, + -40652.1868933333, + -42394.4946488889, + -69212.5528133333, + -80420.1782444445, + -63381.6099866667, + -38777.4109955555, + -19210.4889551111, + -7242.05091955556, + -17327.6536017778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1961.44581746667, + 30341.6521333333, + 9272.97510533333, + -27377.0033875556, + -26207.2100475556, + -35068.0099422222, + -49315.95508, + -103514.767942222, + -126187.33524, + -152970.811013333, + -171076.158115556, + -135688.407591111, + -102684.497484445, + -72395.8912222222, + -31758.9440266667, + -15523.1268493333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -213.221249248889, + -15596.0429417778, + -7669.49513511111, + -11200.1521177778, + -28004.4100222222, + -42330.0190044445, + -49693.7237422222, + -65762.8127644445, + -84417.6682, + -93009.6339644445, + -98512.6302177778, + -4228.01969155556, + -11445.9801657778, + -9217.760508, + -2696.97810786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2408.65474875556, + -5147.03208177778, + -4669.32617066667, + -2353.41377502222, + -10160.3944297778, + -12787.8355551111, + -19995.2454693333, + -21985.6672275555, + -19034.2359888889, + -9705.723908, + -3365.80448266667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 280.612072035556, + -18013.0590093333, + -38253.1067777778, + -48455.4982977778, + -91000.3384266667, + -122441.007226667, + -139812.211195556, + -167725.183031111, + -187581.336951111, + -197289.024435556, + -204599.09716, + -187188.621662222, + -133704.902311111, + -95594.5211644445, + -65426.6602, + -43530.4382755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -13915.8662617778, + -56281.0831066667, + -70388.06104, + -123875.883386667, + -156793.923657778, + -178207.457462222, + -208070.524471111, + -209646.660906667, + -232619.333022222, + -225197.014062222, + -199581.133595556, + -145718.180226667, + -114179.918746667, + -83570.1065466667, + -67095.9932488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -124.52825968, + -25777.3040346667, + -73334.30492, + -103717.866222222, + -152241.357017778, + -189557.808524444, + -198788.962382222, + -220542.751746667, + -236322.286511111, + -237870.581191111, + -236340.45692, + -202136.127542222, + -147784.33156, + -124551.99844, + -83485.4089955556, + -58658.47596, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -84.1114088888889, + -22166.7558671111, + -66021.3014844444, + -97015.9160533333, + -149711.274115556, + -190441.417924445, + -202867.339964444, + -211837.660533333, + -210948.482782222, + -218473.08356, + -219149.198613333, + -188266.537208889, + -146743.342973333, + -111734.826466667, + -80720.2830622222, + -55645.4118666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 28.6188629137778, + -23718.5087862222, + -67816.0689688889, + -99769.9052844444, + -141092.931951111, + -174490.43656, + -192393.857666667, + -206179.629662222, + -216000.735666667, + -229050.606102222, + -229894.650902222, + -194782.094151111, + -154411.841666667, + -117668.637253333, + -87203.6021822222, + -63021.7186622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -13400.0904133333, + -17568.528748, + -34044.6056222222, + -59658.14152, + -96113.8431733333, + -105652.428626667, + -113482.409502222, + -123986.957337778, + -131581.895182222, + -140022.636253333, + -6466.35030266667, + -9987.160096, + -7094.75337911111, + -2345.74996546667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2713.91468737778, + -8168.65385155555, + -10905.3811942222, + -15285.4168711111, + -23510.6920613333, + -33477.2199511111, + -38368.5767955556, + -41425.0154133333, + -54998.6039244445, + -28739.7547471111, + -16223.5374977778, + -2560.34542515556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -17550.6807173333, + -89099.4792, + -154172.402568889, + -171054.177782222, + -196169.785862222, + -223924.499297778, + -226409.156177778, + -242154.987764444, + -248312.411808889, + -248403.849995556, + -254221.01848, + -225779.34636, + -176644.509226667, + -149732.082164444, + -117742.491173333, + -80909.9000711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -41971.0068933333, + -134799.522911111, + -148426.157293333, + -177735.026831111, + -210086.853715556, + -218935.549773333, + -231753.60096, + -226470.114968889, + -230513.617088889, + -227142.713168889, + -187725.234866667, + -150031.893911111, + -112638.657773333, + -98503.8380844444, + -74927.1464088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1877.6567868, + -42702.8054577778, + -113102.0032, + -136907.583413333, + -171616.874315556, + -202113.854137778, + -219343.50476, + -237608.282546667, + -236017.199484445, + -253095.332342222, + -234423.771853333, + -200105.730884444, + -143727.64124, + -125272.367231111, + -101369.194337778, + -72910.8171644445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -125.946723857778, + -33369.9559244445, + -63091.1765155556, + -101448.90968, + -143186.631968889, + -174241.326115556, + -185586.98804, + -205623.673764445, + -217706.409533333, + -222297.075417778, + -231790.820991111, + -173448.275688889, + -129869.773751111, + -109558.773466667, + -76363.1948533333, + -57760.7991466667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -210.012999795556, + -34136.33688, + -88733.7264533333, + -105775.518493333, + -144197.434231111, + -167162.193426667, + -173197.699888889, + -204774.353684444, + -209637.282631111, + -222246.667186667, + -214929.560755555, + -178309.153137778, + -137069.944808889, + -114292.164982222, + -83928.5325155556, + -68613.8085333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -26324.4677991111, + -28908.8860853333, + -35347.01364, + -68119.1044977778, + -95572.8339022222, + -95821.0651333333, + -99538.3791066667, + -99293.9578, + -108511.044244444, + -105328.87812, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9467.72085866667, + -19082.534108, + -27872.6159435556, + -31535.9169111111, + -24281.586312, + -6888.51923822222, + -3046.26905022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16894.2893497778, + -82126.1451822222, + -142692.807146667, + -124151.663302222, + -144407.273146667, + -164633.57588, + -155992.960311111, + -180468.208013333, + -173722.590248889, + -179869.170662222, + -186030.404631111, + -147748.869955556, + -115294.468182222, + -85308.3113066667, + -49111.3914444445, + -20027.9228982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -25155.3485226667, + -48712.2285911111, + -48344.1312755556, + -56127.5138444445, + -86310.0283644445, + -102301.746613333, + -127578.250733333, + -140910.934791111, + -144905.787106667, + -146267.68856, + -108183.683813333, + -73234.6607422222, + -45526.8386844444, + -18820.0596208889, + -5503.93408088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -20160.4496546667, + 10373.2226706667, + -40262.1092444444, + -41993.2802977778, + -34516.7431822222, + -36385.9507288889, + -46331.6119555556, + -62019.7085333333, + -85494.9976044444, + -93848.9896266667, + -108612.446848889, + -82469.3314533333, + -54605.5955644445, + -36869.2249911111, + -9014.54499955556, + -5277.74179733333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23619.1576795556, + 20590.0332893333, + -36009.06128, + -33645.1496977778, + -30591.6417911111, + -42000.3140044444, + -76381.9514044445, + -112900.663346667, + -132869.649644444, + -144504.572755556, + -155178.515693333, + -128548.902253333, + -96297.0126177778, + -63398.6081111111, + -27294.8555551111, + -10967.6294982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6282.44818044444, + -35486.80856, + -47623.7624844444, + -61371.4352355556, + -109905.769662222, + -138747.190777778, + -170759.055173333, + -176008.837986667, + -205303.933182222, + -205873.07728, + -164055.053506667, + -128510.216866667, + -100602.813382222, + -71898.2564755556, + -45092.2142266667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -10582.3582155556, + -12495.2333577778, + -14820.8698528889, + -14761.2298817778, + -33002.7378222222, + -55159.7930355556, + -69541.3786, + -89681.8114977778, + -104420.357675556, + -106638.319844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3197.02482977778, + -11483.2001968889, + -12726.4371573333, + -2782.00976004444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -17767.14304, + -85457.4845022222, + -152345.983404444, + -152182.742795556, + -158644.960795556, + -175621.397977778, + -175532.890502222, + -201069.641768889, + -215492.843431111, + -222399.357235556, + -232074.513826667, + -200484.671831111, + -156992.918942222, + -134206.053911111, + -99923.7676177778, + -76249.4832622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -36307.4076711111, + -117843.893777778, + -138070.489582222, + -168828.595764444, + -196496.26708, + -211683.212057778, + -229062.328946667, + -235404.09472, + -241166.458906667, + -243326.392995556, + -200291.537968889, + -156334.681226667, + -126792.820155556, + -105280.814457778, + -80953.8607377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1462.14349617778, + -40898.3666266667, + -126377.538391111, + -161088.001577778, + -182003.314493333, + -219155.939248889, + -225198.186346667, + -242396.185288889, + -239715.463835556, + -278460.050866667, + -259189.453026667, + -217528.515368889, + -174823.365342222, + -132099.458764445, + -107400.304733333, + -87655.5178355556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -284.488230551111, + -36514.9020177778, + -110190.634782222, + -155667.944448889, + -192395.029951111, + -221194.248826667, + -231547.86504, + -241491.474768889, + -243857.73092, + -250985.806484444, + -256630.649155556, + -212801.864488889, + -169100.565755556, + -136528.935537778, + -99206.0364666667, + -82246.3043377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -382.249719511111, + -36823.7989688889, + -125239.836337778, + -169110.823244444, + -195278.263542222, + -218792.824142222, + -235302.105973333, + -252766.799626667, + -265638.189755555, + -271703.882542222, + -277822.328128889, + -239227.500435556, + -189659.211128889, + -165254.007422222, + -124063.448897778, + -102980.792377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4611.59116177778, + -64086.73908, + -105665.323755556, + -131630.838057778, + -154802.212386667, + -178518.11284, + -165210.925968889, + -171532.176764444, + -173317.272902222, + -181981.627231111, + -185216.546155556, + -10325.2469297778, + -13420.7519266667, + -12841.877868, + -7601.414716, + -3233.30703333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7255.73734044444, + -12059.1435444445, + -18556.6473062222, + -18747.9934346667, + -31021.28404, + -36410.2756311111, + -18486.163704, + -26836.7561013333, + -22498.6002862222, + -32707.6152133333, + -19465.3435933333, + -5340.165944, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -24563.9310204444, + -68940.5828222222, + -148455.757475556, + -211114.654102222, + -234992.915951111, + -244483.730813333, + -266917.445155556, + -259520.03724, + -287107.114, + -290776.950453333, + -313565.573911111, + -299146.475244444, + -266043.800173333, + -209966.987631111, + -182399.546635556, + -142936.935382222, + -109083.412124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7350.69238044444, + -60558.7490444445, + -136398.225822222, + -140248.59408, + -141601.996471111, + -162245.046324444, + -165654.049488889, + -189331.264555556, + -185872.439302222, + -191360.488928889, + -192237.650764444, + -152765.368164444, + -116975.231004444, + -86548.5882488889, + -50438.4174355556, + -22027.2833253333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 300.107748488889, + -25577.8984506667, + -39157.8172977778, + -45987.8395422222, + -56625.7347333333, + -93916.3959822222, + -102622.073337778, + -140341.497622222, + -151909.307448889, + -169482.437413333, + -177740.595182222, + -142391.823115556, + -112498.569782222, + -90910.3655955556, + -50850.7684888889, + -26365.2926048889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -18637.0660191111, + -36826.4366088889, + -40562.8002044444, + -71258.1891688889, + -129767.491933333, + -140962.808377778, + -164593.425137778, + -173566.383346667, + -175735.109568889, + -195292.037884444, + -160182.411844444, + -122487.898604444, + -90899.5219644445, + -67141.4192711111, + -38905.7761422222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 87.3199514133333, + -17073.3851057778, + -37779.2107911111, + -63041.0613555555, + -116257.792924445, + -143268.398808889, + -158008.410342222, + -176921.461426667, + -190804.826102222, + -198294.258346667, + -212409.442271111, + -178607.7926, + -139578.047377778, + -111544.916386667, + -77036.6722666667, + -56118.1355688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -14350.4614124445, + -21425.6376413333, + -35913.5200977778, + -55173.5673777778, + -84941.3862755556, + -86141.5124755556, + -96418.6371288889, + -107026.345995556, + -115471.776204444, + -126700.795826667, + -4583.10464977778, + -11200.9141026667, + -9515.87244222222, + -3132.31472844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6869.64545866667, + -8291.77302533333, + -8491.03207377778, + -7599.65628933333, + -15814.6446835556, + -18462.6300937778, + -18071.5853102222, + -24712.6353022222, + -16639.9329324444, + -2730.34718457778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10956.4341817778, + -74645.7981422222, + -137372.980337778, + -161395.726244444, + -192131.852093333, + -215664.876173333, + -226725.672977778, + -249357.503391111, + -247871.339786667, + -254640.110168889, + -261851.417928889, + -222212.084795556, + -180819.014133333, + -153162.47952, + -121024.594546667, + -96716.3973777778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3907.42920311111, + -71837.0046133333, + -173828.681991111, + -169011.472137778, + -206146.219555556, + -234470.077088889, + -232580.940706667, + -256400.295262222, + -251646.095697778, + -268230.989875556, + -261944.907613333, + -236064.090862222, + -185312.087337778, + -166862.088608889, + -132181.518675556, + -107543.909577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5896.26837733333, + -65447.4682488889, + -149449.268542222, + -174141.975008889, + -198467.170302222, + -229805.850355556, + -234825.572346667, + -255318.569791111, + -252798.451306667, + -258639.06548, + -263545.368951111, + -236491.974684444, + -187337.794857778, + -158440.690231111, + -134082.084831111, + -117751.869448889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3234.36208933333, + -81259.8269777778, + -177222.738528889, + -199113.978244444, + -214636.196573333, + -238177.426644444, + -250050.616568889, + -258046.475693333, + -259072.810724445, + -259823.36584, + -273502.753022222, + -242032.48404, + -193497.2704, + -167868.787875556, + -144229.378982222, + -110018.895111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6511.95216755556, + -102979.620093333, + -176124.894146667, + -204956.643915556, + -224818.952328889, + -254913.545515556, + -250829.599582222, + -264648.781684444, + -260930.295426667, + -276280.481013333, + -290121.93652, + -251551.7268, + -209446.493337778, + -178093.745871111, + -139655.12508, + -109065.534786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7210.86815333333, + -63441.3964933333, + -96009.8029288889, + -127807.432342222, + -155118.143044444, + -171841.952928889, + -173363.285066667, + -176692.86596, + -174298.768053333, + -175604.106782222, + -172457.695333333, + -449.7703728, + -3271.201128, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2946.771408, + -7607.89158755556, + -9761.43672622222, + -15227.4180982222, + -16847.1635151111, + -30800.6014933333, + -35933.7420044444, + -41920.8917333333, + -69211.3805288889, + -73412.2618355556, + -36294.8056133333, + -35552.1634177778, + -13540.2663257778, + -6550.75478266667, + -3044.77438755556, + 0, + 0, + 0, + 0, + 0, + 0, + -27864.5271808889, + -87120.9561288889, + -154703.447422222, + -220937.225462222, + -234686.070497778, + -251195.938471111, + -263404.694817778, + -264736.703017778, + -279543.534764445, + -283935.791506667, + -276757.600782222, + -275782.260124444, + -234008.490088889, + -175033.497328889, + -142909.679768889, + -114169.075115556, + -97931.7632755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12799.2946355556, + -91262.344, + -180398.164017778, + -200315.5698, + -210836.822688889, + -234665.262448889, + -249409.376977778, + -257209.757671111, + -274689.984093333, + -268367.561013333, + -275819.480155555, + -238911.276706667, + -175197.32408, + -146700.847662222, + -115408.472844444, + -98972.16572, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12229.681624, + -93426.0880133333, + -161080.967871111, + -147655.966413333, + -165578.144071111, + -170719.490573333, + -165997.23576, + -186593.687306667, + -185167.017137778, + -191464.822244445, + -192319.710675556, + -151381.486377778, + -118399.556604444, + -102389.374875556, + -85364.8740311111, + -65412.8858577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2961.42496355556, + -46790.8543866667, + -137251.941968889, + -146216.694186667, + -173996.611737778, + -193783.893946667, + -188822.786177778, + -219235.36152, + -214067.638617778, + -225600.866053333, + -229586.926235556, + -185999.046022222, + -145741.918986667, + -125124.073248889, + -98905.0524355556, + -74518.0191377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7852.10774444445, + -96263.6025111111, + -172367.13636, + -179963.832631111, + -219189.349355555, + -212144.212915555, + -228122.156822222, + -258314.928831111, + -256203.937617778, + -272174.261675556, + -287328.089617778, + -224315.45616, + -145956.740111111, + -118539.644595556, + -88291.4821466667, + -70944.3100088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3393.55831688889, + -39974.6064844444, + -56461.9079822222, + -66099.2584, + -99121.0458444445, + -114528.087226667, + -110893.712377778, + -130610.364448889, + -140048.426511111, + -141954.854088889, + -149048.054191111, + -1330.57508226667, + -6452.98626, + -6494.30928666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7737.253176, + -7992.72326355556, + -7911.63048711111, + -21227.1405777778, + -32437.1105777778, + -39789.6786133333, + -41694.3477644444, + -20401.2368795556, + -15637.8641893333, + -2962.09902711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10709.2580066667, + -20742.3716528889, + -42454.2811555556, + -70872.8006577778, + -79020.7636888889, + -86133.3064844444, + -90472.2242844444, + -90873.1455644445, + -82898.38756, + -71755.5308444445, + -24585.8234324445, + -10957.4892377778, + -3185.09683555556, + 0, + 0, + 0, + 0, + 0, + 0, + -55874.5934755556, + -121073.830493333, + -204618.146782222, + -261937.873906667, + -285111.299733333, + -299105.445288889, + -307173.692977778, + -312182.278266667, + -313014.600222222, + -325833.530622222, + -328673.389688889, + -337116.7684, + -293938.6016, + -247294.57584, + -208965.856715556, + -183938.756111111, + -155901.522124445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -53954.3915555556, + -141148.908533333, + -214246.118924444, + -243077.868693333, + -262044.844862222, + -281833.299355556, + -286945.631817778, + -312220.377511111, + -307279.198577778, + -310643.654933333, + -310713.992, + -223851.23152, + -189652.470493333, + -161340.921946667, + -136074.968386667, + -123530.059475556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -20765.7587275556, + -130227.320506667, + -211759.117475556, + -224340.660275556, + -243245.212297778, + -241047.765106667, + -263797.703177778, + -280823.669377778, + -278813.494626667, + -277665.828155556, + -297862.823777778, + -266828.351537778, + -207161.417884444, + -185758.141568889, + -140982.737213333, + -121263.447502222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7136.10571288889, + -91931.4253466667, + -175095.335333333, + -183993.85348, + -213918.465422222, + -229115.667888889, + -214348.986884444, + -234930.491804444, + -249464.181275556, + -253519.40624, + -256416.121102222, + -230285.314693333, + -176199.62728, + -157180.777524444, + -114208.932786667, + -86786.5619911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6196.78349466667, + -73401.1251333333, + -111573.344284445, + -132513.568244444, + -154678.536377778, + -168016.495715556, + -158071.420631111, + -172820.224297778, + -174890.478626667, + -177576.182288889, + -174241.912257778, + -11450.4934608889, + -11417.8746462222, + -9890.03632977778, + -3858.72078444445, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8556.12316755556, + -17445.1458102222, + -21819.2907577778, + -23007.2838137778, + -37653.4832844445, + -51998.43496, + -77853.1683822222, + -84632.7823955556, + -90923.8468666667, + -89027.0906355556, + -85402.3871333333, + -70395.3878177778, + -28393.4326151111, + -15004.4202897778, + -5963.41096888889, + 0, + 0, + 0, + 0, + 0, + 0, + -57765.1952133333, + -115417.264977778, + -192839.325755556, + -255885.955462222, + -278057.664231111, + -294161.335644444, + -295855.286666667, + -290749.987911111, + -308093.936266667, + -308480.790133333, + -311537.521822222, + -320068.821866667, + -290922.899866667, + -244745.736386667, + -214773.646924444, + -180590.125595556, + -147908.593711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -32363.2566577778, + -127580.595302222, + -225289.038391111, + -251652.250191111, + -287605.62796, + -307554.685422222, + -316411.2944, + -324757.959644445, + -329218.501955556, + -335288.004666667, + -340680.513111111, + -306748.739866667, + -252753.025284444, + -187831.912751111, + -146841.228724445, + -122395.874275556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2519.05756702222, + -57405.59696, + -120116.660244444, + -146824.2306, + -159806.401608889, + -177012.606542222, + -178769.567853333, + -200967.946093333, + -202484.002951111, + -209508.917484444, + -217852.065875556, + -177261.716986667, + -138986.043733333, + -118197.92368, + -90180.3254577778, + -67002.5035644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -30403.1970666667, + -78124.5522311111, + -111555.173875556, + -137239.926053333, + -160418.041017778, + -162158.883417778, + -175691.148902222, + -185599.003955556, + -205090.284342222, + -206268.430208889, + -184382.465773333, + -151559.673613333, + -133041.682386667, + -96032.6624755556, + -72157.3313377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -781.679267555556, + -36018.7326266667, + -111462.563404444, + -138599.482937778, + -176331.50928, + -208223.21452, + -228545.058435555, + -252072.807235555, + -266184.181235556, + -270351.945506667, + -283706.609897778, + -251608.289524444, + -192464.780875556, + -162727.148302222, + -131718.46632, + -83687.9211333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -69.9420068088889, + -16719.9413457778, + -27823.7609893333, + -53325.16788, + -67386.7197911111, + -102112.129604444, + -104921.509275556, + -113623.376706667, + -128466.842342222, + -134664.124057778, + -141364.608871111, + -4849.44767555556, + -11354.7178217778, + -10494.4661893333, + -6017.07228933333, + -2342.84563075556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4870.57810266667, + -12056.124912, + -15750.4621102222, + -17343.010528, + -16901.8212773333, + -33241.0046355556, + -44639.7124311111, + -90096.50712, + -94506.3481288889, + -90807.7907066667, + -89252.1692488889, + -77356.9989911111, + -30183.6868044444, + -21992.7595484444, + -6865.65969155556, + -3377.90831955555, + 0, + 0, + 0, + 0, + 0, + -89424.2019911111, + -147146.315751111, + -209565.480208889, + -284446.028311111, + -300207.392666667, + -315095.405111111, + -332046.638177778, + -335795.017688889, + -325950.759066667, + -332832.068755555, + -350093.9572, + -337275.0268, + -310435.574444444, + -260079.21692, + -242089.046764444, + -214802.074822222, + -180389.078813333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -71305.3736177778, + -178432.243004444, + -260747.419053333, + -281384.900555555, + -299462.992044444, + -321091.640044444, + -326621.891911111, + -325804.223511111, + -331138.117733333, + -325900.936977778, + -341946.580311111, + -310001.8292, + -253352.355706667, + -238926.809475556, + -211559.82912, + -182462.263853333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -86373.3317244444, + -175708.733168889, + -234612.80272, + -253517.061671111, + -259827.761906667, + -290313.311955556, + -299518.675555556, + -313887.952133333, + -324294.907288889, + -312472.418666667, + -314318.766666667, + -264638.231124445, + -213429.036666667, + -188188.580293333, + -169893.323111111, + -165353.358528889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -70905.6246222222, + -163678.7502, + -230251.025373333, + -236964.698386667, + -241497.04312, + -261263.51728, + -269418.807088889, + -270002.604742222, + -271628.856337778, + -281773.219777778, + -282014.124231111, + -244867.653968889, + -191395.364391111, + -167710.529475556, + -140614.932968889, + -124879.945013333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -47233.3917644444, + -152361.809244444, + -230525.046862222, + -248322.962368889, + -271469.718724444, + -281171.251715556, + -282502.673773333, + -315259.524933333, + -304717.757066667, + -274303.423297778, + -316229.590311111, + -274801.058044444, + -212859.306426667, + -200282.452764444, + -164939.835191111, + -145650.773871111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -33408.6413111111, + -120100.541333333, + -149807.987582222, + -166302.322786667, + -193727.038151111, + -207721.476777778, + -202151.074168889, + -198159.738706667, + -212416.182906667, + -179236.723204445, + -194928.043564444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -21198.4782231111, + -41722.18952, + -51852.4855466667, + -81828.6780044445, + -87720.5796222222, + -88304.6703466667, + -42803.3288488889, + -31809.6453288889, + -21090.4522115556, + -3457.53574044444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -67370.0147377778, + -125698.492626667, + -198727.417448889, + -281874.622382222, + -280161.035595556, + -307751.043066667, + -307030.088133333, + -293745.174666667, + -341123.050488889, + -348042.459422222, + -345354.997333333, + -351166.597466667, + -307135.593733333, + -253510.907177778, + -234738.823297778, + -200358.358182222, + -177293.954808889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -60213.8043466667, + -149139.492377778, + -232865.805826667, + -265865.612937778, + -292907.28436, + -321592.791644444, + -305828.496577778, + -329397.275333333, + -314655.798444444, + -334203.641555556, + -331844.419111111, + -304767.579155556, + -257790.038471111, + -222408.44244, + -164560.015031111, + -135754.05552, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -35735.3328622222, + -143179.598262222, + -233774.326271111, + -259757.717911111, + -281698.486644445, + -295090.371066667, + -305620.416088889, + -316059.609066667, + -328834.5788, + -335009.587111111, + -330288.211511111, + -303375.491377778, + -246199.369097778, + -224449.9758, + -191158.269862222, + -169716.015088889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -56043.1093644444, + -168393.092093333, + -252340.967302222, + -262408.25304, + -286180.423146667, + -306848.384044444, + -323204.682755556, + -330214.943733333, + -317302.230577778, + -299231.465866667, + -326070.918222222, + -318070.076888889, + -247564.201262222, + -227908.214911111, + -201494.59488, + -132949.951128889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -57995.5491066667, + -158197.73428, + -235519.564737778, + -267548.720328889, + -288732.779453333, + -314227.914622222, + -328981.114355556, + -331724.259955555, + -342222.067155556, + -325317.725466667, + -349836.054622222, + -322715.254, + -241955.406337778, + -207237.909444444, + -190539.596746667, + -157364.826182222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -48460.7735777778, + -142082.633093333, + -163812.097555555, + -186292.996346667, + -204016.471791111, + -226436.997933333, + -228490.84028, + -223418.65856, + -215263.368751111, + -223122.363666667, + -227551.254297778, + -25584.1701724444, + -24185.0779951111, + -32139.3503288889, + -8668.51593866667, + -4793.09010088889, + -3493.52487288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1468.93688453333, + -12591.0089968889, + -29632.1269733333, + -58937.4796577778, + -86917.5647777778, + -93834.6291422222, + -102822.533977778, + -106731.809528889, + -112301.039853333, + -108354.2512, + -102364.756902222, + -87838.1011377778, + -42999.3934222222, + -24860.3431422222, + -16043.0350004444, + -3797.52753644444, + 0, + 0, + 0, + 0, + 0, + -122297.988524444, + -178637.685853333, + -243375.335871111, + -303870.781555556, + -307088.702355555, + -293997.215822222, + -317398.944044444, + -322858.858844444, + -346254.725644444, + -347048.948355555, + -354501.746711111, + -351550.520622222, + -271038.318048889, + -229865.343791111, + -203595.328604445, + -178744.94988, + -160303.450213333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -69427.0808666667, + -178879.762591111, + -263887.96908, + -285404.663915556, + -304418.824533333, + -325789.569955555, + -334590.495422222, + -345331.551644445, + -341293.031733333, + -348868.919955556, + -357063.188222222, + -327196.311288889, + -261247.984511111, + -241428.757551111, + -199012.57564, + -179123.304684444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -86421.6884577778, + -166713.501555556, + -268414.15932, + -277933.109008889, + -315757.745822222, + -326255.553022222, + -337313.126044444, + -346266.448488889, + -336738.706666667, + -330346.825733333, + -306593.412177778, + -294518.8824, + -257163.745506667, + -236766.875386667, + -201920.427204444, + -166477.579311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -84406.8245688889, + -185678.426226667, + -262307.729648889, + -277690.153057778, + -309225.190755556, + -320065.891155556, + -331340.3368, + -303240.678666667, + -311179.975066667, + -327609.541555555, + -346055.437288889, + -326706.882533333, + -253614.36128, + -232063.670195555, + -185213.322373333, + -173864.143595556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -68420.0885288889, + -169367.260466667, + -248502.028817778, + -268039.321368889, + -301948.235066667, + -323793.755688889, + -331498.5952, + -330628.174, + -338634.876755556, + -336700.607422222, + -275012.362315556, + -270089.939933333, + -211712.81224, + -194657.832, + -160589.194546667, + -136022.508657778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -47999.77272, + -146973.989937778, + -185451.882257778, + -209497.487711111, + -223396.092084444, + -240056.89168, + -221208.31624, + -236379.435377778, + -209223.759293333, + -212237.116457778, + -202823.379297778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6003.67893955556, + -15985.5344484444, + -18904.493408, + -33816.0101555556, + -53159.2896311111, + -77814.4829955556, + -91857.8644977778, + -99146.5430311111, + -94559.394, + -94704.4642, + -74931.8355466667, + -27895.3289546667, + -13270.758132, + -5574.76936844444, + 0, + 0, + 0, + 0, + 0, + 0, + -26330.8567493333, + -100679.011871111, + -187748.094413333, + -276938.132586667, + -281579.499773333, + -293830.165288889, + -300491.671644445, + -314526.847155556, + -332752.939555556, + -332550.720488889, + -335724.680622222, + -331785.804888889, + -293402.281466667, + -252236.927057778, + -216573.103546667, + -184701.034071111, + -164288.338111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -16240.9459217778, + -21624.427776, + -23746.1160848889, + -54473.4204933333, + -58602.4993777778, + -96110.32632, + -100804.153235556, + -120063.028231111, + -102751.610768889, + -96753.91048, + -87214.4458133333, + -44905.2348577778, + -29026.1438368889, + -8172.78615422222, + -7279.73986444445, + 0, + 0, + 0, + 0, + 0, + -126383.399813333, + -164170.816595555, + -255451.624075556, + -321449.1868, + -330540.252666667, + -347333.227333333, + -353604.949111111, + -340366.927022222, + -350337.206222222, + -363765.724533333, + -364703.552088889, + -359146.923822222, + -342227.928577778, + -278720.884155556, + -256441.325217778, + -230753.642328889, + -198576.192755556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -124013.91988, + -214423.133875556, + -295529.977733333, + -318796.893244444, + -317527.895333333, + -350586.316666667, + -357605.369777778, + -362452.765955555, + -363918.121511111, + -350984.893377778, + -372182.726844444, + -346814.491466667, + -292231.462377778, + -268606.413968889, + -237328.399635556, + -205988.547297778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -123184.821706667, + -231865.554124444, + -303141.034488889, + -317908.887777778, + -337512.4144, + -337374.670977778, + -370773.0548, + -359102.963155555, + -352459.041066667, + -362613.955066667, + -371579.000355556, + -338585.054666667, + -289180.592111111, + -265464.398586667, + -238945.859097778, + -209142.578595556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -110961.118733333, + -181360.316475556, + -215061.442755556, + -236706.209666667, + -253805.150573333, + -266925.065004444, + -250332.257906667, + -264052.381973333, + -264002.852955555, + -258391.420391111, + -264955.334066667, + -43229.4542444445, + -37520.1359288889, + -30371.5453866667, + -22709.9338644444, + -3878.79615555556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3987.81860888889, + -19383.6060604444, + -34159.4894977778, + -60264.5056488889, + -90603.5201422222, + -104457.870777778, + -117913.05856, + -120604.037502222, + -133146.894915556, + -130485.809226667, + -113042.216693333, + -108062.645444444, + -84887.4611911111, + -39952.9192222222, + -25004.7978928889, + -6550.81339688889, + -3447.83508666667, + 0, + 0, + 0, + 0, + -121755.806968889, + -146912.445004445, + -221777.167266667, + -288334.202742222, + -296755.014977778, + -295682.374711111, + -325109.644977778, + -328315.842933333, + -337491.899422222, + -347019.641244444, + -349759.856133333, + -353997.6644, + -314459.4408, + -261570.362733333, + -243873.55676, + -207587.836351111, + -179350.727866667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -78162.9445466667, + -185295.968426667, + -268563.625586667, + -273702.041377778, + -296250.932666667, + -308855.921155556, + -307569.338977778, + -322422.182888889, + -335923.968977778, + -330132.883822222, + -339563.912177778, + -304204.882622222, + -234325.886102222, + -207827.56852, + -182821.275964444, + -161362.609208889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -66331.0776488889, + -168130.500377778, + -244095.997733333, + -265277.712288889, + -295691.166844445, + -307853.617955556, + -315971.687733333, + -324664.176888889, + -322199.448844444, + -341208.041111111, + -347966.260933333, + -311437.877644444, + -261325.355284444, + -250926.313048889, + -222338.398444444, + -196963.422431111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -100108.695488889, + -185480.310155555, + -275173.551426667, + -283452.224173333, + -306455.668755556, + -321302.651244444, + -334329.662133333, + -353358.769377778, + -345826.841822222, + -354970.660488889, + -361775.771688889, + -315959.964888889, + -278677.802702222, + -230874.387626667, + -178669.630604445, + -163587.312013333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -92329.1228444444, + -183302.498728889, + -270403.526022222, + -286391.141275555, + -308867.644, + -331659.784311111, + -354457.786044444, + -359073.656044444, + -353637.186933333, + -362042.4664, + -357174.555244445, + -342157.591511111, + -270042.755484444, + -216463.494951111, + -199254.652377778, + -174029.435702222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -99660.8828311111, + -168359.975057778, + -195402.818764444, + -206943.95912, + -220071.786471111, + -247060.412022222, + -240883.645284444, + -253169.186262222, + -243572.279657778, + -246735.103088889, + -239954.02372, + -34308.0765511111, + -18444.6062204445, + -34816.5549288889, + -26634.2732706667, + -4862.07904044444, + -4277.37286666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -10832.4944088889, + -52230.54728, + -63113.1568488889, + -97764.1266, + -115067.338071111, + -118536.420813333, + -116851.554995556, + -124831.881351111, + -130776.82884, + -116125.324782222, + -93163.2032266667, + -76051.6602622222, + -37243.4768, + -23436.75022, + -7093.55178755556, + -9131.27522311111, + 0, + 0, + 0, + 0, + -123352.458382222, + -156938.700786667, + -222136.76552, + -296728.638577778, + -308568.711466667, + -312276.061022222, + -330285.2808, + -331123.464177778, + -335074.062755556, + -324672.969022222, + -339467.198711111, + -338432.657688889, + -325042.238622222, + -266949.096835556, + -249056.51936, + -214312.352995556, + -176965.715164444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -95283.8657866667, + -178065.904115556, + -251218.211875556, + -267306.35052, + -279352.745471111, + -302466.970933333, + -310590.902133333, + -321938.615555556, + -323852.369911111, + -338927.947866667, + -343203.855377778, + -313357.493422222, + -259234.292906667, + -217287.903986667, + -184661.762542222, + -154916.803191111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -67402.25256, + -167568.389986667, + -237306.712373333, + -243389.989426667, + -255018.758044444, + -273974.890582222, + -291963.888453333, + -307765.696622222, + -316598.859911111, + -336545.279733333, + -338453.172666667, + -316935.891688889, + -260723.973364444, + -240730.369093333, + -203765.309848889, + -179051.795333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -70289.5891466667, + -171559.432377778, + -253527.905302222, + -262625.125662222, + -278173.42732, + -302616.4372, + -319869.533511111, + -324256.808044444, + -329587.771555556, + -346395.399777778, + -353909.743066667, + -326235.038044445, + -268041.959008889, + -248628.928608889, + -214222.673235556, + -191838.780982222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -90844.4245955556, + -186157.890564444, + -271297.685982222, + -296661.232222222, + -306569.966488889, + -329576.048711111, + -330792.293822222, + -350870.595644445, + -342945.9528, + -349161.991066667, + -355542.149155556, + -332538.997644445, + -281974.26656, + -251517.144408889, + -215949.448222222, + -188008.634631111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -77191.9999555556, + -161481.303008889, + -193421.364982222, + -215149.364088889, + -238832.147506667, + -249671.968693333, + -242474.728346667, + -245037.928284444, + -230561.38768, + -224066.052644444, + -231966.077515555, + -4882.94570355556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4738.31511022222, + -17821.4198097778, + -22128.9203866667, + -37890.8708844444, + -41438.7897555555, + -57504.6549955556, + -79769.5603777778, + -90657.4452266667, + -96382.8824533333, + -101437.186835556, + -91478.63048, + -74694.1548755556, + -36989.3841466667, + -18854.4368622222, + -7195.51122711111, + -3240.31143288889, + 0, + 0, + 0, + 0, + 0, + -75832.7361422222, + -140157.448964445, + -208972.30428, + -280390.217204445, + -297077.3932, + -279210.605982222, + -302918.300444445, + -306783.9084, + -315863.251422222, + -317715.460844445, + -322310.815866667, + -336920.410755556, + -306669.610666667, + -249541.84512, + -231425.068244444, + -199262.565297778, + -175734.816497778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -78599.6205022222, + -164015.488906667, + -235085.233351111, + -253124.053311111, + -286758.066306667, + -324376.9672, + -317073.635111111, + -334933.388622222, + -334106.928088889, + -341378.022355556, + -338130.794444444, + -247943.728351111, + -201716.15664, + -178977.648342222, + -164871.549622222, + -147451.98892, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -86700.6921555556, + -176772.288231111, + -253849.404311111, + -266805.785062222, + -285305.898951111, + -313275.433511111, + -336902.826488889, + -337896.337555556, + -336181.871555556, + -353669.424755556, + -344938.836355556, + -319309.767688889, + -264538.293875556, + -235230.596622222, + -198950.737635556, + -177658.828342222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -85315.9311555556, + -172573.751493333, + -228052.698968889, + -220526.046693333, + -230612.968195556, + -249651.453715556, + -241197.231373333, + -262873.649964445, + -267855.858853333, + -279316.111582222, + -266173.337604444, + -220802.412751111, + -175832.116106667, + -153973.700355556, + -134088.239324444, + -110439.159084444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23090.164324, + -119372.259622222, + -192193.397026667, + -192013.744435556, + -196516.195915556, + -203927.671244444, + -193487.599053333, + -213194.286706667, + -219622.508457778, + -219376.621795555, + -218981.268866667, + -166353.024088889, + -132380.807031111, + -113280.483506667, + -86975.8859288889, + -72000.2452222222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5539.835292, + -52022.7598622222, + -57776.9180577778, + -58433.9834888889, + -66182.7836666667, + -113613.412288889, + -106482.406013333, + -104828.898804444, + -124988.088253333, + -150814.686848889, + -148963.35664, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7525.714448, + -24296.5915528889, + -40084.5081511111, + -55500.9278088889, + -63569.1754977778, + -87065.5656888889, + -91209.8842711111, + -69503.2793555556, + -28943.8201617778, + -12799.0601786667, + -3966.80541022222, + 0, + 0, + 0, + 0, + 0, + 0, + -60376.1657422222, + -123257.796413333, + -210793.155093333, + -297475.969911111, + -302880.2012, + -329142.303466667, + -336061.7124, + -337318.987466667, + -357441.249955555, + -369849.8808, + -358226.680533333, + -343672.769155556, + -330475.777022222, + -269133.941968889, + -244307.595075556, + -216666.886302222, + -185574.972124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -111190.007271111, + -196688.8148, + -281806.043742222, + -288327.462106667, + -320807.361066667, + -333796.272711111, + -335490.223733333, + -346099.397955556, + -353704.593288889, + -370043.307733333, + -364246.361155556, + -342383.256266667, + -287558.443511111, + -239057.812262222, + -205974.479884444, + -195091.284173333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -113458.377671111, + -196900.412142222, + -271198.041804444, + -296080.951422222, + -318389.5244, + -331850.280533333, + -354097.308577778, + -351588.619866667, + -347327.365911111, + -357007.504711111, + -365184.188711111, + -340006.449555555, + -277725.614662222, + -270250.249831111, + -230034.445822222, + -176784.304146667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -112215.170017778, + -203783.187186667, + -268007.083546667, + -277453.058528889, + -300582.523688889, + -324807.781733333, + -334836.675155555, + -362578.786533333, + -353156.550311111, + -358771.7928, + -367783.729466667, + -342096.046577778, + -267369.360808889, + -244544.689604444, + -213040.131302222, + -185223.579862222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -114703.929893333, + -193755.75912, + -270975.30776, + -285605.124555556, + -306792.700533333, + -318081.799733333, + -340657.067422222, + -336829.558711111, + -344472.853288889, + -318530.198533333, + -334974.418577778, + -336703.538133333, + -268332.39248, + -235011.379431111, + -202019.192168889, + -182228.686177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -100496.135497778, + -170495.584244444, + -189204.364764444, + -174478.713715556, + -204237.74048, + -224755.062826667, + -215672.496022222, + -223655.166946667, + -222577.544471111, + -219638.334297778, + -214212.415746667, + 0, + -4244.226524, + -8572.066236, + -4010.56092711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2620.31949733333, + -17762.659052, + -22344.9137955556, + -47292.8852, + -64604.0095911111, + -97797.5367066667, + -120155.345631111, + -121829.074746667, + -123623.842231111, + -120295.726693333, + -101416.378786667, + -95493.11856, + -54917.1301555556, + -34027.9005688889, + -23963.0473213333, + -7639.77772444444, + -4002.67731422222, + 0, + 0, + -19290.7904395556, + 0, + -122227.944528889, + -173705.885195555, + -258998.370662222, + -323987.182622222, + -333019.634266667, + -331911.825466667, + -346547.796755556, + -363079.938133333, + -366004.787822222, + -374788.129022222, + -372590.095688889, + -379231.087066667, + -329672.762177778, + -206535.417991111, + -230758.331466667, + -168310.152968889, + -161362.90228, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -77484.1918533333, + -168434.41512, + -254466.612071111, + -265955.292697778, + -303267.055066667, + -324409.205022222, + -346826.214311111, + -353865.7824, + -348086.420088889, + -364551.155111111, + -364510.125155556, + -271437.187831111, + -244666.607186667, + -235678.40928, + -209684.760151111, + -175734.523426667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -115490.825826667, + -199593.735653333, + -291757.566391111, + -294556.981644445, + -310116.126933333, + -318509.683555556, + -351559.312755556, + -347239.444577778, + -352494.2096, + -350093.9572, + -355627.139777778, + -346008.545911111, + -270678.133653333, + -231782.321928889, + -209130.855751111, + -182848.531577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -113887.726848889, + -210440.004404444, + -284569.70432, + -301414.845644445, + -322946.780177778, + -337178.313333333, + -347051.879066667, + -344367.347688889, + -349205.951733333, + -355252.008755556, + -364325.490355556, + -331841.4884, + -268021.737102222, + -248827.04468, + -223148.446995556, + -202850.34184, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -100601.934168889, + -188427.140177778, + -260682.650337778, + -270714.474471111, + -287684.464088889, + -298539.818044444, + -310787.259777778, + -323304.326933333, + -332234.203688889, + -342567.891066667, + -352250.960577778, + -292545.92768, + -233983.285973333, + -216843.901253333, + -189725.152128889, + -170202.806204444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -85960.3945288889, + -162440.231684444, + -176564.500813333, + -182577.733871111, + -195436.521942222, + -211794.872151111, + -204441.717973333, + -207877.097537778, + -214100.462582222, + -236985.213364444, + -229666.641577778, + -24677.0564693333, + -20906.5207822222, + -24716.8262191111, + -10472.2513991111, + -5053.77685422222, + -3915.63519422222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6409.14282177778, + -18757.9578524444, + -29705.6878222222, + -45869.7318844445, + -56495.0250177778, + -96723.7241555556, + -105257.66184, + -111248.914564445, + -113846.989964445, + -120285.176133333, + -93930.1703244445, + -87088.1321644444, + -50666.1336888889, + -29443.6822488889, + -7298.43780133333, + -7563.98953511111, + -3505.01326044444, + 0, + 0, + 0, + 0, + -134422.04732, + -169150.387844445, + -243996.353555556, + -293812.581022222, + -310221.632533333, + -316546.107111111, + -336073.435244444, + -328667.528266667, + -346497.974666667, + -345264.145288889, + -348048.320844444, + -370720.302, + -330868.492311111, + -279322.266075556, + -246268.826951111, + -226656.801266667, + -192843.428751111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -121138.013066667, + -200987.581857778, + -273425.089177778, + -287176.278782222, + -308217.026133333, + -322041.190444444, + -331401.881733333, + -350894.041333333, + -344264.7728, + -364035.349955556, + -368390.386666667, + -327146.4892, + -281413.035382222, + -246904.791262222, + -211012.079213333, + -192943.659071111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -110066.372631111, + -197034.931782222, + -274620.233168889, + -285231.458888889, + -309591.529644445, + -325742.678577778, + -336296.169288889, + -353297.224444445, + -366614.375733333, + -368548.645066667, + -372294.093866667, + -323993.044044444, + -276435.808702222, + -244941.507888889, + -228350.752288889, + -212317.124871111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -112219.273013333, + -197323.313755556, + -280219.063675556, + -297168.245244445, + -309670.658844444, + -326434.3264, + -352283.1984, + -358806.961333333, + -355961.240844444, + -364070.518488889, + -371142.3244, + -342670.465955556, + -285210.65084, + -254832.95096, + -228287.742, + -206701.29624, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -104689.690026667, + -201550.571462222, + -277750.818777778, + -304128.684133333, + -315807.567911111, + -331952.855422222, + -348540.680311111, + -339707.517022222, + -356986.989733333, + -352110.286444444, + -370283.626044444, + -322715.254, + -291270.775275556, + -261099.9836, + -217680.326204444, + -207707.116293333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -123890.830013333, + -197092.37372, + -212676.723124444, + -230995.132924444, + -252344.191084444, + -256691.021804444, + -253585.054168889, + -247259.407306667, + -261684.660466667, + -259548.465137778, + -256451.582706667, + -30729.9713555556, + -10074.6418226667, + -11336.3422631111, + -4157.36024666667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1804.02560084445, + -33814.5448, + -54723.4101511111, + -79554.1531111111, + -102433.042471111, + -107028.690564444, + -120306.863395556, + -111135.789115556, + -76173.2847733333, + -32786.4513422222, + -20028.3331977778, + -3430.54389111111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -123668.095968889, + -174758.010484444, + -242386.513942222, + -294565.773777778, + -298161.756311111, + -294498.367422222, + -311566.828933333, + -323981.3212, + -333649.737155556, + -332823.276622222, + -364346.005333333, + -361259.966533333, + -346093.536533333, + -291442.221875556, + -255189.911573333, + -228652.029391111, + -200261.058573333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -115489.360471111, + -210029.411777778, + -271135.324586667, + -287334.244111111, + -316765.910444444, + -337236.927555555, + -333321.497511111, + -345897.178888889, + -359481.024888889, + -353206.3724, + -357532.102, + -330660.411822222, + -270911.125186667, + -235277.194928889, + -202450.592844444, + -185604.572306667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -88124.7246844444, + -187382.341666667, + -243890.847955556, + -249671.675622222, + -252242.202337778, + -271341.060506667, + -271923.685875556, + -305573.524711111, + -317434.112577778, + -326698.0904, + -334247.602222222, + -302021.502844444, + -250154.070671111, + -219935.215333333, + -185747.297937778, + -168040.234475556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -104347.382968889, + -191717.156471111, + -255406.198053333, + -255294.53796, + -274262.686413333, + -286092.794884444, + -299043.900355556, + -327750.215688889, + -345149.847555556, + -342245.512844444, + -336952.648577778, + -317665.638755556, + -251441.238991111, + -205757.314191111, + -183180.288075556, + -162826.499408889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -23009.3646186667, + -114750.235128889, + -196257.121053333, + -204789.593382222, + -240155.363573333, + -245309.605204444, + -261407.415195556, + -283077.093151111, + -288423.003288889, + -302206.137644444, + -307891.7172, + -273251.004937778, + -215153.467084444, + -188469.049346667, + -159617.663813333, + -136766.030066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -37541.2370488889, + -124478.730662222, + -142542.461666667, + -160760.641146667, + -187882.907124444, + -209585.702115556, + -218905.65652, + -213862.195768889, + -206889.154822222, + -220224.47652, + -213899.122728889, + -19952.2812444445, + -17427.151244, + -22142.9291857778, + -9090.65556711111, + -4350.99232977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7772.27517377778, + -17812.1001484445, + -22307.7523786667, + -40931.7767333333, + -61520.6084311111, + -105122.556057778, + -111307.235715556, + -111349.731026667, + -115850.131008889, + -108744.62192, + -93060.6283377778, + -75527.9421866667, + -27677.1375124444, + -14019.2617497778, + -6958.70976933333, + 0, + 0, + 0, + 0, + 0, + 0, + -89744.5287155556, + -155012.930515556, + -217259.76916, + -285346.635835556, + -292606.886471111, + -300327.551822222, + -310236.286088889, + -316431.809377778, + -336858.865822222, + -331527.902311111, + -327269.579066667, + -333866.609777778, + -318263.503822222, + -258257.486893333, + -234713.912253333, + -208582.812773333, + -186181.922395556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -109261.306288889, + -191412.069444444, + -268313.049786667, + -295002.449733333, + -307962.054266667, + -315986.341288889, + -329236.086222222, + -337043.500622222, + -339616.664977778, + -338948.462844444, + -346093.536533333, + -317636.331644444, + -268170.324155556, + -234434.029342222, + -204713.981035556, + -174277.960004444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -61278.8247644444, + -154554.860368889, + -219315.663004444, + -233312.4462, + -261219.849684444, + -281008.89032, + -281864.071822222, + -291111.637662222, + -300263.076177778, + -304014.3864, + -316704.365511111, + -296435.567466667, + -235511.651817778, + -201952.665026667, + -167908.938617778, + -143504.614124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -70999.1143066667, + -157788.90008, + -220898.540075556, + -219222.17332, + -222587.508888889, + -241424.654555555, + -249293.90696, + -263118.071271111, + -256984.385986667, + -258750.139431111, + -253207.871648889, + -211445.824457778, + -167314.004262222, + -146437.376733333, + -128070.903271111, + -112490.949933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -30212.9939155555, + -125641.050688889, + -186602.47944, + -203003.031888889, + -217029.122195556, + -229695.069475556, + -243926.30956, + -253189.70124, + -264778.612186667, + -277032.794555556, + -259817.504417778, + -217762.386115556, + -168613.188497778, + -147062.204342222, + -126973.938102222, + -113723.313955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -22398.3406591111, + -104299.026235556, + -117561.666297778, + -119726.582595556, + -120597.883008889, + -131793.199453333, + -118326.581897778, + -123189.510844444, + -125930.898017778, + -123825.475155556, + -122271.612124444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6614.937356, + -13624.465656, + -35288.3994177778, + -46633.4752, + -44799.4361866667, + -36194.2822222222, + -21334.6097542222, + -3191.60301422222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8514.94667644444, + -11919.2020888889, + -25755.9391506667, + -44637.6609333333, + -53084.2634266667, + -70284.6069377778, + -76173.2847733333, + -85885.9544666667, + -98265.8643422222, + -93985.8538355555, + -74944.4376044445, + -34179.7114044445, + -21983.0588946667, + -7380.46840533333, + -3472.01345333333, + 0, + 0, + 0, + 0, + 0, + 0, + -125797.843733333, + -162012.054791111, + -234216.277506667, + -282656.829177778, + -297071.531777778, + -299029.2468, + -300283.591155556, + -322375.291511111, + -329177.472, + -331372.574622222, + -335847.770488889, + -316235.451733333, + -310945.518177778, + -248216.284484444, + -215078.733951111, + -190460.760617778, + -174872.308217778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -95474.9481511111, + -179611.854226667, + -272487.261622222, + -286243.726506667, + -299169.920933333, + -316856.762488889, + -348567.056711111, + -354639.490133333, + -358068.422133333, + -343171.617555555, + -345947.000977778, + -316144.599688889, + -270396.785386667, + -228049.768257778, + -202321.055413333, + -175575.092742222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -90708.4396, + -178193.390048889, + -264411.101013333, + -289749.150066667, + -293076.972533333, + -321768.634311111, + -333787.480577778, + -333790.411288889, + -348487.927511111, + -344270.634222222, + -369814.712266667, + -314858.017511111, + -262319.159422222, + -230816.359546667, + -195714.353355556, + -166809.042737778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -57897.0772133333, + -150819.669057778, + -238830.096008889, + -264536.242377778, + -286276.550471111, + -320775.123244444, + -325927.313377778, + -322762.145377778, + -324769.682488889, + -323937.360533333, + -332876.029422222, + -305060.650266667, + -242678.998911111, + -223975.786742222, + -188883.158826667, + -165867.112186667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -55418.8678977778, + -136430.170573333, + -178298.016435556, + -211233.934044444, + -220284.263026667, + -243224.404248889, + -226032.5598, + -219949.575817778, + -201273.03312, + -191576.189266667, + -176464.563564445, + -1474.64004835556, + -8050.45827244445, + -3631.26829511111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4456.17555155556, + -20460.5544724444, + -26795.6968386667, + -43305.0665911111, + -45983.7365466667, + -53688.8691288889, + -75098.88608, + -59770.0946844445, + -27613.6876168889, + -7244.42479555556, + -3372.63303955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -68657.4761288889, + -115558.232182222, + -191081.19216, + -267440.577088889, + -281334.199253333, + -306168.459066667, + -332656.226088889, + -325678.202933333, + -334625.663955556, + -339308.940311111, + -355858.665955556, + -352271.475555555, + -310831.220444444, + -225711.646933333, + -203365.853924444, + -173042.3722, + -148992.37068, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -65272.7978666667, + -136098.414075556, + -238233.989368889, + -241104.620902222, + -266003.942502222, + -291880.070115555, + -310561.595022222, + -316865.554622222, + -321358.334755556, + -325467.191733333, + -323371.733288889, + -282045.775911111, + -229133.545226667, + -190566.266217778, + -158023.943111111, + -137709.425973333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -18831.8117724444, + -104911.251786667, + -171882.103671111, + -162591.163306667, + -176409.173124444, + -197864.616097778, + -191332.647173333, + -218719.849435555, + -224195.883146667, + -240014.68944, + -236025.405475556, + -188367.939813333, + -139971.348808889, + -110713.473644444, + -78478.5821333333, + -59033.6069822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -168.485409493333, + -31562.00024, + -69478.6613822222, + -109839.535591111, + -142605.471955555, + -169863.722928889, + -177935.1944, + -203154.256582222, + -210366.736626667, + -225169.465377778, + -230225.235115556, + -191383.934617778, + -146808.111688889, + -112933.487311111, + -91882.7755422222, + -66923.3743644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2108.05757151111, + -36401.4834977778, + -113089.694213333, + -137884.389426667, + -178177.85728, + -208984.320195556, + -224341.246417778, + -249745.236471111, + -264762.493275555, + -287607.972528889, + -285241.423306667, + -247078.582431111, + -197942.279942222, + -169194.348511111, + -145229.337613333, + -122453.023142222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -53310.2212533333, + -136413.758591111, + -148898.880995555, + -149168.213346667, + -147009.451542222, + -167675.360942222, + -170744.98776, + -175733.058071111, + -186711.208822222, + -163701.316675556, + -164899.098306667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12625.4741595556, + -25424.0654244444, + -38299.7050844445, + -50727.3855511111, + -52215.6006533333, + -42215.7212711111, + -50527.2179822222, + -13084.1011413333, + -5692.34949822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4239.06847244445, + -43961.54588, + -115937.759271111, + -180460.588164444, + -193632.376182222, + -215197.13468, + -238052.578351111, + -241567.087115556, + -272222.91148, + -272695.04904, + -254250.325591111, + -274458.457915556, + -217121.146524445, + -164393.257568889, + -122731.147626667, + -92330.0020577778, + -72305.3322488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4158.03431022222, + -47813.6725644445, + -108807.632208889, + -135705.112644445, + -160573.075635556, + -197226.89336, + -209160.749004444, + -234969.177191111, + -238328.651337778, + -241137.444866667, + -248910.569946667, + -216783.528604444, + -159587.77056, + -124983.399115556, + -100441.038128889, + -81000.7521155556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4244.13860266667, + -42478.3129866667, + -125077.474942222, + -147276.439324445, + -178693.955506667, + -209508.917484444, + -213098.745524444, + -238680.922813333, + -236663.714355556, + -237617.953893333, + -246138.996448889, + -207704.478653333, + -157566.752177778, + -124068.138035556, + -100750.228151111, + -82122.6283288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9120.78327733333, + -72327.0195111111, + -156840.521964445, + -179678.088297778, + -204257.962386667, + -233897.416137778, + -234591.994671111, + -251987.230471111, + -252535.273448889, + -245891.35136, + -214565.566435555, + -173145.533231111, + -131186.835324444, + -105150.690884444, + -87869.4597466667, + -75486.9122311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3313.90158888889, + -43578.7950088889, + -126544.881995556, + -146824.523671111, + -179410.514373333, + -207266.044271111, + -213252.900928889, + -229727.600368889, + -251219.970302222, + -255941.345902222, + -253345.322, + -213691.335311111, + -157697.461893333, + -121851.641222222, + -99684.9146622222, + -71727.98216, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2786.12447844444, + -36368.9526044444, + -58702.4366266667, + -95848.0276755556, + -135418.489097778, + -158045.337302222, + -158569.055377778, + -171444.255431111, + -183201.389195556, + -185806.791373333, + -181057.867088889, + -17874.2605311111, + -12087.0146071111, + -7678.08211866667, + -2964.61943866667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3475.94060622222, + -9956.91515733333, + -28800.5670026667, + -41984.7812355556, + -46765.9433422222, + -58516.0434, + -68480.1681066667, + -80103.0753022222, + -76978.3511155556, + -41886.6024133333, + -23667.5144128889, + -11596.0032675556, + -3028.97785466667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -31232.5883111111, + -106162.37236, + -165932.760115556, + -243270.709484444, + -257300.023573333, + -271208.885435555, + -287540.273102222, + -294061.691466667, + -290295.727688889, + -304873.084755556, + -302009.78, + -316628.167022222, + -281965.767497778, + -227844.61848, + -188166.893031111, + -163406.194066667, + -145749.538835555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -49249.7210088889, + -139403.963137778, + -208977.872631111, + -219464.8362, + -238080.127035555, + -243792.669133333, + -267214.326191111, + -274930.302404444, + -277685.46392, + -296626.063688889, + -286700.624368889, + -261894.499382222, + -209764.182422222, + -175098.559115556, + -155345.273155556, + -140887.782173333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -85429.9358177778, + -164254.634933333, + -228501.683911111, + -222904.611831111, + -232595.887333333, + -247103.200404444, + -234525.7606, + -256178.440431111, + -256436.929151111, + -259087.757351111, + -274582.133924444, + -232182.657066667, + -181801.681568889, + -146427.119244444, + -133883.382617778, + -128625.979955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -38044.4401466667, + -135699.837364445, + -209576.32384, + -229328.144444444, + -239765.872066667, + -242874.184271111, + -234992.329808889, + -237348.328471111, + -196994.194897778, + -195666.875835556, + -187191.552373333, + -121840.211448889, + -75842.70056, + -51390.8985466667, + -34413.5821511111, + -24753.9290217778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -30702.4226711111, + -54978.0889466667, + -63116.9667733333, + -83408.3312933333, + -129501.969506667, + -133990.646644444, + -160467.863106667, + -175860.250933333, + -194440.373235556, + -193601.017573333, + -147028.794235556, + -109636.730382222, + -90463.7252222222, + -68435.9143688889, + -55155.3969688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2375.83078431111, + -29012.7504871111, + -30577.8674488889, + -31602.4440533333, + -30420.7813333333, + -37759.5750266667, + -28374.2950715556, + -24407.1086688889, + -23467.1416942222, + -21134.9697133333, + -21661.7943426667, + -181.930632857778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -32593.0244088889, + -108561.745546667, + -186219.142426667, + -211707.243888889, + -224505.659311111, + -251772.995488889, + -251440.652848889, + -276373.970697778, + -280582.764924444, + -285847.787435555, + -296995.333288889, + -248085.281697778, + -183935.239257778, + -155345.859297778, + -128603.120408889, + -101920.461097778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -31255.4478577778, + -51000.2347555556, + -77975.9651777778, + -126062.780017778, + -174417.168782222, + -152038.551808889, + -181607.668493333, + -181937.373493333, + -183590.880702222, + -188115.312515556, + -146243.656728889, + -96278.8422088889, + -64449.8541866667, + -28556.2922315556, + -13343.2639248889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -781.679267555556, + -13640.8776382222, + -45825.1850755556, + -39332.7807511111, + -35818.2719866667, + -54326.8849377778, + -71413.8099288889, + -128300.964093333, + -143727.055097778, + -170797.154417778, + -167830.39556, + -120551.870844444, + -80668.9956177778, + -59618.8699911111, + -29498.1934755556, + -24503.411836, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 72.8319810355556, + -32759.4888, + -36817.9375466667, + -30635.3093866667, + -44940.4033911111, + -81404.6041066667, + -119462.818595556, + -157580.52652, + -170987.943711111, + -187592.766724444, + -183252.090497778, + -134066.258991111, + -87216.20424, + -48660.9411466667, + -19896.6563475556, + -7984.400044, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2864.6352984, + -21574.4591515556, + -51948.3198, + -33723.9858266667, + -45348.94452, + -65259.9027377778, + -79076.7402711111, + -125009.775515556, + -141462.787693333, + -165055.305208889, + -165920.451128889, + -127300.126248889, + -82725.7686755556, + -50931.6561155555, + -25141.8379444444, + -9108.76736177778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2999.84658622222, + -17525.6817515556, + -19652.3815764444, + -13798.6964315556, + -28776.6524, + -40636.3610533333, + -44393.2396266667, + -50213.0457511111, + -60941.2068444444, + -77590.2835955556, + -92378.06572, + -3919.44511866667, + -5287.47175822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3374.68453733333, + -10327.1225848889, + -18755.5253622222, + -31229.6576, + -36299.7878222222, + -42502.0517466667, + -37973.8100088889, + -23639.2916648889, + -11343.9328048889, + -2482.93362186667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6108.89146844445, + -18822.8437964444, + -29517.82924, + -36640.6295244444, + -43583.7772177778, + -56359.9192355556, + -59068.7755155556, + -56106.1196533333, + -33530.5588933333, + -13631.0011417778, + -3298.48604844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -17009.6714462222, + -52549.1155777778, + -113742.363577778, + -201000.770057778, + -211859.933937778, + -233494.736431111, + -273507.735231111, + -296371.091822222, + -299334.040755556, + -317346.191244444, + -313562.6432, + -319939.870577778, + -274668.882973333, + -221928.39196, + -170914.382862222, + -144918.975306667, + -117111.216, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -19722.2790364444, + -80679.5461777778, + -169052.795164445, + -187906.645884444, + -220408.525177778, + -255611.347831111, + -271866.537008889, + -295401.026444444, + -301350.37, + -291658.801426667, + -262139.506831111, + -186542.106791111, + -135511.685711111, + -93505.2172133333, + -65993.4597288889, + -38543.83332, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -24677.9649897778, + -41936.1314311111, + -40524.4078888889, + -70290.1752888889, + -96098.3104044444, + -116449.461431111, + -149747.321862222, + -161341.80116, + -171501.111226667, + -176386.89972, + -142003.210822222, + -93065.9036177778, + -49457.8014977778, + -23648.7871688889, + -10769.8944195556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5626.99464044444, + -14090.2142657778, + -41678.2288533333, + -45072.2853911111, + -40857.3366711111, + -62537.8582577778, + -75652.2043377778, + -112647.156835556, + -140863.750342222, + -160462.001684444, + -177246.77036, + -135867.180968889, + -87816.7069466667, + -51495.2318622222, + -22560.7020546667, + -10624.677684, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2687.03420506667, + -16208.3857213333, + -5999.60525111111, + -12787.27872, + -32052.3082088889, + -44730.2714044444, + -48020.5807688889, + -52154.9349333333, + -61699.3818088889, + -76085.9495822222, + -86027.5078133333, + -1512.24693333333, + -2534.47310746667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4976.90430177778, + -11600.4286413333, + -17537.4339031111, + -24497.2866497778, + -28636.4764875556, + -21038.9010031111, + -11344.5482542222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1088.90864404445, + -48149.2389866667, + -110713.766715556, + -144337.229151111, + -186959.733124444, + -222816.397426667, + -235746.694848889, + -248504.666457778, + -254856.396648889, + -255827.927382222, + -256534.814902222, + -213225.645315556, + -153947.030884445, + -130347.186591111, + -103809.890551111, + -89334.5222311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3973.60466, + -48118.7595911111, + -134712.18772, + -160792.878968889, + -192193.397026667, + -230675.685413333, + -247764.954973333, + -263910.828626667, + -259263.306946667, + -268471.015115556, + -263784.514977778, + -221440.42856, + -171224.452097778, + -148018.788448889, + -130180.136057778, + -117984.567911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -25741.3149022222, + -111139.012897778, + -194589.546431111, + -204204.330373333, + -214433.684435556, + -234489.712853333, + -243949.755248889, + -258412.22844, + -271792.97616, + -273621.153751111, + -286539.142186667, + -236428.964395556, + -187644.933382222, + -165139.416617778, + -146575.120155556, + -134290.16532, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -33090.9522266667, + -113479.18572, + -193121.846306667, + -197643.933551111, + -200263.989284445, + -212455.747506667, + -207522.481493333, + -223756.27648, + -235741.126497778, + -230133.210786667, + -238356.200022222, + -197321.262257778, + -132410.993355555, + -101502.248622222, + -72394.4258666667, + -48484.5123377778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -29313.2656044444, + -37226.4786755555, + -32369.9972933333, + -45037.703, + -81455.0123377778, + -86484.6987466667, + -128269.898555556, + -132026.190986667, + -146515.040577778, + -141832.936506667, + -100174.050346667, + -52159.331, + -24141.6741635556, + -7873.67777822222, + -5063.65335066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5413.72679288889, + -12632.9474728889, + -11696.9955724445, + -11351.7578035556, + -16604.998856, + -34257.3752488889, + -38523.9044844444, + -42931.4009244445, + -49990.3117066667, + -66240.8117466667, + -73333.4257066667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4188.89469822222, + -14015.7742035556, + -17399.5439453333, + -23690.7842591111, + -25411.0530671111, + -23485.1948746667, + -14475.5734697778, + -1899.90967626667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1214.17016764445, + -41616.9769911111, + -72215.94556, + -72083.4774177778, + -105559.818155556, + -117731.354471111, + -110763.588804444, + -123192.441555556, + -130695.648142222, + -132194.120733333, + -127112.853808889, + -78398.57372, + -33876.3828044445, + -21000.1570022222, + -12816.820288, + -9659.828972, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -24989.8512662222, + -53197.3888755556, + -27971.7619004444, + -28471.9170586667, + -27672.8293671111, + -29601.3545066667, + -28784.6239342222, + -26464.9953968889, + -27390.7484226667, + -28618.2474644444, + -24108.4692066667, + -31137.9263422222, + -18698.6988737778, + -17147.5027897778, + -6098.42882977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12359.0139053333, + 16607.2848106667, + -26800.6497404444, + -29886.8057688889, + -46424.2224266667, + -41149.5285688889, + -37537.7201955556, + -38708.2462133333, + -44204.20876, + -53035.6136222222, + -59939.1967155555, + -45191.8584044444, + -36552.1220488889, + -14521.1753346667, + -3569.48890488889, + 3624.99657333333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2407.40333511111, + 44439.8379333333, + 30160.8272577778, + -4842.38466177778, + -32202.94676, + -46214.9696533333, + -43212.45612, + -55770.5532311111, + -67485.1916844445, + -105042.254573333, + -109381.758515556, + -70802.7566622222, + -24365.5218782222, + -8903.00213466667, + -4112.95997333333, + -6095.17574044444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2661.15602595556, + 7250.22760355556, + -43691.3343155556, + -33557.8145066667, + -19939.767108, + -23022.4648973333, + -42411.7858444444, + -92671.7229733333, + -118804.58088, + -133103.520391111, + -139231.637324445, + -82964.6216311111, + -45261.0231866667, + -26849.1823164444, + -17169.3952017778, + -9341.17275288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -15900.6610546667, + -12487.2618235556, + -8816.10655022222, + -9842.03128177778, + -9988.53753022222, + -16673.9584884444, + -17772.7993124444, + -8624.76042177778, + -7907.08788488889, + -8636.65910888889, + -651.473634311111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12188.3879044444, + 21551.1306911111, + -24874.4984768889, + -35069.1822266667, + -32432.7145111111, + -42689.9103288889, + -36594.0312177778, + -50754.6411644445, + -47822.4646977778, + -25986.9084933333, + -26051.178988, + -38567.8651511111, + -10239.4650155556, + -145.443279524444, + 6868.23871733333, + 11501.956748, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -6407.882616, + 37713.2697911111, + 12165.4111293333, + -120.776363315556, + -27610.8741342222, + -37044.4815155556, + -34725.7028844444, + -48920.8952222222, + -60039.1339644445, + -94924.2675333333, + -111131.393048889, + -72664.9305022222, + -25736.5378431111, + -11839.1936755556, + -5603.54895155556, + -25773.6699528889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1314.59391457778, + 20242.2751088889, + -26684.3005093333, + -27622.4504431111, + -36425.2222577778, + -23012.2074084444, + -43998.7659111111, + -80688.3383111111, + -120584.694808889, + -142415.268804444, + -162145.695217778, + -113301.584626667, + -68173.6157244445, + -47929.1425822222, + -23815.0757173333, + -14498.7260875555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -23498.9106026667, + -30784.4825822222, + -27171.6777671111, + -75171.2746444445, + -126849.38288, + -136613.046946667, + -179952.695928889, + -183191.717848889, + -187066.70408, + -183715.142853333, + -131066.676168889, + -84490.6429066667, + -58364.5256355555, + -37124.783, + -22241.6062288889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -22919.4504017778, + -33279.6900222222, + -45258.6786177778, + -103257.451506667, + -139707.87788, + -149239.136555556, + -164159.093751111, + -174986.019808889, + -177311.832146667, + -173722.004106667, + -133848.507155556, + -87684.5318755556, + -69254.4619822222, + -51042.4369955556, + -36065.6240044444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -15697.0352466667, + -17413.69928, + -18500.4655742222, + -18274.0681408889, + -21118.4405026667, + -16521.7080462222, + -13222.8116982222, + -12846.5083915556, + -14510.9471528889, + -34426.47728, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12091.9382017778, + -14338.5627253333, + -20078.3311293333, + -18449.764272, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -597.566134133333, + -21087.9318, + -47723.4066622222, + -77298.67784, + -115648.498084444, + -139636.954671111, + -140188.221431111, + -158967.045946667, + -163476.824204444, + -166680.38452, + -154744.184306667, + -92452.2127111111, + -44983.7779155556, + -21004.9340613333, + -8477.28703866667, + -3765.87585644444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -483.608363288889, + 1088.97018897778, + -31577.82608, + -28504.97548, + -47222.2550622222, + -59938.3175022222, + -76097.9654977778, + -119455.198746667, + -130175.44692, + -135026.946093333, + -126040.213542222, + -60685.6488355556, + -20187.1484328889, + -7747.30551511111, + -9985.81196888889, + -18691.4600173333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5615.41833155556, + 36579.3776622222, + -29886.2196266667, + -19199.2057173333, + -43802.9944088889, + -60027.7041911111, + -76471.9242355556, + -124128.510684445, + -141213.384177778, + -151136.772, + -150049.478177778, + -96115.0154577778, + -45090.1627288889, + -26463.7351911111, + -10776.4885195556, + -4371.39007911111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -1980.99659128889, + 5340.92792888889, + -25956.2825622222, + -29438.1138977778, + -18932.5403133333, + -35461.6044444444, + -35082.3704266667, + -87115.97392, + -99405.3248222222, + -113063.317813333, + -124865.291457778, + -69019.12588, + -34471.6102311111, + -23259.6473475555, + -8150.51274977778, + -4565.02216222222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -4478.74202711111, + 2053.0862232, + -6590.70037511111, + -9891.06207866667, + -27693.8718728889, + -42438.4553155555, + -46675.67744, + -50161.4652355556, + -57320.8994088889, + -65863.6292266667, + -55015.6020488889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7456.46174444445, + -12287.5631684445, + -14360.8068226667, + -13025.8092973333, + -8249.83454933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -22148.7026866667, + 20250.1587217778, + -2867.63341586667, + -24594.3518017778, + -11214.6005235556, + -35568.5754, + -21572.202504, + -23631.7597373333, + -26041.8300195555, + -26242.5544235556, + -27500.3570182222, + -20067.1065057778, + -9136.14020355555, + -26814.0430902222, + -9473.55297377778, + 6533.46358711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8863.49614888889, + 41993.2802977778, + 0, + -23922.1052871111, + -37395.8737777778, + -48563.3484666667, + -55495.0663866667, + -73353.0614711111, + -115348.100195556, + -121385.072013333, + -117149.022173333, + -57821.7579377778, + -16802.1184853333, + -6125.86028577778, + -5807.73159466667, + -24731.3332391111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3655.82765422222, + 39571.3406355556, + -21967.0865191111, + -17883.726728, + -44345.7621066667, + -58721.4862488889, + -74157.5416711111, + -119588.546102222, + -135447.796208889, + -141071.53776, + -132060.480306667, + -69048.4329911111, + -24706.1877377778, + -7135.84194888889, + -4217.61566711111, + -1873.73842604444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -3568.87345555556, + 768.074906577778, + -33505.3547777778, + -37662.2754177778, + -42206.9291377778, + -25946.4939871111, + -25450.2366746667, + -27776.8403044444, + -31209.1426222222, + -38253.69292, + -62631.0548711111, + -30136.2092844444, + -9994.83855911111, + -5340.10732977778, + -7142.67050577778, + -16037.9355631111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13230.4901613333, + 26480.0006377778, + -43435.4832355556, + -29968.5726088889, + -19585.3269062222, + -20637.8624946667, + -39129.9755422222, + -62032.01752, + -98871.0561866667, + -108096.348622222, + -107629.193271111, + -51347.2309511111, + -15854.7661186667, + -4370.12987333333, + -8652.98316977778, + -32930.9354, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2823.74601697778, + 28674.575732, + 27883.4302675556, + 6589.58670488889, + -5122.50202977778, + -23630.2064604444, + -31655.1968533333, + -38467.6348311111, + -44336.6769022222, + -46787.0444622222, + -40042.5989822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -270.676375226667, + 57.7865894044444, + -14219.4000115556, + -18936.7019231111, + -23641.0793986667, + -26827.6122826667, + -11899.3025604444, + -30381.5098044444, + -30796.4984977778, + -26684.6521946667, + -19816.58932, + 16060.6485742222, + 7518.94450533333, + 20621.2160555556, + 29893.8394755556, + 36279.5659155555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 30700.6642444444, + 97398.0807822222, + 30332.5669288889, + 22511.7591791111, + 2594.70215151111, + -2285.53557497778, + -20929.2924075556, + -42813.5863377778, + -45704.4397777778, + -29523.10452, + -39551.9979422222, + 2310.23267751111, + -3378.553076, + 19042.1489088889, + 33206.1291733333, + 44225.30988, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 53672.4571466667, + 111845.314275556, + 35717.7485955556, + 9175.70480355556, + 4947.421348, + -3716.05376755556, + -10449.4211595556, + -39129.3894, + -21167.2661497778, + -26353.5111462222, + -37165.2268133333, + -29127.986048, + 0, + -6475.55273555556, + 15675.3186773333, + 29008.3837275556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 29671.6915733333, + 10261.1229706667, + -8959.71139466667, + -13829.8498906667, + -28296.338156, + -26299.2343764444, + -28020.7340831111, + -29577.9088177778, + -38930.1010444444, + -34534.9135911111, + -39692.9651466667, + -8473.00820044445, + -12931.7334706667, + 11100.4786328889, + 25615.177096, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14914.3302302222, + 81785.0104088889, + 51623.89008, + 19461.7974328889, + 6081.43070533333, + 9135.87643955556, + -7438.20341422222, + -22975.426984, + -28827.8812302222, + -26860.1724831111, + -23380.6271022222, + -100.321758186667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -481.937857955556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -1076.73447008889, + -27352.5026426667, + -22908.2257782222, + -39291.7507955556, + -95627.0520577778, + -113601.982515556, + -145072.83764, + -152635.537662222, + -160070.165608889, + -161685.573573333, + -113807.425364444, + -72497.2938266667, + -52253.4068266667, + -35533.6999377778, + -19847.0980226667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -18886.8798342222, + -42030.5003288889, + -20401.1782653333, + -15121.2677417778, + -34832.3807688889, + -39502.1758533333, + -83455.5157422222, + -91633.6650977778, + -96569.8618222222, + -89365.0016266667, + -37819.9476755556, + -6842.00885288889, + -3463.07478444445, + -8888.583036, + -25974.8925777778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2905.18168662222, + 38215.0075333333, + 7987.91689733333, + -13397.1597022222, + -27209.8063186667, + -26608.4243986667, + -20778.3607853333, + -19929.0993195556, + -18404.7485493333, + -18620.2437373333, + -21114.5133497778, + -18309.8521235556, + -9693.854528, + -19303.1580404445, + -13415.2714968889, + -2223.73566977778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -8140.43110355556, + 39755.0962222222, + 17005.7442933333, + 5619.90231955556, + -2260.34611297778, + -10098.7908822222, + -901.554144133333, + -17946.9714737778, + -22709.8459431111, + -22719.839668, + -21045.8467884444, + 14746.8107831111, + 20168.6263386667, + 9234.14318311111, + 21741.7734488889, + 31421.0330355556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 42876.3035555556, + 108029.82148, + 37853.9439244444, + 13984.2983662222, + 9877.9618, + -4001.47572266667, + -14528.12112, + -40716.3694666667, + -44801.7807555556, + -20369.0576715556, + -17720.8964186667, + -12528.3210862222, + -6713.37994222222, + 7250.98958844445, + 25233.3054382222, + 36532.4862844444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48481.2885555555, + 109591.597431111, + 83941.7207155556, + 58593.1211022222, + 39927.7151066667, + 23956.3946071111, + 29062.8656471111, + 29697.4818311111, + 12803.1631742222, + 10702.0777644444, + 16986.6360568889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 23436.3692275556, + 101629.148413333, + 148742.381022222, + 67144.3499822222, + 31942.1134711111, + 2197.50287462222, + 0, + -15527.0833093333, + -38940.3585333333, + -24047.7155653333, + -31560.2418133333, + -27083.3461342222, + -24681.2473862222, + -6528.83306355556, + 8937.08630488889, + 26813.0173413333, + 37089.3213955555, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 38477.0131066667, + 102320.210093333, + 25617.6682004444, + 11518.5445728889, + -320.062960444444, + -25100.1925395556, + -32350.6546, + -39675.6739511111, + -44564.1000844444, + -40762.3816311111, + -36485.5949066667, + -18570.6854124445, + -3054.32850577778, + -19845.3982102222, + -7314.41017688889, + 153.318393351111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -2376.08575617778, + 23050.5411097778, + 12945.7129626667, + -7557.65919911111, + -20419.4365955556, + -21591.6038115556, + -38242.2631466667, + -34660.0549555556, + -19026.9971324444, + -18959.8545408889, + -22565.4204995556, + -30673.9947733333, + -24277.3953951111, + -7509.77137955556, + 1839.27619408889, + 6698.52123688889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5224.28562666667, + 58564.9862755556, + 35495.8937644444, + -1655.71989577778, + -4975.87855288889, + -30088.4386933333, + -45219.4070888889, + -41187.3347422222, + -42826.1883955556, + -50383.6131377778, + -47863.4946533333, + -27620.9264733333, + -4211.08018133333, + -16034.0377173333, + -14587.1749488889, + 4860.17407822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6317.76324933333, + 51304.4425688889, + 27619.0215111111, + -4403.95027955556, + -6104.96431555556, + -31418.6884666667, + -44785.9549155556, + -39232.8435022222, + -41628.4067644444, + -46920.3918177778, + -40876.0932222222, + -43217.4383288889, + -5062.97928711111, + -11109.8862155556, + 8802.91835022222, + 25675.9893515556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17669.3159031111, + 84128.1139422222, + 59027.1594177778, + 29730.3057955556, + 10059.0504395556, + 4786.43738666667, + -5851.04750488889, + -14845.5171333333, + -24647.2511373333, + -26459.7201168889, + -16966.2676146667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -7936.04331066667, + -8369.26102711111, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -13606.9693106667, + 38096.3137333333, + 18734.0432497778, + -18870.4971591111, + -13746.7642306667, + -40696.7337022222, + -49684.6385377778, + -99798.6262533333, + -112439.076346667, + -142072.375604444, + -138252.486742222, + -77831.7741911111, + -28477.4267955556, + -16417.99018, + -2494.91436888889, + -1910.30197786667, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -11038.1717146667, + -46561.3797066667, + -24760.7868857778, + -28510.8955164444, + -86800.9224755556, + -120247.956102222, + -164354.865253333, + -164341.677053333, + -160511.530702222, + -159084.274391111, + -99789.2479777778, + -61130.5307822222, + -43087.0216844444, + -24543.0350502222, + -17196.9731933333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -778.1565528, + -19905.214024, + -53630.2549066667, + -88953.8228577778, + -133233.643964444, + -141618.701524444, + -142930.780888889, + -150570.265542222, + -148036.958857778, + -144477.903284444, + -141595.841977778, + -82222.8586488889, + -41170.6296888889, + -24629.6082564444, + -7616.53718533333, + -3630.24254622222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -5148.17505911111, + 11311.9587466667, + -32257.1649155556, + -40792.5679555556, + -31288.2718222222, + -24670.1399911111, + -33017.3913777778, + -32626.1414444444, + -32031.7932311111, + -43884.7612488889, + -40115.5736888889, + -26358.3761266667, + -9408.78425822222, + -18226.7957706667, + -11019.4151635556, + -857.754666577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -9354.88848088889, + 39109.1674933333, + 28895.6978853333, + -2744.71353044445, + -8712.94551911111, + -18400.3817897778, + -39187.1244088889, + -43785.1170711111, + -22641.6482955555, + -23809.8297444444, + -23378.194612, + -29349.6064222222, + 0, + 11417.4936537778, + 19459.3063284444, + 16220.8998577778, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5979.17819466667, + 50191.0654177778, + 44647.33228, + 28346.453316, + 16952.5518866667, + 9022.80960488889, + 11554.7388551111, + 3305.93005466667, + -344.288218488889, + 328.309981511111, + -3054.79741955555, + -217.35736184, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20973.0772315556, + 92140.3850488889, + 149047.468048889, + 67067.8584222222, + 39552.8771555556, + 6897.92682088889, + -2339.17638044444, + 6671.08978088889, + -25310.0607622222, + -33598.25832, + -38766.5673644444, + -36206.88428, + 0, + 1197.61751128889, + 15578.165604, + 33707.8669155555, + 44548.5673155556, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 47254.7859555556, + 109941.231266667, + 34553.084, + 8150.835128, + 7671.42940444444, + -13771.7925035556, + -27705.5947173333, + -24327.8329333333, + -30963.25596, + -46981.9367511111, + -44144.1291822222, + -25807.0507524444, + -16401.109284, + -12831.4738435556, + 6574.52284977778, + 23918.7642764444, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14380.4425871111, + 74172.4882977778, + 40339.4800177778, + 11365.1804604444, + -6702.30185422222, + -13663.6785706667, + -26282.2069448889, + -24631.1029191111, + -24929.9475311111, + -30465.3281422222, + -29012.2522662222, + -14967.6105582222, + -21474.3753671111, + -7618.85244711111, + -5669.98817244444, + 11288.9233573333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11120.6126182222, + 76817.4550755556, + 50630.6720844444, + 11615.1408111111, + 19441.4876048889, + 8770.09438577778, + 13155.7277208889, + -5481.33829822222, + -11460.8388711111, + -14292.6970964444, + -10607.0641102222, + 20729.1541457778, + 15974.1339822222, + 27234.3949848889, + 34257.0821777778, + 39180.0907022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7254.97535555556, + 66132.9615777778, + 43034.2688844444, + 23440.9118297778, + 10673.0637244444, + -973.157278, + -2146.8807016, + -26067.4737417778, + -30182.51452, + -29877.7205644444, + -37012.5367644444, + 0, + 10681.6214008889, + 5653.69341866667, + 16174.7411577778, + 23593.7484142222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 48121.6903022222, + 39818.6926533333, + 27173.4068866667, + 20271.9045982222, + 8953.61551555556, + 11266.1224248889, + 3444.02516222222, + 2798.84376466667, + 6142.21365377778, + 8322.57479911111, + -150.739367573333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 11525.1093657778, + 60229.3371155556, + 112483.037013333, + 49611.37076, + 25463.0145751111, + -719.647836177778, + 3686.57081377778, + -8337.93172533333, + -33542.86788, + -30704.76724, + -20687.8897333333, + -31062.3139955556, + -5298.28608222222, + 1531.89442062222, + 16252.4636164444, + 34206.0878044444, + 43642.9775822222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 36461.8561466667, + 96058.7458044444, + 29876.8413511111, + 20499.2398591111, + 2563.98243764444, + -21246.981492, + -28307.416244, + -31195.0752088889, + -45564.3517866667, + -42909.7136622222, + -36861.019, + -20486.7843368889, + -5884.13523333333, + -19734.0018808889, + -13262.581448, + 9840.82969022222, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8322.545492, + 71167.3371244444, + 35873.9554977778, + 14789.6870866667, + -3574.96933466667, + -16252.9325302222, + -12563.07932, + -18959.8545408889, + -2224.51230822222, + -1919.73593693333, + -17072.9454991111, + -30390.88808, + -3970.46879911111, + -3283.598036, + 10150.2834764444, + 20394.4669368889, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 10593.2604608889, + 52404.63152, + 35691.3721955556, + 14469.3603622222, + 0, + -20827.5381177778, + -23855.9591373333, + -14165.2111631111, + -11747.5503391111, + -12604.0506613333, + -15097.9978955556, + -14427.8321857778, + -5895.94599911111, + -16316.1479688889, + -6108.18809777778, + 5555.133604, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + -12618.6162955556, + 34125.78632, + 27918.4229582222, + 15448.0127235556, + 8667.78326088889, + -639.012250666667, + 3682.17474711111, + 6657.57920266667, + 10344.7947728889, + 13405.4243075556, + 18355.4246813333, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } +} From 21b27bb000b1e1de768ff0ad7142e7c6037915ea Mon Sep 17 00:00:00 2001 From: Nathan Moore Date: Wed, 19 Apr 2023 11:26:42 -0600 Subject: [PATCH 40/58] pre-commit now with more modelica-fmt --- .../model_connectors/districts/district.py | 2 +- .../districts/templates/BorefieldSystem.mot | 61 ++-- .../model_connectors/plants/borefield.py | 30 +- .../plants/templates/BorefieldOneUTube.mot | 304 +++++++++--------- .../plants/templates/BorefieldTwoUTubes.mot | 304 +++++++++--------- .../plants/templates/Borefield_Instance.mopt | 2 +- .../templates/GroundTemperatureResponse.mo | 202 ++++++------ .../data/system_params_ghe_2.json | 12 +- tests/model_connectors/test_borefield.py | 6 +- .../data/system_params_ghe_2.json | 12 +- 10 files changed, 455 insertions(+), 480 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/districts/district.py b/geojson_modelica_translator/model_connectors/districts/district.py index 5e8e9e24d..85c1557d6 100644 --- a/geojson_modelica_translator/model_connectors/districts/district.py +++ b/geojson_modelica_translator/model_connectors/districts/district.py @@ -133,7 +133,7 @@ def to_modelica(self): # render the full district file if 'fifth_generation' in common_template_params['sys_params']['district_system']: - if common_template_params['sys_params']['ghe_parameters']: + if common_template_params['sys_params']['ghe_parameters']: final_result = render_template('BorefieldSystem.mot', district_template_params) else: final_result = render_template('DistrictEnergySystem5G.mot', district_template_params) diff --git a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot index 68bfdb073..5405a67cc 100644 --- a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot +++ b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot @@ -1,57 +1,44 @@ within {{ district_within_path }}; -model DistrictEnergySystem "Borefield model with one GHE component." +model DistrictEnergySystem + "Borefield model with one GHE component." extends Modelica.Icons.Example; - - replaceable package MediumW = Buildings.Media.Water constrainedby - Modelica.Media.Interfaces.PartialMedium + replaceable package MediumW=Buildings.Media.Water + constrainedby Modelica.Media.Interfaces.PartialMedium "Medium in the component" - annotation (choices( - choice(redeclare package Medium = Buildings.Media.Water "Water"), - choice(redeclare package Medium = - Buildings.Media.Antifreeze.PropyleneGlycolWater ( - property_T=293.15, - X_a=0.40) - "Propylene glycol water, 40% mass fraction"))); - + annotation (choices(choice(redeclare package Medium=Buildings.Media.Water "Water"),choice(redeclare package Medium=Buildings.Media.Antifreeze.PropyleneGlycolWater(property_T=293.15,X_a=0.40) "Propylene glycol water, 40% mass fraction"))); // Models - {% for model in models %} - // + {% for model in models %}// // Begin Model Instance for {{ model.id }} // Source template: {{ model.instance_template_path }} // - {{ model.instance }} - // + {{ model.instance }} // // End Model Instance for {{ model.id }} // - {% endfor %} - - // Model dependencies - {% for coupling in couplings %} - // + {% endfor %} // Model dependencies + {% for coupling in couplings %} // // Begin Component Definitions for {{ coupling.id }} // Source template: {{ coupling.coupling_definitions_template_path }} // - {{ coupling.component_definitions }} - // - // End Component Definitions for {{ coupling.id }} - // - {% endfor %} - -equation + {{ coupling.component_definitions }} // +// End Component Definitions for {{ coupling.id }} +// +{% endfor %} equation // Connections - {% for coupling in couplings %} - // + {% for coupling in couplings %} // // Begin Connect Statements for {{ coupling.id }} // Source template: {{ coupling.connect_statements_template_path }} // - {{ coupling.connect_statements }} // // End Connect Statements for {{ coupling.id }} // - {% endfor %} - - - annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( - coordinateSystem(preserveAspectRatio=false)), - experiment(StopTime=172800, __Dymola_Algorithm="Cvode")); + {% endfor %} annotation ( + Icon( + coordinateSystem( + preserveAspectRatio=false)), + Diagram( + coordinateSystem( + preserveAspectRatio=false)), + experiment( + StopTime=172800, + __Dymola_Algorithm="Cvode")); end DistrictEnergySystem; diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 3dfddabf5..58fdbb447 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -2,17 +2,13 @@ # See also https://github.com/urbanopt/geojson-modelica-translator/blob/develop/LICENSE.md import os -import shutil from pathlib import Path from geojson_modelica_translator.model_connectors.plants.plant_base import ( PlantBase ) from geojson_modelica_translator.modelica.input_parser import PackageParser -from geojson_modelica_translator.utils import ( - ModelicaPath, - simple_uuid -) +from geojson_modelica_translator.utils import ModelicaPath, simple_uuid class Borefield(PlantBase): @@ -35,7 +31,7 @@ def to_modelica(self, scaffold): template_data = { "gfunction": { "gfunction_file_path": self.system_parameters.get_param( - "$.ghe_parameters.placeholder.gfunction_file_path" + "$.ghe_parameters.placeholder.gfunction_file_path" ), "gfunction_file_rows": self.system_parameters.get_param( "$.ghe_parameters.placeholder.gfunction_file_rows" @@ -98,20 +94,20 @@ def to_modelica(self, scaffold): ), }, } - + # process nominal mass flow rate if template_data["configuration"]["flow_type"] == "system": - template_data["configuration"]["nominal_mass_flow_per_borehole"] = template_data["configuration"]["nominal_mass_flow_per_borehole"]/template_data["configuration"]["number_of_boreholes"] + template_data["configuration"]["nominal_mass_flow_per_borehole"] = template_data["configuration"]["nominal_mass_flow_per_borehole"] / template_data["configuration"]["number_of_boreholes"] # process tube thickness if template_data["tube"]["outer_diameter"] and template_data["tube"]["inner_diameter"]: - template_data["tube"]["thickness"] = (template_data["tube"]["outer_diameter"]-template_data["tube"]["inner_diameter"])/2 + template_data["tube"]["thickness"] = (template_data["tube"]["outer_diameter"] - template_data["tube"]["inner_diameter"]) / 2 else: template_data["tube"]["thickness"] = None # process shank spacing if template_data["tube"]["shank_spacing"] and template_data["tube"]["outer_diameter"]: - template_data["tube"]["shank_spacing"] = (template_data["tube"]["shank_spacing"]+template_data["tube"]["outer_diameter"])/2 + template_data["tube"]["shank_spacing"] = (template_data["tube"]["shank_spacing"] + template_data["tube"]["outer_diameter"]) / 2 else: template_data["tube"]["shank_spacing"] = None @@ -121,7 +117,7 @@ def to_modelica(self, scaffold): # create borefield package paths b_modelica_path = ModelicaPath(self.borefield_name, scaffold.plants_path.files_dir, True) - + if template_data["configuration"]["borehole_configuration"] == "singleutube": plant_template = oneutube_template template_data["configuration"]["borehole_configuration"] = "Buildings.Fluid.Geothermal.Borefields.Types.BoreholeConfiguration.SingleUTube" @@ -131,9 +127,8 @@ def to_modelica(self, scaffold): template_data["configuration"]["borehole_configuration"] = "Buildings.Fluid.Geothermal.Borefields.Types.BoreholeConfiguration.DoubleUTubeSeries" template_data["configuration"]["borehole_type"] = "Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube" else: - raise ValueError( - f"The type of geothermal heat exchanger pipe arrangement is not supported.") - + raise ValueError("The type of geothermal heat exchanger pipe arrangement is not supported.") + self.run_template( plant_template, os.path.join(b_modelica_path.files_dir, "Borefield.mo"), @@ -146,12 +141,12 @@ def to_modelica(self, scaffold): self.copy_required_mo_files( dest_folder=scaffold.plants_path.files_dir, within=f'{scaffold.project_name}.Plants') - + # Borefield_ package subpackage_models = ['Borefield'] borefield_package = PackageParser.new_from_template( - path=b_modelica_path.files_dir, - name=self.borefield_name, + path=b_modelica_path.files_dir, + name=self.borefield_name, order=subpackage_models, within=f"{scaffold.project_name}.Plants" ) @@ -176,6 +171,5 @@ def to_modelica(self, scaffold): plants_package.add_model(model_name) plants_package.save() - def get_modelica_type(self, scaffold): return f'{scaffold.project_name}.Plants.{self.borefield_name}.Borefield' diff --git a/geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot index 3578b5021..0b1b10108 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldOneUTube.mot @@ -1,112 +1,104 @@ within {{ project_name }}.Plants.{{ model_name }}; {% raw %}model Borefield "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" - extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( - redeclare package Medium = Medium, // need to be able to change the medium in the future + redeclare package Medium=Medium, + // need to be able to change the medium in the future final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); - extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( final dp_nominal=borFieDat.conDat.dp_nominal, final computeFlowResistance=(borFieDat.conDat.dp_nominal > Modelica.Constants.eps)); - - replaceable package Medium = Buildings.Media.Water "Medium in the component" - annotation (choices( - choice(redeclare package Medium = Buildings.Media.Water "Water"), - choice(redeclare package Medium = - Buildings.Media.Antifreeze.PropyleneGlycolWater ( - property_T=293.15, - X_a=0.40) - "Propylene glycol water, 40% mass fraction"))); - - constant Real mSenFac(min=1)=1 + replaceable package Medium=Buildings.Media.Water + "Medium in the component" + annotation (choices(choice(redeclare package Medium=Buildings.Media.Water "Water"),choice(redeclare package Medium=Buildings.Media.Antifreeze.PropyleneGlycolWater(property_T=293.15,X_a=0.40) "Propylene glycol water, 40% mass fraction"))); + constant Real mSenFac( + min=1)=1 "Factor for scaling the sensible thermal mass of the volume"; - // Assumptions parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial "Type of energy balance: dynamic (3 initialization options) or steady state" - annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Conservation equations")); - + annotation (Evaluate=true,Dialog(tab="Dynamics",group="Conservation equations")); // Initialization - parameter Medium.AbsolutePressure p_start = Medium.p_default + parameter Medium.AbsolutePressure p_start=Medium.p_default "Start value of pressure" - annotation(Dialog(tab = "Initialization")); - + annotation (Dialog(tab="Initialization")); // Simulation parameters parameter Modelica.Units.SI.Time tLoaAgg=300 "Time resolution of load aggregation"; - parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; - parameter Integer nSeg(min=1)=10 + parameter Integer nCel( + min=1)=5 + "Number of cells per aggregation level"; + parameter Integer nSeg( + min=1)=10 "Number of segments to use in vertical discretization of the boreholes"; - parameter Boolean forceGFunCalc = false + parameter Boolean forceGFunCalc=false "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" annotation (Dialog(tab="Advanced")); - {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("{{ghe_data["gfunction"]["gfunction_file_path"]}}") - {% raw %} "File name of g-function data file in MAT format"; - {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction"]["gfunction_file_rows"]}} - {% raw %} "Total length of g-function vector"; - + {% endraw %}parameter String gFunFilNam=Modelica.Utilities.Files.loadResource( + "{{ghe_data["gfunction"]["gfunction_file_path"]}}") + {% raw %} "File name of g-function data file in MAT format"; + {% endraw %}parameter Integer nTimTot={{ghe_data["gfunction"]["gfunction_file_rows"]}} + {% raw %} "Total length of g-function vector"; // General parameters of borefield parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( - {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, - cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/1450{% raw %}, - dFil=1450), + {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, + cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/1450 {% raw %}, + dFil=1450), final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( - {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, - cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/2600{% raw %}, - dSoi=2600), + {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, + cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/2600 {% raw %}, + dSoi=2600), final conDat=Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( - dp_nominal=35000, - {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, - mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, - hBor={{ghe_data["configuration"]["borehole_height"]}}, - rBor={{ghe_data["configuration"]["borehole_diameter"]}}/2, - dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, - nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, - rTub={{ghe_data["tube"]["outer_diameter"]}}/2, - kTub={{ghe_data["tube"]["conductivity"]}}, - eTub={{ghe_data["tube"]["thickness"]}}, - xC={{ghe_data["tube"]["shank_spacing"]}}{% raw %})) - "Borefield data" + dp_nominal=35000, + {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, + mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, + hBor={{ghe_data["configuration"]["borehole_height"]}}, + rBor={{ghe_data["configuration"]["borehole_diameter"]}}/2, + dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, + nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, + rTub={{ghe_data["tube"]["outer_diameter"]}}/2, + kTub={{ghe_data["tube"]["conductivity"]}}, + eTub={{ghe_data["tube"]["thickness"]}}, + xC={{ghe_data["tube"]["shank_spacing"]}} {% raw %})) + "Borefield data" annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); - // Temperature gradient in undisturbed soil {% endraw %}parameter Modelica.Units.SI.Temperature TExt0_start={{ghe_data["soil"]["initial_ground_temperature"]}}+273.15 - {% raw %} "Initial far field temperature" - annotation (Dialog(tab="Initialization", group="Soil")); - parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then - TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg} + {% raw %} "Initial far field temperature" + annotation (Dialog(tab="Initialization",group="Soil")); + parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={ + if z[i] >= z0 then + TExt0_start+(z[i]-z0)*dT_dz + else + TExt0_start for i in 1:nSeg} "Temperature of the undisturbed ground" - annotation (Dialog(tab="Initialization", group="Soil")); - + annotation (Dialog(tab="Initialization",group="Soil")); parameter Modelica.Units.SI.Temperature TGro_start[nSeg]=TExt_start "Start value of grout temperature" - annotation (Dialog(tab="Initialization", group="Filling material")); - + annotation (Dialog(tab="Initialization",group="Filling material")); parameter Modelica.Units.SI.Temperature TFlu_start[nSeg]=TGro_start - "Start value of fluid temperature" annotation (Dialog(tab="Initialization")); - + "Start value of fluid temperature" + annotation (Dialog(tab="Initialization")); parameter Modelica.Units.SI.Height z0=10 "Depth below which the temperature gradient starts" - annotation (Dialog(tab="Initialization", group="Temperature profile")); - parameter Real dT_dz(unit="K/m")=0.01 + annotation (Dialog(tab="Initialization",group="Temperature profile")); + parameter Real dT_dz( + unit="K/m")=0.01 "Vertical temperature gradient of the undisturbed soil for h below z0" - annotation (Dialog(tab="Initialization", group="Temperature profile")); - + annotation (Dialog(tab="Initialization",group="Temperature profile")); // Dynamics of filling material parameter Boolean dynFil=false "Set to false to remove the dynamics of the filling material." annotation (Dialog(tab="Dynamics")); - - Modelica.Blocks.Interfaces.RealOutput TBorAve(final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit = "degC", - start=TExt0_start) + Modelica.Blocks.Interfaces.RealOutput TBorAve( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + start=TExt0_start) "Average borehole wall temperature in the borefield" annotation (Placement(transformation(extent={{100,34},{120,54}}))); - - {% endraw %}{{ project_name }}.Plants.GroundTemperatureResponse groTemRes( + {% endraw %}{{ project_name }}.Plants.GroundTemperatureResponse groTemRes( {% raw %}final tLoaAgg=tLoaAgg, final nCel=nCel, final borFieDat=borFieDat, @@ -115,125 +107,116 @@ within {{ project_name }}.Plants.{{ model_name }}; final nTimTot=nTimTot) "Ground temperature response" annotation (Placement(transformation(extent={{20,70},{40,90}}))); - - replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol constrainedby - Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( - redeclare final package Medium = Medium, - final borFieDat=borFieDat, - final nSeg=nSeg, - final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, - final dp_nominal=dp_nominal, - final allowFlowReversal=allowFlowReversal, - final m_flow_small=m_flow_small, - final show_T=show_T, - final computeFlowResistance=computeFlowResistance, - final from_dp=from_dp, - final linearizeFlowResistance=linearizeFlowResistance, - final deltaM=deltaM, - final energyDynamics=energyDynamics, - final p_start=p_start, - final mSenFac=mSenFac, - final dynFil=dynFil, - final TFlu_start=TFlu_start, - final TGro_start=TGro_start) "Borehole" + replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube borHol + constrainedby Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( + redeclare final package Medium=Medium, + final borFieDat=borFieDat, + final nSeg=nSeg, + final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, + final dp_nominal=dp_nominal, + final allowFlowReversal=allowFlowReversal, + final m_flow_small=m_flow_small, + final show_T=show_T, + final computeFlowResistance=computeFlowResistance, + final from_dp=from_dp, + final linearizeFlowResistance=linearizeFlowResistance, + final deltaM=deltaM, + final energyDynamics=energyDynamics, + final p_start=p_start, + final mSenFac=mSenFac, + final dynFil=dynFil, + final TFlu_start=TFlu_start, + final TGro_start=TGro_start) + "Borehole" annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); - protected - parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i - - 0.5) for i in 1:nSeg} + parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i-0.5) for i in 1:nSeg} "Distance from the surface to the considered segment"; - Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloDiv( - redeclare final package Medium = Medium, + redeclare final package Medium=Medium, allowFlowReversal=allowFlowReversal, final k=1/borFieDat.conDat.nBor) - "Division of flow rate" + "Division of flow rate" annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); - Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloMul( - redeclare final package Medium = Medium, + redeclare final package Medium=Medium, allowFlowReversal=allowFlowReversal, - final k=borFieDat.conDat.nBor) "Mass flow multiplier" + final k=borFieDat.conDat.nBor) + "Mass flow multiplier" annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); - - Modelica.Blocks.Math.Gain gaiQ_flow(k=borFieDat.conDat.nBor) + Modelica.Blocks.Math.Gain gaiQ_flow( + k=borFieDat.conDat.nBor) "Gain to multiply the heat extracted by one borehole by the number of boreholes" annotation (Placement(transformation(extent={{-20,70},{0,90}}))); - Buildings.Utilities.Math.Average AveTBor(nin=nSeg) + Buildings.Utilities.Math.Average AveTBor( + nin=nSeg) "Average temperature of all the borehole segments" annotation (Placement(transformation(extent={{50,34},{70,54}}))); - Modelica.Blocks.Sources.Constant TSoiUnd[nSeg]( - k = TExt_start, - each y(unit="K", - displayUnit="degC")) + k=TExt_start, + each y( + unit="K", + displayUnit="degC")) "Undisturbed soil temperature" annotation (Placement(transformation(extent={{-40,14},{-20,34}}))); - Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor QBorHol[nSeg] "Heat flow rate of all segments of the borehole" - annotation (Placement(transformation(extent={{-10,10},{10,-10}}, - rotation=90, - origin={0,-10}))); - + annotation (Placement(transformation(extent={{-10,10},{10,-10}},rotation=90,origin={0,-10}))); Buildings.HeatTransfer.Sources.PrescribedTemperature TemBorWal[nSeg] "Borewall temperature" annotation (Placement(transformation(extent={{50,6},{70,26}}))); - - Modelica.Blocks.Math.Add TSoiDis[nSeg](each final k1=1, each final k2=1) + Modelica.Blocks.Math.Add TSoiDis[nSeg]( + each final k1=1, + each final k2=1) "Addition of undisturbed soil temperature and change of soil temperature" annotation (Placement(transformation(extent={{10,20},{30,40}}))); - Modelica.Blocks.Math.Sum QTotSeg_flow( final nin=nSeg, - final k = ones(nSeg)) + final k=ones( + nSeg)) "Total heat flow rate for all segments of this borehole" annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); - - Modelica.Blocks.Routing.Replicator repDelTBor(final nout=nSeg) + Modelica.Blocks.Routing.Replicator repDelTBor( + final nout=nSeg) "Signal replicator for temperature difference of the borehole" annotation (Placement(transformation(extent={{60,70},{80,90}}))); - equation - connect(masFloMul.port_b, port_b) - annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}}, - color={0,127,255})); - connect(masFloDiv.port_a, port_a) - annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}}, - color={0,127,255})); - connect(masFloDiv.port_b, borHol.port_a) - annotation (Line(points={{-60,-40},{-10,-40}}, color={0,127,255})); - connect(borHol.port_b, masFloMul.port_a) - annotation (Line(points={{10,-40},{60,-40}}, color={0,127,255})); - connect(QBorHol.port_a, borHol.port_wall) - annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}}, - color={191,0,0})); - connect(QBorHol.Q_flow, QTotSeg_flow.u) - annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}}, - color={0,0,127})); - connect(groTemRes.delTBor, repDelTBor.u) - annotation (Line(points={{41,80},{58,80}}, color={0,0,127})); - connect(TSoiDis.u1, repDelTBor.y) annotation (Line(points={{8,36},{0,36},{0, - 60},{90,60},{90,80},{81,80}}, - color={0,0,127})); - connect(TSoiDis.u2, TSoiUnd.y) annotation (Line(points={{8,24},{-19,24}}, - color={0,0,127})); - connect(QTotSeg_flow.y, gaiQ_flow.u) - annotation (Line(points={{-39,80},{-22,80}}, color={0,0,127})); - connect(gaiQ_flow.y, groTemRes.QBor_flow) - annotation (Line(points={{1,80},{19,80}}, color={0,0,127})); - connect(TSoiDis.y, TemBorWal.T) - annotation (Line(points={{31,30},{36,30},{36,16},{48,16}}, - color={0,0,127})); - connect(QBorHol.port_b, TemBorWal.port) annotation (Line(points={{4.44089e-16, - 0},{0,0},{0,4},{80,4},{80,16},{70,16}}, color={191,0,0})); - connect(TSoiDis.y, AveTBor.u) annotation (Line(points={{31,30},{36,30},{36,44}, - {48,44}}, color={0,0,127})); - connect(AveTBor.y, TBorAve) - annotation (Line(points={{71,44},{110,44}}, color={0,0,127})); + connect(masFloMul.port_b,port_b) + annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}},color={0,127,255})); + connect(masFloDiv.port_a,port_a) + annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}},color={0,127,255})); + connect(masFloDiv.port_b,borHol.port_a) + annotation (Line(points={{-60,-40},{-10,-40}},color={0,127,255})); + connect(borHol.port_b,masFloMul.port_a) + annotation (Line(points={{10,-40},{60,-40}},color={0,127,255})); + connect(QBorHol.port_a,borHol.port_wall) + annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}},color={191,0,0})); + connect(QBorHol.Q_flow,QTotSeg_flow.u) + annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}},color={0,0,127})); + connect(groTemRes.delTBor,repDelTBor.u) + annotation (Line(points={{41,80},{58,80}},color={0,0,127})); + connect(TSoiDis.u1,repDelTBor.y) + annotation (Line(points={{8,36},{0,36},{0,60},{90,60},{90,80},{81,80}},color={0,0,127})); + connect(TSoiDis.u2,TSoiUnd.y) + annotation (Line(points={{8,24},{-19,24}},color={0,0,127})); + connect(QTotSeg_flow.y,gaiQ_flow.u) + annotation (Line(points={{-39,80},{-22,80}},color={0,0,127})); + connect(gaiQ_flow.y,groTemRes.QBor_flow) + annotation (Line(points={{1,80},{19,80}},color={0,0,127})); + connect(TSoiDis.y,TemBorWal.T) + annotation (Line(points={{31,30},{36,30},{36,16},{48,16}},color={0,0,127})); + connect(QBorHol.port_b,TemBorWal.port) + annotation (Line(points={{4.44089e-16,0},{0,0},{0,4},{80,4},{80,16},{70,16}},color={191,0,0})); + connect(TSoiDis.y,AveTBor.u) + annotation (Line(points={{31,30},{36,30},{36,44},{48,44}},color={0,0,127})); + connect(AveTBor.y,TBorAve) + annotation (Line(points={{71,44},{110,44}},color={0,0,127})); annotation ( - Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), - graphics={ + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ Rectangle( extent={{-100,60},{100,-66}}, lineColor={0,0,0}, @@ -299,8 +282,12 @@ equation lineColor={0,0,0}, fillColor={0,0,255}, fillPattern=FillPattern.Forward)}), - Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, - 100}})),Documentation(info=" + Diagram( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Documentation( + info="

This model simulates a borefield containing one or multiple boreholes using the parameters in the borFieDat record. @@ -322,7 +309,8 @@ Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperature which uses a cell-shifting load aggregation technique to calculate the borehole wall temperature after calculating and/or read (from a previous calculation) the borefield's thermal response factor.

-", revisions=" +", + revisions="
  • April 9, 2021, by Michael Wetter:
    diff --git a/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot index d46795386..d5a62615a 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot +++ b/geojson_modelica_translator/model_connectors/plants/templates/BorefieldTwoUTubes.mot @@ -1,112 +1,104 @@ within {{ project_name }}.Plants.{{ model_name }}; {% raw %}model Borefield "Borefield model using single U-tube borehole heat exchanger configuration.Calculates the average fluid temperature T_fts of the borefield for a given (time dependent) load Q_flow" - extends Buildings.Fluid.Interfaces.PartialTwoPortInterface( - redeclare package Medium = Medium, // need to be able to change the medium in the future + redeclare package Medium=Medium, + // need to be able to change the medium in the future final m_flow_nominal=borFieDat.conDat.mBorFie_flow_nominal); - extends Buildings.Fluid.Interfaces.TwoPortFlowResistanceParameters( final dp_nominal=borFieDat.conDat.dp_nominal, final computeFlowResistance=(borFieDat.conDat.dp_nominal > Modelica.Constants.eps)); - - replaceable package Medium = Buildings.Media.Water "Medium in the component" - annotation (choices( - choice(redeclare package Medium = Buildings.Media.Water "Water"), - choice(redeclare package Medium = - Buildings.Media.Antifreeze.PropyleneGlycolWater ( - property_T=293.15, - X_a=0.40) - "Propylene glycol water, 40% mass fraction"))); - - constant Real mSenFac(min=1)=1 + replaceable package Medium=Buildings.Media.Water + "Medium in the component" + annotation (choices(choice(redeclare package Medium=Buildings.Media.Water "Water"),choice(redeclare package Medium=Buildings.Media.Antifreeze.PropyleneGlycolWater(property_T=293.15,X_a=0.40) "Propylene glycol water, 40% mass fraction"))); + constant Real mSenFac( + min=1)=1 "Factor for scaling the sensible thermal mass of the volume"; - // Assumptions parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial "Type of energy balance: dynamic (3 initialization options) or steady state" - annotation(Evaluate=true, Dialog(tab = "Dynamics", group="Conservation equations")); - + annotation (Evaluate=true,Dialog(tab="Dynamics",group="Conservation equations")); // Initialization - parameter Medium.AbsolutePressure p_start = Medium.p_default + parameter Medium.AbsolutePressure p_start=Medium.p_default "Start value of pressure" - annotation(Dialog(tab = "Initialization")); - + annotation (Dialog(tab="Initialization")); // Simulation parameters parameter Modelica.Units.SI.Time tLoaAgg=300 "Time resolution of load aggregation"; - parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; - parameter Integer nSeg(min=1)=10 + parameter Integer nCel( + min=1)=5 + "Number of cells per aggregation level"; + parameter Integer nSeg( + min=1)=10 "Number of segments to use in vertical discretization of the boreholes"; - parameter Boolean forceGFunCalc = false + parameter Boolean forceGFunCalc=false "Set to true to force the thermal response to be calculated at the start instead of checking whether this has been pre-computed" annotation (Dialog(tab="Advanced")); - {% endraw %}parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("{{ghe_data["gfunction"]["gfunction_file_path"]}}") - {% raw %} "File name of g-function data file in MAT format"; - {% endraw %}parameter Integer nTimTot = {{ghe_data["gfunction"]["gfunction_file_rows"]}} - {% raw %} "Total length of g-function vector"; - + {% endraw %}parameter String gFunFilNam=Modelica.Utilities.Files.loadResource( + "{{ghe_data["gfunction"]["gfunction_file_path"]}}") + {% raw %} "File name of g-function data file in MAT format"; + {% endraw %}parameter Integer nTimTot={{ghe_data["gfunction"]["gfunction_file_rows"]}} + {% raw %} "Total length of g-function vector"; // General parameters of borefield parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat( final filDat=Buildings.Fluid.Geothermal.Borefields.Data.Filling.Bentonite( - {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, - cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/1450{% raw %}, - dFil=1450), + {% endraw %}kFil={{ghe_data["fill"]["conductivity"]}}, + cFil={{ghe_data["fill"]["volumetric_heat_capacity"]}}/1450 {% raw %}, + dFil=1450), final soiDat=Buildings.Fluid.Geothermal.Borefields.Data.Soil.SandStone( - {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, - cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/2600{% raw %}, - dSoi=2600), + {% endraw %}kSoi={{ghe_data["soil"]["conductivity"]}}, + cSoi={{ghe_data["soil"]["volumetric_heat_capacity"]}}/2600 {% raw %}, + dSoi=2600), final conDat=Buildings.Fluid.Geothermal.Borefields.Data.Configuration.Example( - dp_nominal=35000, - {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, - mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, - hBor={{ghe_data["configuration"]["borehole_height"]}}, - rBor={{ghe_data["configuration"]["borehole_diameter"]}}/2, - dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, - nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, - rTub={{ghe_data["tube"]["outer_diameter"]}}/2, - kTub={{ghe_data["tube"]["conductivity"]}}, - eTub={{ghe_data["tube"]["thickness"]}}, - xC={{ghe_data["tube"]["shank_spacing"]}}{% raw %})) - "Borefield data" + dp_nominal=35000, + {% endraw %}borCon={{ghe_data["configuration"]["borehole_configuration"]}}, + mBor_flow_nominal={{ghe_data["configuration"]["nominal_mass_flow_per_borehole"]}}, + hBor={{ghe_data["configuration"]["borehole_height"]}}, + rBor={{ghe_data["configuration"]["borehole_diameter"]}}/2, + dBor={{ghe_data["configuration"]["borehole_buried_depth"]}}, + nBor={{ghe_data["configuration"]["number_of_boreholes"]}}, + rTub={{ghe_data["tube"]["outer_diameter"]}}/2, + kTub={{ghe_data["tube"]["conductivity"]}}, + eTub={{ghe_data["tube"]["thickness"]}}, + xC={{ghe_data["tube"]["shank_spacing"]}} {% raw %})) + "Borefield data" annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); - // Temperature gradient in undisturbed soil {% endraw %}parameter Modelica.Units.SI.Temperature TExt0_start={{ghe_data["soil"]["initial_ground_temperature"]}}+273.15 - {% raw %} "Initial far field temperature" - annotation (Dialog(tab="Initialization", group="Soil")); - parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={if z[i] >= z0 then - TExt0_start + (z[i] - z0)*dT_dz else TExt0_start for i in 1:nSeg} + {% raw %} "Initial far field temperature" + annotation (Dialog(tab="Initialization",group="Soil")); + parameter Modelica.Units.SI.Temperature TExt_start[nSeg]={ + if z[i] >= z0 then + TExt0_start+(z[i]-z0)*dT_dz + else + TExt0_start for i in 1:nSeg} "Temperature of the undisturbed ground" - annotation (Dialog(tab="Initialization", group="Soil")); - + annotation (Dialog(tab="Initialization",group="Soil")); parameter Modelica.Units.SI.Temperature TGro_start[nSeg]=TExt_start "Start value of grout temperature" - annotation (Dialog(tab="Initialization", group="Filling material")); - + annotation (Dialog(tab="Initialization",group="Filling material")); parameter Modelica.Units.SI.Temperature TFlu_start[nSeg]=TGro_start - "Start value of fluid temperature" annotation (Dialog(tab="Initialization")); - + "Start value of fluid temperature" + annotation (Dialog(tab="Initialization")); parameter Modelica.Units.SI.Height z0=10 "Depth below which the temperature gradient starts" - annotation (Dialog(tab="Initialization", group="Temperature profile")); - parameter Real dT_dz(unit="K/m")=0.01 + annotation (Dialog(tab="Initialization",group="Temperature profile")); + parameter Real dT_dz( + unit="K/m")=0.01 "Vertical temperature gradient of the undisturbed soil for h below z0" - annotation (Dialog(tab="Initialization", group="Temperature profile")); - + annotation (Dialog(tab="Initialization",group="Temperature profile")); // Dynamics of filling material parameter Boolean dynFil=false "Set to false to remove the dynamics of the filling material." annotation (Dialog(tab="Dynamics")); - - Modelica.Blocks.Interfaces.RealOutput TBorAve(final quantity="ThermodynamicTemperature", - final unit="K", - displayUnit = "degC", - start=TExt0_start) + Modelica.Blocks.Interfaces.RealOutput TBorAve( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + start=TExt0_start) "Average borehole wall temperature in the borefield" annotation (Placement(transformation(extent={{100,34},{120,54}}))); - - {% endraw %}{{ project_name }}.Plants.GroundTemperatureResponse groTemRes( + {% endraw %}{{ project_name }}.Plants.GroundTemperatureResponse groTemRes( {% raw %}final tLoaAgg=tLoaAgg, final nCel=nCel, final borFieDat=borFieDat, @@ -115,125 +107,116 @@ within {{ project_name }}.Plants.{{ model_name }}; final nTimTot=nTimTot) "Ground temperature response" annotation (Placement(transformation(extent={{20,70},{40,90}}))); - - replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube borHol constrainedby - Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( - redeclare final package Medium = Medium, - final borFieDat=borFieDat, - final nSeg=nSeg, - final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, - final dp_nominal=dp_nominal, - final allowFlowReversal=allowFlowReversal, - final m_flow_small=m_flow_small, - final show_T=show_T, - final computeFlowResistance=computeFlowResistance, - final from_dp=from_dp, - final linearizeFlowResistance=linearizeFlowResistance, - final deltaM=deltaM, - final energyDynamics=energyDynamics, - final p_start=p_start, - final mSenFac=mSenFac, - final dynFil=dynFil, - final TFlu_start=TFlu_start, - final TGro_start=TGro_start) "Borehole" + replaceable Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube borHol + constrainedby Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.BaseClasses.PartialBorehole( + redeclare final package Medium=Medium, + final borFieDat=borFieDat, + final nSeg=nSeg, + final m_flow_nominal=m_flow_nominal/borFieDat.conDat.nBor, + final dp_nominal=dp_nominal, + final allowFlowReversal=allowFlowReversal, + final m_flow_small=m_flow_small, + final show_T=show_T, + final computeFlowResistance=computeFlowResistance, + final from_dp=from_dp, + final linearizeFlowResistance=linearizeFlowResistance, + final deltaM=deltaM, + final energyDynamics=energyDynamics, + final p_start=p_start, + final mSenFac=mSenFac, + final dynFil=dynFil, + final TFlu_start=TFlu_start, + final TGro_start=TGro_start) + "Borehole" annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); - protected - parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i - - 0.5) for i in 1:nSeg} + parameter Modelica.Units.SI.Height z[nSeg]={borFieDat.conDat.hBor/nSeg*(i-0.5) for i in 1:nSeg} "Distance from the surface to the considered segment"; - Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloDiv( - redeclare final package Medium = Medium, + redeclare final package Medium=Medium, allowFlowReversal=allowFlowReversal, final k=1/borFieDat.conDat.nBor) - "Division of flow rate" + "Division of flow rate" annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); - Buildings.Fluid.BaseClasses.MassFlowRateMultiplier masFloMul( - redeclare final package Medium = Medium, + redeclare final package Medium=Medium, allowFlowReversal=allowFlowReversal, - final k=borFieDat.conDat.nBor) "Mass flow multiplier" + final k=borFieDat.conDat.nBor) + "Mass flow multiplier" annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); - - Modelica.Blocks.Math.Gain gaiQ_flow(k=borFieDat.conDat.nBor) + Modelica.Blocks.Math.Gain gaiQ_flow( + k=borFieDat.conDat.nBor) "Gain to multiply the heat extracted by one borehole by the number of boreholes" annotation (Placement(transformation(extent={{-20,70},{0,90}}))); - Buildings.Utilities.Math.Average AveTBor(nin=nSeg) + Buildings.Utilities.Math.Average AveTBor( + nin=nSeg) "Average temperature of all the borehole segments" annotation (Placement(transformation(extent={{50,34},{70,54}}))); - Modelica.Blocks.Sources.Constant TSoiUnd[nSeg]( - k = TExt_start, - each y(unit="K", - displayUnit="degC")) + k=TExt_start, + each y( + unit="K", + displayUnit="degC")) "Undisturbed soil temperature" annotation (Placement(transformation(extent={{-40,14},{-20,34}}))); - Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor QBorHol[nSeg] "Heat flow rate of all segments of the borehole" - annotation (Placement(transformation(extent={{-10,10},{10,-10}}, - rotation=90, - origin={0,-10}))); - + annotation (Placement(transformation(extent={{-10,10},{10,-10}},rotation=90,origin={0,-10}))); Buildings.HeatTransfer.Sources.PrescribedTemperature TemBorWal[nSeg] "Borewall temperature" annotation (Placement(transformation(extent={{50,6},{70,26}}))); - - Modelica.Blocks.Math.Add TSoiDis[nSeg](each final k1=1, each final k2=1) + Modelica.Blocks.Math.Add TSoiDis[nSeg]( + each final k1=1, + each final k2=1) "Addition of undisturbed soil temperature and change of soil temperature" annotation (Placement(transformation(extent={{10,20},{30,40}}))); - Modelica.Blocks.Math.Sum QTotSeg_flow( final nin=nSeg, - final k = ones(nSeg)) + final k=ones( + nSeg)) "Total heat flow rate for all segments of this borehole" annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); - - Modelica.Blocks.Routing.Replicator repDelTBor(final nout=nSeg) + Modelica.Blocks.Routing.Replicator repDelTBor( + final nout=nSeg) "Signal replicator for temperature difference of the borehole" annotation (Placement(transformation(extent={{60,70},{80,90}}))); - equation - connect(masFloMul.port_b, port_b) - annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}}, - color={0,127,255})); - connect(masFloDiv.port_a, port_a) - annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}}, - color={0,127,255})); - connect(masFloDiv.port_b, borHol.port_a) - annotation (Line(points={{-60,-40},{-10,-40}}, color={0,127,255})); - connect(borHol.port_b, masFloMul.port_a) - annotation (Line(points={{10,-40},{60,-40}}, color={0,127,255})); - connect(QBorHol.port_a, borHol.port_wall) - annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}}, - color={191,0,0})); - connect(QBorHol.Q_flow, QTotSeg_flow.u) - annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}}, - color={0,0,127})); - connect(groTemRes.delTBor, repDelTBor.u) - annotation (Line(points={{41,80},{58,80}}, color={0,0,127})); - connect(TSoiDis.u1, repDelTBor.y) annotation (Line(points={{8,36},{0,36},{0, - 60},{90,60},{90,80},{81,80}}, - color={0,0,127})); - connect(TSoiDis.u2, TSoiUnd.y) annotation (Line(points={{8,24},{-19,24}}, - color={0,0,127})); - connect(QTotSeg_flow.y, gaiQ_flow.u) - annotation (Line(points={{-39,80},{-22,80}}, color={0,0,127})); - connect(gaiQ_flow.y, groTemRes.QBor_flow) - annotation (Line(points={{1,80},{19,80}}, color={0,0,127})); - connect(TSoiDis.y, TemBorWal.T) - annotation (Line(points={{31,30},{36,30},{36,16},{48,16}}, - color={0,0,127})); - connect(QBorHol.port_b, TemBorWal.port) annotation (Line(points={{4.44089e-16, - 0},{0,0},{0,4},{80,4},{80,16},{70,16}}, color={191,0,0})); - connect(TSoiDis.y, AveTBor.u) annotation (Line(points={{31,30},{36,30},{36,44}, - {48,44}}, color={0,0,127})); - connect(AveTBor.y, TBorAve) - annotation (Line(points={{71,44},{110,44}}, color={0,0,127})); + connect(masFloMul.port_b,port_b) + annotation (Line(points={{80,-40},{90,-40},{90,0},{100,0}},color={0,127,255})); + connect(masFloDiv.port_a,port_a) + annotation (Line(points={{-80,-40},{-90,-40},{-90,0},{-100,0}},color={0,127,255})); + connect(masFloDiv.port_b,borHol.port_a) + annotation (Line(points={{-60,-40},{-10,-40}},color={0,127,255})); + connect(borHol.port_b,masFloMul.port_a) + annotation (Line(points={{10,-40},{60,-40}},color={0,127,255})); + connect(QBorHol.port_a,borHol.port_wall) + annotation (Line(points={{-4.44089e-16,-20},{0,-20},{0,-30}},color={191,0,0})); + connect(QBorHol.Q_flow,QTotSeg_flow.u) + annotation (Line(points={{-11,-10},{-86,-10},{-86,80},{-62,80}},color={0,0,127})); + connect(groTemRes.delTBor,repDelTBor.u) + annotation (Line(points={{41,80},{58,80}},color={0,0,127})); + connect(TSoiDis.u1,repDelTBor.y) + annotation (Line(points={{8,36},{0,36},{0,60},{90,60},{90,80},{81,80}},color={0,0,127})); + connect(TSoiDis.u2,TSoiUnd.y) + annotation (Line(points={{8,24},{-19,24}},color={0,0,127})); + connect(QTotSeg_flow.y,gaiQ_flow.u) + annotation (Line(points={{-39,80},{-22,80}},color={0,0,127})); + connect(gaiQ_flow.y,groTemRes.QBor_flow) + annotation (Line(points={{1,80},{19,80}},color={0,0,127})); + connect(TSoiDis.y,TemBorWal.T) + annotation (Line(points={{31,30},{36,30},{36,16},{48,16}},color={0,0,127})); + connect(QBorHol.port_b,TemBorWal.port) + annotation (Line(points={{4.44089e-16,0},{0,0},{0,4},{80,4},{80,16},{70,16}},color={191,0,0})); + connect(TSoiDis.y,AveTBor.u) + annotation (Line(points={{31,30},{36,30},{36,44},{48,44}},color={0,0,127})); + connect(AveTBor.y,TBorAve) + annotation (Line(points={{71,44},{110,44}},color={0,0,127})); annotation ( - Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), - graphics={ + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ Rectangle( extent={{-100,60},{100,-66}}, lineColor={0,0,0}, @@ -299,8 +282,12 @@ equation lineColor={0,0,0}, fillColor={0,0,255}, fillPattern=FillPattern.Forward)}), - Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100, - 100}})),Documentation(info=" + Diagram( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Documentation( + info="

    This model simulates a borefield containing one or multiple boreholes using the parameters in the borFieDat record. @@ -322,7 +309,8 @@ Buildings.Fluid.Geothermal.Borefields.BaseClasses.HeatTransfer.GroundTemperature which uses a cell-shifting load aggregation technique to calculate the borehole wall temperature after calculating and/or read (from a previous calculation) the borefield's thermal response factor.

    -", revisions=" +", + revisions="
    • April 9, 2021, by Michael Wetter:
      diff --git a/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt b/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt index 233e87a89..063b4a1e3 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt +++ b/geojson_modelica_translator/model_connectors/plants/templates/Borefield_Instance.mopt @@ -1,3 +1,3 @@ {{ model.modelica_type }} {{ model.id }} {% raw %}annotation (Placement(transformation(extent={{-10,0},{10,20}}))); -{% endraw %} \ No newline at end of file +{% endraw %} diff --git a/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo b/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo index a481ff14d..c50ae4487 100644 --- a/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo +++ b/geojson_modelica_translator/model_connectors/plants/templates/GroundTemperatureResponse.mo @@ -1,40 +1,50 @@ within geojson_modelica_translator.model_connectors.templates; -model GroundTemperatureResponse "Model calculating discrete load aggregation" - parameter Modelica.Units.SI.Time tLoaAgg(final min=Modelica.Constants.eps)= - 3600 "Time resolution of load aggregation"; - parameter Integer nCel(min=1)=5 "Number of cells per aggregation level"; - parameter Boolean forceGFunCalc = false +model GroundTemperatureResponse + "Model calculating discrete load aggregation" + parameter Modelica.Units.SI.Time tLoaAgg( + final min=Modelica.Constants.eps)=3600 + "Time resolution of load aggregation"; + parameter Integer nCel( + min=1)=5 + "Number of cells per aggregation level"; + parameter Boolean forceGFunCalc=false "Set to true to force the thermal response to be calculated at the start instead of checking whether it has been pre-computed"; parameter Buildings.Fluid.Geothermal.Borefields.Data.Borefield.Template borFieDat - "Record containing all the parameters of the borefield model" annotation ( - choicesAllMatching=true, Placement(transformation(extent={{-80,-80},{-60,-60}}))); - - parameter String gFunFilNam = Modelica.Utilities.Files.loadResource("modelica://GHP/Resources/Data/System/SampleGFunction.mat") + "Record containing all the parameters of the borefield model" + annotation (choicesAllMatching=true,Placement(transformation(extent={{-80,-80},{-60,-60}}))); + parameter String gFunFilNam=Modelica.Utilities.Files.loadResource( + "modelica://GHP/Resources/Data/System/SampleGFunction.mat") "File name of g-function data file in MAT format"; - parameter Integer nTimTot = 76 + parameter Integer nTimTot=76 "Total length of g-function vector"; - - Modelica.Blocks.Interfaces.RealOutput delTBor(unit="K") + Modelica.Blocks.Interfaces.RealOutput delTBor( + unit="K") "Temperature difference current borehole wall temperature minus initial borehole wall temperature" - annotation (Placement(transformation(extent={{100,-14},{126,12}}), - iconTransformation(extent={{100,-10},{120,10}}))); - Modelica.Blocks.Interfaces.RealInput QBor_flow(unit="W") + annotation (Placement(transformation(extent={{100,-14},{126,12}}),iconTransformation(extent={{100,-10},{120,10}}))); + Modelica.Blocks.Interfaces.RealInput QBor_flow( + unit="W") "Heat flow from all boreholes combined (positive if heat from fluid into soil)" - annotation (Placement(transformation(extent={{-120,-10},{-100,10}}), - iconTransformation(extent={{-120,-10},{-100,10}}))); - + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}),iconTransformation(extent={{-120,-10},{-100,10}}))); protected - constant Integer nSegMax = 1500 "Max total number of segments in g-function calculation"; - final parameter Integer nSeg = integer(if 12*borFieDat.conDat.nBor Date: Wed, 26 Apr 2023 15:17:15 -0600 Subject: [PATCH 41/58] Apply uniform 5G district system template --- .../model_connectors/districts/district.py | 10 ++++------ .../districts/templates/DistrictEnergySystem5G.mot | 2 ++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/districts/district.py b/geojson_modelica_translator/model_connectors/districts/district.py index 85c1557d6..526a6e781 100644 --- a/geojson_modelica_translator/model_connectors/districts/district.py +++ b/geojson_modelica_translator/model_connectors/districts/district.py @@ -85,10 +85,11 @@ def to_modelica(self): }, 'graph': self._coupling_graph, 'sys_params': { - 'district_system': self.system_parameters.get_param('$.district_system'), - 'ghe_parameters': self.system_parameters.get_param('$.ghe_parameters') + 'district_system': self.system_parameters.get_param('$.district_system') } } + if self.system_parameters.get_param('$.ghe_parameters'): + district_template_params['is_ghe_district'] = self.system_parameters.get_param('$.ghe_parameters') # render each coupling for coupling in self._coupling_graph.couplings: @@ -133,10 +134,7 @@ def to_modelica(self): # render the full district file if 'fifth_generation' in common_template_params['sys_params']['district_system']: - if common_template_params['sys_params']['ghe_parameters']: - final_result = render_template('BorefieldSystem.mot', district_template_params) - else: - final_result = render_template('DistrictEnergySystem5G.mot', district_template_params) + final_result = render_template('DistrictEnergySystem5G.mot', district_template_params) else: final_result = render_template('DistrictEnergySystem.mot', district_template_params) with open(self.district_model_filepath, 'w') as f: diff --git a/geojson_modelica_translator/model_connectors/districts/templates/DistrictEnergySystem5G.mot b/geojson_modelica_translator/model_connectors/districts/templates/DistrictEnergySystem5G.mot index f8a00fb4c..d20464d81 100644 --- a/geojson_modelica_translator/model_connectors/districts/templates/DistrictEnergySystem5G.mot +++ b/geojson_modelica_translator/model_connectors/districts/templates/DistrictEnergySystem5G.mot @@ -4,6 +4,7 @@ model DistrictEnergySystem // District Parameters package MediumW=Buildings.Media.Water "Source side medium"; + {% if not is_ghe_district %} package MediumA=Buildings.Media.Air "Load side medium"; // TODO: dehardcode these @@ -19,6 +20,7 @@ model DistrictEnergySystem epsPla=0.935, final mCon_flow_nominal={18}) "Design data"; + {% endif %} // Models {% for model in models %} // From fdd4c179f3834f39ca088788573df980c389ff46 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 26 Apr 2023 15:18:43 -0600 Subject: [PATCH 42/58] Remove unused GHE district template --- .../districts/templates/BorefieldSystem.mot | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot diff --git a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot b/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot deleted file mode 100644 index 5405a67cc..000000000 --- a/geojson_modelica_translator/model_connectors/districts/templates/BorefieldSystem.mot +++ /dev/null @@ -1,44 +0,0 @@ -within {{ district_within_path }}; -model DistrictEnergySystem - "Borefield model with one GHE component." - extends Modelica.Icons.Example; - replaceable package MediumW=Buildings.Media.Water - constrainedby Modelica.Media.Interfaces.PartialMedium - "Medium in the component" - annotation (choices(choice(redeclare package Medium=Buildings.Media.Water "Water"),choice(redeclare package Medium=Buildings.Media.Antifreeze.PropyleneGlycolWater(property_T=293.15,X_a=0.40) "Propylene glycol water, 40% mass fraction"))); - // Models - {% for model in models %}// - // Begin Model Instance for {{ model.id }} - // Source template: {{ model.instance_template_path }} - // - {{ model.instance }} // - // End Model Instance for {{ model.id }} - // - {% endfor %} // Model dependencies - {% for coupling in couplings %} // - // Begin Component Definitions for {{ coupling.id }} - // Source template: {{ coupling.coupling_definitions_template_path }} - // - {{ coupling.component_definitions }} // -// End Component Definitions for {{ coupling.id }} -// -{% endfor %} equation - // Connections - {% for coupling in couplings %} // - // Begin Connect Statements for {{ coupling.id }} - // Source template: {{ coupling.connect_statements_template_path }} - // - // - // End Connect Statements for {{ coupling.id }} - // - {% endfor %} annotation ( - Icon( - coordinateSystem( - preserveAspectRatio=false)), - Diagram( - coordinateSystem( - preserveAspectRatio=false)), - experiment( - StopTime=172800, - __Dymola_Algorithm="Cvode")); -end DistrictEnergySystem; From c86c1371c020781f4be63f250a7a38dd3f8d80a1 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 26 Apr 2023 16:13:36 -0600 Subject: [PATCH 43/58] Fix for non-ghe 5G districts --- .../model_connectors/districts/district.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/districts/district.py b/geojson_modelica_translator/model_connectors/districts/district.py index 526a6e781..4a414303c 100644 --- a/geojson_modelica_translator/model_connectors/districts/district.py +++ b/geojson_modelica_translator/model_connectors/districts/district.py @@ -73,7 +73,8 @@ def to_modelica(self): "district_within_path": '.'.join([self._scaffold.project_name, 'Districts']), "diagram": diagram, "couplings": [], - "models": [] + "models": [], + "is_ghe_district": self.system_parameters.get_param('$.ghe_parameters') } common_template_params = { 'globals': { @@ -88,8 +89,6 @@ def to_modelica(self): 'district_system': self.system_parameters.get_param('$.district_system') } } - if self.system_parameters.get_param('$.ghe_parameters'): - district_template_params['is_ghe_district'] = self.system_parameters.get_param('$.ghe_parameters') # render each coupling for coupling in self._coupling_graph.couplings: From c1c97b4345715903f2105f76afabbd0e8f365079 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 17 May 2023 09:52:32 -0600 Subject: [PATCH 44/58] Delete sys_param files not needed --- .../data/system_params_ghe_2.json | 8868 ----------------- .../data/system_params_ghe_3.json | 8868 ----------------- 2 files changed, 17736 deletions(-) delete mode 100644 tests/model_connectors/data/system_params_ghe_2.json delete mode 100644 tests/model_connectors/data/system_params_ghe_3.json diff --git a/tests/model_connectors/data/system_params_ghe_2.json b/tests/model_connectors/data/system_params_ghe_2.json deleted file mode 100644 index f8f87e2da..000000000 --- a/tests/model_connectors/data/system_params_ghe_2.json +++ /dev/null @@ -1,8868 +0,0 @@ -{ - "weather": "../../data_shared/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos", - "buildings": [ - { - "geojson_id": "0", - "load_model": "time_series", - "load_model_parameters": { - "time_series": { - "filepath": "To be populated", - "delta_temp_air_cooling": 10, - "delta_temp_air_heating": 18, - "has_liquid_cooling": true, - "has_liquid_heating": true, - "has_electric_cooling": false, - "has_electric_heating": false, - "max_electrical_load": 0, - "temp_chw_return": 12, - "temp_chw_supply": 7, - "temp_hw_return": 35, - "temp_hw_supply": 40, - "temp_setpoint_cooling": 24, - "temp_setpoint_heating": 20 - } - }, - "ets_model": "Fifth Gen Heat Pump", - "fifth_gen_ets_parameters": { - "supply_water_temperature_building": 15, - "chilled_water_supply_temp": 5, - "hot_water_supply_temp": 50, - "cop_heat_pump_heating": 2.5, - "cop_heat_pump_cooling": 3.5, - "pump_flow_rate": 0.01, - "pump_design_head": 150000, - "ets_pump_flow_rate": 0.0005, - "ets_pump_head": 10000, - "fan_design_flow_rate": 0.25, - "fan_design_head": 150 - } - } - ], - "district_system": { - "fifth_generation": { - "ghe_parameters": { - "version": "1.0", - "ghe_dir": "C:/urbanopt-ghe/baseline_scenario/ghe", - "fluid": { - "fluid_name": "Water", - "concentration_percent": 0.0, - "temperature": 20 - }, - "grout": { - "conductivity": 1.0, - "rho_cp": 3901000 - }, - "soil": { - "conductivity": 2.0, - "rho_cp": 2343493, - "undisturbed_temp": 18.3 - }, - "pipe": { - "inner_diameter": 0.0216, - "outer_diameter": 0.0266, - "shank_spacing": 0.0323, - "roughness": 1e-06, - "conductivity": 0.4, - "rho_cp": 1542000, - "arrangement": "singleutube" - }, - "borehole": { - "buried_depth": 2.0, - "diameter": 0.15 - }, - "simulation": { - "num_months": 240 - }, - "geometric_constraints": { - "ghe_geometric_params": [ - { - "ghe_id": "c432cb11-4813-40df-8dd4-e88f5de40033", - "length": 100, - "width": 100 - }, - { - "ghe_id": "93b98fa5-a83e-455f-8d95-05a6a81fed74", - "length": 100, - "width": 100 - } - ], - "b_min": 3.0, - "b_max": 10.0, - "max_height": 135.0, - "min_height": 60.0, - "method": "rectangle" - }, - "design": { - "flow_rate": 0.2, - "flow_type": "borehole", - "max_eft": 35.0, - "min_eft": 5.0 - }, - "loads": { - "ground_loads": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 88964.3734177778, - 122073.202982222, - 63902.6904222222, - 52317.2963288889, - 41514.9882444444, - 29434.3039733333, - 32753.9204488889, - 17284.982448, - 15288.7578817778, - 11017.8325795556, - 8217.36227022222, - 32409.2688222222, - 51278.9453822222, - 55786.086, - 58907.0002622222, - 59597.7688711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41261.1886622222, - 94426.0466444445, - 39088.0663733333, - 22820.2751377778, - 3928.03210222222, - -3923.54811422222, - 13260.5006431111, - -19509.30426, - -27926.1600355556, - -22575.6779884444, - -14158.1774564444, - 21174.6808488889, - 22526.9402626667, - 39041.1749955556, - 49278.1489066667, - 57193.9996177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 75889.8850088889, - 129885.599591111, - 69544.6023822222, - 50567.6617955556, - 28604.0042084444, - 9723.54263155556, - 14641.9499395556, - -15588.188636, - -24385.9782417778, - -20769.2755808889, - -13236.4395048889, - 23332.5927471111, - 44427.2358755555, - 57191.6550488889, - 69121.7007688889, - 77919.1093822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18264.0158017778, - 86297.7193777778, - 141136.013404444, - 82539.9615911111, - 64681.0872933333, - 51027.4903688889, - 35500.8759733333, - 39895.7703555556, - 23758.6888355556, - 18831.9876151111, - 16533.8411902222, - 14627.9997546667, - 41958.1117644445, - 63313.3244177778, - 69317.4722711111, - 73835.1634488889, - 77274.6460088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 78453.96416, - 133601.74128, - 119131.355168889, - 104141.94012, - 94641.7469822222, - 86884.1546711111, - 86776.0114311111, - 86429.8944488889, - 85929.6220622222, - 87441.5759244445, - 93968.2695688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12990.5821497778, - 14682.5989026667, - 14619.2076213333, - 14677.2357013333, - 14371.18154, - 3897.61132088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8801.13061644444, - 12797.82928, - 13262.9331333333, - 13595.979144, - 68476.9443244444, - 151989.608933333, - 175980.410088889, - 126174.440111111, - 99703.9642844445, - 73253.4172933333, - 55307.2078044444, - 45939.4828088889, - 24878.1032515556, - 11603.1248955556, - 12236.0705742222, - 224.653953293333, - 38597.1722622222, - 57383.6166266667, - 69498.0040755556, - 77745.3182133333, - 84529.3282933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6933.06604711111, - 99460.7152622222, - 153355.320311111, - 97590.04236, - 75572.1959244444, - 58324.3748933333, - 27107.0848942222, - 21543.3056924445, - 0, - -21944.5493506667, - -26846.163684, - -27160.834136, - 12674.2998066667, - 34262.0643866667, - 50241.1805777778, - 65188.1003155556, - 73411.3826222222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 86810.3007511111, - 138299.37812, - 70408.5760177778, - 41696.1061911111, - 8072.58514133333, - -1906.89063013333, - -12989.9080862222, - -23864.2237426667, - -32266.8362622222, - -33333.9081777778, - -28793.4453746667, - 7430.70079377778, - 16430.5922377778, - 29677.2599244444, - 46644.3188311111, - 60608.2780622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 79698.3440977778, - 127704.271311111, - 65651.1526711111, - 39199.4333955556, - 15841.1969262222, - -4769.46856933333, - 13448.0368471111, - -9911.43052088889, - -27850.3425391111, - -30625.3449688889, - -25635.0473173333, - 6017.68773866667, - 8435.67094088889, - 22427.7943057778, - 32530.6002622222, - 37846.9102177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18665.786988, - 75233.1126488889, - 25548.0051973333, - 11640.0811626667, - 1866.1303, - 0, - 5645.54604177778, - -25981.6918275555, - -31033.8860977778, - -28908.3878644444, - -23248.4813382222, - -705.791434044444, - 26969.2242435556, - 39034.7274311111, - 54631.6788933333, - 67639.9332311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20573.2989288889, - 94228.5167155556, - 147449.937422222, - 118903.345844444, - 87726.4410444445, - 70720.40368, - 49318.0065777778, - 41806.594, - 35245.0248933333, - 31750.7380355556, - 29839.3282488889, - 32946.76124, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 63225.1100133333, - 116162.251742222, - 58147.3599422222, - 46259.2233911111, - 34594.9931688889, - 22900.2249368889, - 23444.0476906667, - 8618.43008577778, - 6449.557328, - 3203.32585866667, - 934.395692844444, - 23198.3661782222, - 43016.3915466667, - 46922.7363866667, - 51682.2112311111, - 54425.9429733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27703.4259911111, - 80129.7447733333, - 24337.2991302222, - 11511.2177951111, - -780.0556536, - 3080.32391333333, - 4063.98779066667, - -17188.708588, - -25987.611864, - -35929.3459377778, - -38302.6357955556, - 0, - 0, - 9146.544228, - 15054.7405995556, - 19760.3196666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13526.3161408889, - 16871.8401026667, - 0, - -27126.5741231111, - -13303.9337817778, - -16353.4852284444, - -20572.1559515556, - -21302.0495537778, - -40322.7749644445, - -75202.3401822222, - -79782.7485777778, - -41123.7383111111, - -6700.16243511111, - -2181.97303644444, - -778.1565528, - -2088.15511235556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -191.082071373333, - -15516.8258204444, - -32980.1713466667, - -32443.5581422222, - -15160.8323417778, - -18214.8384693333, - -27473.130712, - -33280.8623066667, - -70771.9841955556, - -83326.2713822222, - -85492.6530355556, - -43300.3774533333, - -10490.8614146667, - -2572.19135946667, - -2828.13915293333, - -7847.00830711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10136.5091342222, - 29068.8442977778, - 30558.8178266667, - 18813.8758204445, - 12087.1904497778, - 7378.73928577778, - 12094.9275271111, - 7333.10811377778, - -847.365295688889, - 4279.48297866667, - 3748.26228266667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16299.3256871111, - 73783.8760044445, - 130205.633244444, - 53613.8429244445, - 25291.3335182222, - 3083.31323866667, - 6512.62623111111, - -7082.03409288889, - -29622.4556266667, - -38657.8379822222, - -42871.9074888889, - -34973.0549022222, - -13752.5084244444, - 2313.63816382222, - 7828.45690577778, - 26505.5564386667, - 39588.9249022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41745.0490666667, - 100216.252586667, - 33500.9587111111, - 9357.43819955556, - 4123.83291155556, - -13011.741884, - -16365.8235222222, - -36592.5658622222, - -10110.3964982222, - -7845.51364444444, - -8836.97321333333, - -15038.9440666667, - 0, - -1800.7959572, - 11574.1694697778, - 19879.8047586667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61513.5747244444, - 40284.9687911111, - 23324.0057635556, - 14658.8601426667, - -3981.13658755556, - 3209.30450933333, - -19331.1170244444, - -32549.0637422222, - -37182.2249377778, - -28859.5329102222, - 7429.93880888889, - 3220.55844, - 23090.1057097778, - 38415.4681733333, - 47490.4151288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 72077.0298533333, - 133462.239431111, - 63956.0293644445, - 43974.73408, - 22637.6918355556, - 6478.835132, - 13707.0530951111, - -2686.62976693333, - -29735.5810755556, - -35753.2102, - -30325.8262933333, - 13258.7129093333, - 36070.3131422222, - 46987.7981733333, - 60952.0504755556, - 71662.9203733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20551.8168164444, - 93398.5393288889, - 148270.829604444, - 77011.4681511111, - 52111.5604088889, - 25851.0993404444, - 9133.41464222222, - 13904.7295595556, - -20776.2799804444, - -34751.7862133333, - -35649.4630266667, - -23262.4315231111, - 340.422610533333, - 27692.5530528889, - 37877.6826844444, - 53375.5761111111, - 64355.1922177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10209.6303764444, - 80581.3673555556, - 134642.729866667, - 100967.686915556, - 67513.03344, - 37703.3053733333, - 23547.3552573333, - 25341.9468991111, - 4929.51470311111, - -6441.11688, - -7250.93097422222, - -6577.39494666667, - -134.72010064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4708.04086444444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8875.42414311111, - 71883.3098488889, - 16228.0214857778, - 4217.058832, - -13238.3444671111, - -12116.3217182222, - -23985.7017182222, - -25693.0753973333, - -29758.1475511111, - -32481.9504577778, - -48911.5169466667, - -22465.9228573333, - -42.6655854266667, - -1654.4860664, - -1194.72783013333, - -13008.312952, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5630.833872, - 10992.4233142222, - -1683.605612, - -19244.1628257778, - -18341.6503391111, - -26832.6824128889, - -39124.9933333333, - -75759.1752933333, - -87977.8960577778, - -97853.2202177778, - -101654.6456, - -59547.6537111111, - -21993.8439115556, - -12587.3749151111, - -2932.35230933333, - -1768.14490471111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -21866.2700568889, - 46789.6821022222, - 40494.8077066667, - 6372.94853955556, - 5685.02272044445, - 1040.01852128889, - 29643.8498177778, - 7491.27859244444, - -10524.9455848889, - -19007.7716675556, - -35971.5481777778, - 1888.08132622222, - -12761.7522262222, - -3890.40177155556, - -3137.41416577778, - 8061.56566755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9592.48123066667, - 83718.1074577778, - 30303.2598177778, - 16276.4661404445, - -5337.64553244444, - -10304.6440306667, - 15828.741404, - -18685.4813666667, - -44011.0748977778, - -39932.4042444444, - -28314.8602502222, - 10977.6818373333, - 36203.0743555556, - 52154.9349333333, - 65790.9475911111, - 76291.9785733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22638.1607493333, - 100633.292777778, - 158350.424328889, - 87668.4129644445, - 59119.7698888889, - 33730.4333911111, - 7968.10529022222, - 22622.7159017778, - 0, - -19181.2404582222, - -28865.6874035556, - -22652.4333124444, - 18673.17238, - 38572.5542888889, - 51277.1869555556, - 65865.9737955556, - 77114.3361111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19058.7074266667, - 95045.0128311111, - 145842.149306667, - 121280.738697778, - 82700.2714888889, - 59968.7968977778, - 38319.63392, - 36258.4647955556, - 31317.5789333333, - 24132.7354946667, - 14317.1685342222, - 18670.0658262222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14780.4260395556, - 90280.8488488889, - 137288.282786667, - 77176.1741155556, - 61711.3977244444, - 47878.7343511111, - 32201.1883333333, - 29266.9310617778, - 7380.76147644445, - -10485.6154417778, - -17548.2775342222, - -3768.60141777778, - 0, - 30193.6512222222, - 39255.99612, - 44657.2966977778, - 50613.9670311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43510.8025111111, - 98452.8437111111, - 42554.8045466667, - 29309.1626088889, - 20198.255828, - 8785.451312, - 29833.7598977778, - 15588.0421004444, - -5773.38366044444, - 6882.04236666667, - 5466.68474266667, - 30846.0275155556, - 30970.8758088889, - 39423.0466533333, - 43727.9682044444, - 48123.1556577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8187.55693822222, - 56505.8686488889, - 33359.4053644444, - 15438.6930622222, - 2146.97741506667, - -3204.43952888889, - -2757.35075675555, - -25895.0893142222, - -37259.5957111111, - -28277.0247697778, - -35699.2851155555, - -10864.43916, - 2117.74064102222, - 9863.39616577778, - 32992.7734044444, - 46989.5566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 78484.4435555556, - 137739.026155556, - 53077.5227911111, - 23093.3587991111, - -4517.95494177778, - 0, - -11521.9148906667, - -35254.9893111111, - -22933.488508, - -10875.1948697778, - -8375.47413466667, - -17476.2699622222, - -10330.6394382222, - 3302.97003644445, - 17338.0576262222, - 26267.6413106667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5990.78381066667, - 63924.9638266667, - 43227.1096755556, - 10271.5856093333, - 5924.25666844444, - 13820.969836, - 15317.6253862222, - -116.993108342222, - -5212.12317555555, - -7858.93630133333, - -7913.24237822222, - 22036.8960577778, - 17776.6678511111, - 27385.2386857778, - 29390.3433066667, - 31987.8325644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3371.46075511111, - 29332.0221555556, - 32797.0019022222, - 33287.3098711111, - 42957.4842533333, - 51200.9884666667, - 54518.8465155556, - 52105.9920577778, - 56329.43984, - 61921.23664, - 66213.5561333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17361.737772, - 19848.3582284444, - 20870.7367995556, - 22360.1828004444, - 23280.2795537778, - 23033.5722924444, - 16250.9982608889, - 9359.31385466667, - 7162.89241244445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4105.92626666667, - 7222.47376933333, - 68003.0483377778, - 147921.781911111, - 180003.397231111, - 113331.184808889, - 76657.73132, - 46752.4620711111, - 14841.8830515555, - 18315.8014671111, - -904.827748444445, - -26393.2222817778, - -24993.221584, - -24251.9861297778, - 11180.0181324445, - 30216.5107688889, - 42175.8636, - 51767.7879955556, - 57523.9976888889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61644.5775111111, - 117151.073671111, - 48611.9982711111, - 20134.6593968889, - -4745.02643866667, - -1194.97107915556, - -13879.9064364444, - -35990.8908711111, - -17204.9740346667, - -18012.9417808889, - -17394.5910435556, - -15063.0931262222, - -20796.8535724444, - 0, - 13764.4364186667, - 27304.1459093333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20532.6206586667, - 79060.62136, - 25411.815052, - 23062.732868, - 1979.42279942222, - -18218.8242364444, - -16717.0106346667, - -3835.392324, - -9665.01633066667, - -17047.3603911111, - -25913.0545733333, - -15926.4513124445, - -2055.67404111111, - -1967.8640748, - -15031.5586746667, - -12885.398928, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13830.1136546667, - 18834.5080266667, - 8988.52028488889, - -16676.2444431111, - -21886.6971133333, - -13886.3246937778, - -17971.5308328889, - -32864.1151866667, - -66610.3744177778, - -82380.8239777778, - -99216.5870266667, - -54502.4345333333, - -18160.415164, - -6028.35552711111, - -704.217642177778, - -1901.66810293333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -238.832733648889, - -5325.24862444445, - -37605.1265511111, - -29937.5070711111, - -26544.7400462222, - -20154.3244684444, - -21740.3667075556, - -26430.9405337778, - -22140.0277817778, - -23904.1693351111, - -28128.8773231111, - -25146.4098537778, - -10371.0246373333, - -9411.74427644445, - -13110.5947697778, - -10395.4081537778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -2390.9679072, - -4482.81571555556, - -9504.999504, - -15619.4886306667, - -20231.1090995555, - -11164.0164497778, - -10339.021272, - -10337.3800737778, - -16061.4398662222, - -14721.2549822222, - -424.273186133333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9135.70059688889, - -11355.2160426667, - -12126.4619786667, - -11638.5865, - -7201.98809866667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10797.443104, - 4788.16650622222, - -15495.8126217778, - -27206.3773866667, - -34430.8733466667, - -52828.1192755556, - -83881.0549955556, - -120761.123617778, - -143668.440875556, - -148461.618897778, - -145847.131515555, - -94292.6992888889, - -50219.2002444444, - -29066.7048786667, - -14392.6343453333, - -332.811553777778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -532.114562888889, - -12298.4067995556, - -31546.7605422222, - -20994.7058795555, - -15752.8359862222, - -30510.4610933333, - -61743.0494044444, - -104286.717248889, - -105187.910915556, - -97812.7764044445, - -100758.727213333, - -49099.9616711111, - -15489.3943644444, - -8717.25366444444, - -4745.08505288889, - -4423.55673688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8490.38731733334, - 23245.4040915556, - -6148.33884, - -20088.4127755556, - -33668.3023155556, - -38083.4186044444, - -38753.9653066667, - -48900.9663866667, - -50756.3995911111, - -74498.0903022222, - -91803.9394133333, - -50254.0757066667, - -15698.4712951111, - -4632.92673866667, - -7189.26881244444, - -28043.9453151111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4645.23572533333, - 28801.5341373333, - 7512.49694088889, - -9706.36866444444, - -29023.8578822222, - -39409.2723111111, - -43012.8746933333, - -56026.9904533333, - -64517.5536133333, - -85818.8411822222, - -102370.325253333, - -62400.4079066667, - -22977.1854106667, - -7406.81549822222, - -4335.10787555556, - -22314.2878644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3669.80714622222, - 42168.2437511111, - 21758.3612737778, - 12901.1075395556, - -169.27845992, - -18185.3848226667, - -21762.0832768889, - -25389.1606551111, - -31818.1443911111, - -29993.4836533333, - -25275.449064, - -46.0877767911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10783.0240053333, - -14972.5927671111, - -15031.2362964444, - -19111.5188408889, - -14732.1279204444, - -1755.37286568889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -597.566134133333, - -10114.294344, - -28204.28452, - -25736.0396222222, - -43148.8596888889, - -67077.5297688889, - -96135.8235066667, - -124298.785, - -133839.12888, - -152409.579835556, - -156974.455462222, - -120461.898013333, - -72988.4810088889, - -48112.8981688889, - -26800.2101337778, - -8879.82020977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -12863.9754297778, - -28449.2040475556, - -24372.5262777778, - -68799.6156177778, - -107417.889, - -127485.05412, - -160611.761022222, - -163658.821364444, - -163320.324231111, - -168583.588315556, - -123440.086644444, - -80489.9291688889, - -58327.0125333333, - -44831.3809377778, - -27823.3799968889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -7940.878984, - -53979.8887422222, - -46838.0388355556, - -42354.0508355556, - -24654.0503871111, - -36167.9058222222, - -24054.9251146667, - -19737.7531911111, - -21260.7265271111, - -23780.1123337778, - -19563.8741008889, - -26805.1630355556, - -27241.1063133333, - -8167.83325244444, - -2591.78023253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9391.844748, - 20848.3754737778, - -30310.5865955556, - -29389.7571644444, - -32601.2304, - -40203.2019511111, - -43173.1845911111, - -62102.0615155556, - -87311.15928, - -87789.7444044444, - -79135.3544933333, - -47049.9292488889, - -13072.671368, - -5391.89299511111, - -4808.21257022222, - -12296.150152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16117.3871413333, - 28388.0401066667, - -25293.0919448889, - -23444.4872973333, - -19997.6193453333, - -40532.61388, - -48593.5347911111, - -95149.0530755556, - -111293.461373333, - -130591.607897778, - -136892.343715556, - -89780.2833911111, - -51153.8040177778, - -27219.2139013333, - -10932.9884928889, - -2954.83086355555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -14.0429418955556, - 2569.7998992, - -11974.358072, - -19541.3955466667, - -23872.224584, - -11578.4190008889, - -499.8855328, - -23941.066988, - -37919.0057111111, - -53211.74936, - -60855.9231511111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5359.03972355556, - -8735.36545911111, - -9133.12157111111, - -11530.5897955556, - -6706.05316444445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10240.4028431111, - 0, - -7499.80696177778, - -25263.9899835556, - -19023.5095862222, - -39619.6973688889, - -41569.2064, - -59112.7361822222, - -102729.044293333, - -116765.392088889, - -121843.435231111, - -84787.2308711111, - -41805.7147866667, - -22521.4305257778, - -5876.51538444444, - -2266.58852764444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -20877.711892, - 20189.5223088889, - -8037.18215111111, - -24868.0509124445, - -35194.03052, - -25973.6909862222, - -34082.1187244444, - -38266.0019066667, - -49879.2377555556, - -70911.1929733333, - -99401.2218266667, - -59183.36632, - -24295.8002608889, - -10453.3483124444, - -3982.77778577778, - -1368.74173306667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4275.350676, - 8076.01407333333, - -30227.9405422222, - -31831.03952, - -54445.2856666667, - -102155.211057778, - -124133.785964444, - -162502.948902222, - -183820.355382222, - -188243.384591111, - -193529.508222222, - -142416.73416, - -90536.993, - -62633.6925111111, - -41626.9414088889, - -25391.0363102222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -745.997859777778, - -18880.1978128889, - -48185.5798044445, - -100762.537137778, - -142568.544995556, - -153729.279048889, - -160541.423955556, - -181762.116968889, - -185163.793355556, - -187824.879044444, - -177383.634568889, - -114302.422471111, - -65283.0553555556, - -33796.3743911111, - -16287.954528, - -4999.73454133333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - 1918.3028192, - -43352.5441111111, - -21319.9561986667, - -33108.8295644444, - -52827.2400622222, - -65895.8670488889, - -115465.621711111, - -131122.945822222, - -145111.229955556, - -145325.758008889, - -107594.024737778, - -64965.9524133333, - -49777.54208, - -26387.6246235556, - -13770.6788333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -12370.4436786667, - -9592.42261644445, - -7848.88396222222, - -13515.0329031111, - -42522.5667244445, - -53844.78296, - -83173.8744044445, - -103680.939262222, - -106960.404995556, - -102963.794253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8873.46056666667, - -11065.1049497778, - -15854.2972048889, - -12539.1647173333, - -9205.42221422222, - -1998.42259955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -636.181183733333, - -16382.4406542222, - -47509.4647511111, - -26390.379492, - -36085.55284, - -71644.4568933333, - -93042.1648577778, - -134224.810462222, - -153269.157404444, - -173343.06316, - -194715.86008, - -173270.381524444, - -135327.930124445, - -109494.297822222, - -89694.4135555556, - -66224.9859066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -92.5518568888889, - -25340.3936222222, - -48658.5965777778, - -62797.2261911111, - -116970.248795556, - -156033.404124444, - -170967.428733333, - -191766.97856, - -184415.289737778, - -180552.905564445, - -178978.234484445, - -143465.342595556, - -87614.7809511111, - -49638.9194444444, - -25934.5073786667, - -4331.76686488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - 0, - -36674.9188444444, - -33426.5186488889, - -34658.8826711111, - -33400.1422488889, - -45674.5465244444, - -57123.6625511111, - -99388.6197688889, - -112940.814088889, - -131964.352982222, - -101448.323537778, - -75168.3439333333, - -52495.4835644444, - -28143.2378075555, - -6504.97707511111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2802.65368911111, - 1555.07927622222, - -29550.9462755556, - -31458.2530666667, - -35121.3488844444, - -24593.7949666667, - -21442.1961591111, - -22625.8517626667, - -20660.1652062222, - -20568.4925626667, - -22419.8520786667, - -19739.2185466667, - -10312.908636, - -24370.6213155556, - -17435.5037706667, - -796.579002844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9371.62284133333, - 26171.1036866667, - -18092.2761306667, - -32162.5029466667, - -27774.8181137778, - -28481.9987048889, - -20777.8625644444, - -20874.8397951111, - -30101.0407511111, - -49298.0777422222, - -87394.0984044445, - -62091.5109555556, - -35715.6970977778, - -16568.599424, - -6475.84580666667, - -7693.96657288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16926.5857862222, - 38228.7818755556, - 35134.2440133333, - 15308.8332528889, - 10799.3773733333, - -4222.53926177778, - -2420.8787448, - -2805.84523351111, - -13818.6252671111, - -18678.3304315556, - -21316.7031093333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4085.968124, - -1923.84772462222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23025.9524435556, - 23631.144288, - 13145.3530035556, - -10784.518668, - -15343.2691084445, - -24377.2154155555, - -39061.1038311111, - -58899.3804133333, - -89823.9509866667, - -112527.290751111, - -123403.452755556, - -88527.9905333333, - -54805.4700622222, - -31855.6574933333, - -13181.4593644444, - -3758.87145688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10176.542648, - -35850.5098088889, - -29967.6933955556, - -23927.2926457778, - -23440.0619235556, - -18971.8997635556, - -21512.1522333333, - -19682.0989871111, - -20229.4972084444, - -22785.8978964444, - -20969.8241422222, - -6863.84265066667, - -26056.1611968889, - -13730.498784, - -2280.30425564445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5111.68770577778, - 28816.8617564444, - 24040.4767088889, - 12421.3208235556, - 5969.53615511111, - 1517.70684813333, - 10047.9137373333, - -10246.2056511111, - -17096.1567311111, - -24103.8972973333, - -26623.8985533333, - 8786.242604, - 0, - 10019.8082177778, - 19937.92076, - 26909.3498155556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2386.40185928889, - 44323.4887022222, - 31680.9871111111, - 8446.92487155556, - -9874.03464711111, - -27254.7048128889, - -17166.6989475556, - -21697.5490182222, - -30389.1296533333, - -44908.45864, - -77427.6291288889, - -59401.9973688889, - -34531.98288, - -15707.4392711111, - -6097.66684488889, - -1975.54546862222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -37177.8288711111, - -40254.1963244445, - -28835.1200866667, - -21715.5728915556, - -33631.3753555556, - -41622.5453422222, - -57693.3927911111, - -82845.63476, - -95167.2234844444, - -70803.0497333333, - -41476.5959288889, - -20790.2008582222, - -5761.80735155556, - -1421.15163986667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -21199.2109008889, - 16003.0014866667, - 10322.140376, - 12409.9203573333, - -1540.07403533333, - -8506.916528, - -7391.48787911111, - -20699.9935702222, - -18206.6617853333, - -19442.3375111111, - -21145.6081946667, - -334.713585288889, - -2581.88908253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7118.11114666667, - -8166.13344, - -10363.0531031111, - -8393.38077955556, - -5165.14387644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -648.317258444445, - -5496.78314577778, - -28383.2044333333, - -15698.2954524444, - -25845.8240604444, - -55748.5728977778, - -88387.0233288889, - -122158.486675556, - -128765.188733333, - -141017.905746667, - -153540.248182222, - -104490.1086, - -64542.4646577778, - -44493.1768755556, - -33959.9080711111, - -23196.72498, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -17607.8881982222, - -33015.33988, - -43494.3905288889, - -82756.5411422222, - -113452.223177778, - -129837.829, - -166762.444431111, - -179621.232502222, - -187197.706866667, - -195415.713893333, - -171655.266631111, - -123766.567862222, - -108322.59952, - -90969.56596, - -70499.1349911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -32064.9102666667, - -96841.2456711111, - -124649.884191111, - -138448.551315556, - -172699.185928889, - -157474.141706667, - -199329.971653333, - -206157.063186667, - -220773.984853333, - -241437.549684444, - -201760.99652, - -163432.277395555, - -140653.618355556, - -111764.133577778, - -92666.4476933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -53189.7690266667, - -135589.642626667, - -139575.409737778, - -156733.257937778, - -192619.815493333, - -211421.792626667, - -236616.822977778, - -241885.069271111, - -243615.654182222, - -249857.189635556, - -220760.210511111, - -175753.573048889, - -143003.462524444, - -119934.076942222, - -98757.0515244444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1550.11172088889, - -55541.6646933333, - -142384.789408889, - -150757.244911111, - -161477.493084444, - -184039.279502222, - -130345.721235556, - -117999.807608889, - -120908.245315556, - -130596.297035556, - -159203.847404444, - -118902.466631111, - -76515.0056888889, - -53749.2417777778, - -24379.2082991111, - -9072.25070133333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -7544.177928, - -20552.9304866667, - -18102.5336195556, - -14585.0355297778, - -17844.2500493333, - -14004.1099733333, - -11784.0376924445, - -6201.97085333333, - -5551.11852977778, - -5743.22664311111, - -728.434108088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1860.54729533333, - -61319.85472, - -102445.644528889, - -106063.607395556, - -110047.909151111, - -113517.871106667, - -114220.069488889, - -136823.472004445, - -147247.718355556, - -145561.387182222, - -152437.421591111, - -114853.689231111, - -80832.5292977778, - -58264.0022444445, - -33433.2592844444, - -16729.1437786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -23650.3697528889, - -93961.8220044444, - -140278.194262222, - -158889.382102222, - -188950.272111111, - -184857.827115556, - -215964.980991111, - -234021.385217778, - -236963.819173333, - -234682.260573333, - -192739.974648889, - -149086.446506667, - -124546.430088889, - -107891.198844444, - -73193.0446444444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -19216.5555271111, - -31733.7399111111, - -24382.5786168889, - -23033.8360564444, - -22814.8533222222, - -23907.6861884444, - -33343.5795244445, - -36700.12296, - -42719.21744, - -48874.5899866667, - -36531.9001422222, - -20522.6269337778, - -38505.7340755556, - -15363.4910151111, - 2124.12372982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45405.2141733333, - 23974.565016, - 3445.49051777778, - -22028.3676884444, - -41876.9310666667, - -29311.8002488889, - -40652.1868933333, - -42394.4946488889, - -69212.5528133333, - -80420.1782444445, - -63381.6099866667, - -38777.4109955555, - -19210.4889551111, - -7242.05091955556, - -17327.6536017778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1961.44581746667, - 30341.6521333333, - 9272.97510533333, - -27377.0033875556, - -26207.2100475556, - -35068.0099422222, - -49315.95508, - -103514.767942222, - -126187.33524, - -152970.811013333, - -171076.158115556, - -135688.407591111, - -102684.497484445, - -72395.8912222222, - -31758.9440266667, - -15523.1268493333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -213.221249248889, - -15596.0429417778, - -7669.49513511111, - -11200.1521177778, - -28004.4100222222, - -42330.0190044445, - -49693.7237422222, - -65762.8127644445, - -84417.6682, - -93009.6339644445, - -98512.6302177778, - -4228.01969155556, - -11445.9801657778, - -9217.760508, - -2696.97810786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2408.65474875556, - -5147.03208177778, - -4669.32617066667, - -2353.41377502222, - -10160.3944297778, - -12787.8355551111, - -19995.2454693333, - -21985.6672275555, - -19034.2359888889, - -9705.723908, - -3365.80448266667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 280.612072035556, - -18013.0590093333, - -38253.1067777778, - -48455.4982977778, - -91000.3384266667, - -122441.007226667, - -139812.211195556, - -167725.183031111, - -187581.336951111, - -197289.024435556, - -204599.09716, - -187188.621662222, - -133704.902311111, - -95594.5211644445, - -65426.6602, - -43530.4382755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -13915.8662617778, - -56281.0831066667, - -70388.06104, - -123875.883386667, - -156793.923657778, - -178207.457462222, - -208070.524471111, - -209646.660906667, - -232619.333022222, - -225197.014062222, - -199581.133595556, - -145718.180226667, - -114179.918746667, - -83570.1065466667, - -67095.9932488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -124.52825968, - -25777.3040346667, - -73334.30492, - -103717.866222222, - -152241.357017778, - -189557.808524444, - -198788.962382222, - -220542.751746667, - -236322.286511111, - -237870.581191111, - -236340.45692, - -202136.127542222, - -147784.33156, - -124551.99844, - -83485.4089955556, - -58658.47596, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -84.1114088888889, - -22166.7558671111, - -66021.3014844444, - -97015.9160533333, - -149711.274115556, - -190441.417924445, - -202867.339964444, - -211837.660533333, - -210948.482782222, - -218473.08356, - -219149.198613333, - -188266.537208889, - -146743.342973333, - -111734.826466667, - -80720.2830622222, - -55645.4118666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28.6188629137778, - -23718.5087862222, - -67816.0689688889, - -99769.9052844444, - -141092.931951111, - -174490.43656, - -192393.857666667, - -206179.629662222, - -216000.735666667, - -229050.606102222, - -229894.650902222, - -194782.094151111, - -154411.841666667, - -117668.637253333, - -87203.6021822222, - -63021.7186622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -13400.0904133333, - -17568.528748, - -34044.6056222222, - -59658.14152, - -96113.8431733333, - -105652.428626667, - -113482.409502222, - -123986.957337778, - -131581.895182222, - -140022.636253333, - -6466.35030266667, - -9987.160096, - -7094.75337911111, - -2345.74996546667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2713.91468737778, - -8168.65385155555, - -10905.3811942222, - -15285.4168711111, - -23510.6920613333, - -33477.2199511111, - -38368.5767955556, - -41425.0154133333, - -54998.6039244445, - -28739.7547471111, - -16223.5374977778, - -2560.34542515556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -17550.6807173333, - -89099.4792, - -154172.402568889, - -171054.177782222, - -196169.785862222, - -223924.499297778, - -226409.156177778, - -242154.987764444, - -248312.411808889, - -248403.849995556, - -254221.01848, - -225779.34636, - -176644.509226667, - -149732.082164444, - -117742.491173333, - -80909.9000711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -41971.0068933333, - -134799.522911111, - -148426.157293333, - -177735.026831111, - -210086.853715556, - -218935.549773333, - -231753.60096, - -226470.114968889, - -230513.617088889, - -227142.713168889, - -187725.234866667, - -150031.893911111, - -112638.657773333, - -98503.8380844444, - -74927.1464088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1877.6567868, - -42702.8054577778, - -113102.0032, - -136907.583413333, - -171616.874315556, - -202113.854137778, - -219343.50476, - -237608.282546667, - -236017.199484445, - -253095.332342222, - -234423.771853333, - -200105.730884444, - -143727.64124, - -125272.367231111, - -101369.194337778, - -72910.8171644445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -125.946723857778, - -33369.9559244445, - -63091.1765155556, - -101448.90968, - -143186.631968889, - -174241.326115556, - -185586.98804, - -205623.673764445, - -217706.409533333, - -222297.075417778, - -231790.820991111, - -173448.275688889, - -129869.773751111, - -109558.773466667, - -76363.1948533333, - -57760.7991466667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -210.012999795556, - -34136.33688, - -88733.7264533333, - -105775.518493333, - -144197.434231111, - -167162.193426667, - -173197.699888889, - -204774.353684444, - -209637.282631111, - -222246.667186667, - -214929.560755555, - -178309.153137778, - -137069.944808889, - -114292.164982222, - -83928.5325155556, - -68613.8085333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -26324.4677991111, - -28908.8860853333, - -35347.01364, - -68119.1044977778, - -95572.8339022222, - -95821.0651333333, - -99538.3791066667, - -99293.9578, - -108511.044244444, - -105328.87812, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9467.72085866667, - -19082.534108, - -27872.6159435556, - -31535.9169111111, - -24281.586312, - -6888.51923822222, - -3046.26905022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16894.2893497778, - -82126.1451822222, - -142692.807146667, - -124151.663302222, - -144407.273146667, - -164633.57588, - -155992.960311111, - -180468.208013333, - -173722.590248889, - -179869.170662222, - -186030.404631111, - -147748.869955556, - -115294.468182222, - -85308.3113066667, - -49111.3914444445, - -20027.9228982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -25155.3485226667, - -48712.2285911111, - -48344.1312755556, - -56127.5138444445, - -86310.0283644445, - -102301.746613333, - -127578.250733333, - -140910.934791111, - -144905.787106667, - -146267.68856, - -108183.683813333, - -73234.6607422222, - -45526.8386844444, - -18820.0596208889, - -5503.93408088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -20160.4496546667, - 10373.2226706667, - -40262.1092444444, - -41993.2802977778, - -34516.7431822222, - -36385.9507288889, - -46331.6119555556, - -62019.7085333333, - -85494.9976044444, - -93848.9896266667, - -108612.446848889, - -82469.3314533333, - -54605.5955644445, - -36869.2249911111, - -9014.54499955556, - -5277.74179733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23619.1576795556, - 20590.0332893333, - -36009.06128, - -33645.1496977778, - -30591.6417911111, - -42000.3140044444, - -76381.9514044445, - -112900.663346667, - -132869.649644444, - -144504.572755556, - -155178.515693333, - -128548.902253333, - -96297.0126177778, - -63398.6081111111, - -27294.8555551111, - -10967.6294982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6282.44818044444, - -35486.80856, - -47623.7624844444, - -61371.4352355556, - -109905.769662222, - -138747.190777778, - -170759.055173333, - -176008.837986667, - -205303.933182222, - -205873.07728, - -164055.053506667, - -128510.216866667, - -100602.813382222, - -71898.2564755556, - -45092.2142266667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -10582.3582155556, - -12495.2333577778, - -14820.8698528889, - -14761.2298817778, - -33002.7378222222, - -55159.7930355556, - -69541.3786, - -89681.8114977778, - -104420.357675556, - -106638.319844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3197.02482977778, - -11483.2001968889, - -12726.4371573333, - -2782.00976004444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -17767.14304, - -85457.4845022222, - -152345.983404444, - -152182.742795556, - -158644.960795556, - -175621.397977778, - -175532.890502222, - -201069.641768889, - -215492.843431111, - -222399.357235556, - -232074.513826667, - -200484.671831111, - -156992.918942222, - -134206.053911111, - -99923.7676177778, - -76249.4832622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -36307.4076711111, - -117843.893777778, - -138070.489582222, - -168828.595764444, - -196496.26708, - -211683.212057778, - -229062.328946667, - -235404.09472, - -241166.458906667, - -243326.392995556, - -200291.537968889, - -156334.681226667, - -126792.820155556, - -105280.814457778, - -80953.8607377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1462.14349617778, - -40898.3666266667, - -126377.538391111, - -161088.001577778, - -182003.314493333, - -219155.939248889, - -225198.186346667, - -242396.185288889, - -239715.463835556, - -278460.050866667, - -259189.453026667, - -217528.515368889, - -174823.365342222, - -132099.458764445, - -107400.304733333, - -87655.5178355556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -284.488230551111, - -36514.9020177778, - -110190.634782222, - -155667.944448889, - -192395.029951111, - -221194.248826667, - -231547.86504, - -241491.474768889, - -243857.73092, - -250985.806484444, - -256630.649155556, - -212801.864488889, - -169100.565755556, - -136528.935537778, - -99206.0364666667, - -82246.3043377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -382.249719511111, - -36823.7989688889, - -125239.836337778, - -169110.823244444, - -195278.263542222, - -218792.824142222, - -235302.105973333, - -252766.799626667, - -265638.189755555, - -271703.882542222, - -277822.328128889, - -239227.500435556, - -189659.211128889, - -165254.007422222, - -124063.448897778, - -102980.792377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4611.59116177778, - -64086.73908, - -105665.323755556, - -131630.838057778, - -154802.212386667, - -178518.11284, - -165210.925968889, - -171532.176764444, - -173317.272902222, - -181981.627231111, - -185216.546155556, - -10325.2469297778, - -13420.7519266667, - -12841.877868, - -7601.414716, - -3233.30703333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7255.73734044444, - -12059.1435444445, - -18556.6473062222, - -18747.9934346667, - -31021.28404, - -36410.2756311111, - -18486.163704, - -26836.7561013333, - -22498.6002862222, - -32707.6152133333, - -19465.3435933333, - -5340.165944, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -24563.9310204444, - -68940.5828222222, - -148455.757475556, - -211114.654102222, - -234992.915951111, - -244483.730813333, - -266917.445155556, - -259520.03724, - -287107.114, - -290776.950453333, - -313565.573911111, - -299146.475244444, - -266043.800173333, - -209966.987631111, - -182399.546635556, - -142936.935382222, - -109083.412124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7350.69238044444, - -60558.7490444445, - -136398.225822222, - -140248.59408, - -141601.996471111, - -162245.046324444, - -165654.049488889, - -189331.264555556, - -185872.439302222, - -191360.488928889, - -192237.650764444, - -152765.368164444, - -116975.231004444, - -86548.5882488889, - -50438.4174355556, - -22027.2833253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 300.107748488889, - -25577.8984506667, - -39157.8172977778, - -45987.8395422222, - -56625.7347333333, - -93916.3959822222, - -102622.073337778, - -140341.497622222, - -151909.307448889, - -169482.437413333, - -177740.595182222, - -142391.823115556, - -112498.569782222, - -90910.3655955556, - -50850.7684888889, - -26365.2926048889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -18637.0660191111, - -36826.4366088889, - -40562.8002044444, - -71258.1891688889, - -129767.491933333, - -140962.808377778, - -164593.425137778, - -173566.383346667, - -175735.109568889, - -195292.037884444, - -160182.411844444, - -122487.898604444, - -90899.5219644445, - -67141.4192711111, - -38905.7761422222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 87.3199514133333, - -17073.3851057778, - -37779.2107911111, - -63041.0613555555, - -116257.792924445, - -143268.398808889, - -158008.410342222, - -176921.461426667, - -190804.826102222, - -198294.258346667, - -212409.442271111, - -178607.7926, - -139578.047377778, - -111544.916386667, - -77036.6722666667, - -56118.1355688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -14350.4614124445, - -21425.6376413333, - -35913.5200977778, - -55173.5673777778, - -84941.3862755556, - -86141.5124755556, - -96418.6371288889, - -107026.345995556, - -115471.776204444, - -126700.795826667, - -4583.10464977778, - -11200.9141026667, - -9515.87244222222, - -3132.31472844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6869.64545866667, - -8291.77302533333, - -8491.03207377778, - -7599.65628933333, - -15814.6446835556, - -18462.6300937778, - -18071.5853102222, - -24712.6353022222, - -16639.9329324444, - -2730.34718457778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10956.4341817778, - -74645.7981422222, - -137372.980337778, - -161395.726244444, - -192131.852093333, - -215664.876173333, - -226725.672977778, - -249357.503391111, - -247871.339786667, - -254640.110168889, - -261851.417928889, - -222212.084795556, - -180819.014133333, - -153162.47952, - -121024.594546667, - -96716.3973777778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3907.42920311111, - -71837.0046133333, - -173828.681991111, - -169011.472137778, - -206146.219555556, - -234470.077088889, - -232580.940706667, - -256400.295262222, - -251646.095697778, - -268230.989875556, - -261944.907613333, - -236064.090862222, - -185312.087337778, - -166862.088608889, - -132181.518675556, - -107543.909577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5896.26837733333, - -65447.4682488889, - -149449.268542222, - -174141.975008889, - -198467.170302222, - -229805.850355556, - -234825.572346667, - -255318.569791111, - -252798.451306667, - -258639.06548, - -263545.368951111, - -236491.974684444, - -187337.794857778, - -158440.690231111, - -134082.084831111, - -117751.869448889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3234.36208933333, - -81259.8269777778, - -177222.738528889, - -199113.978244444, - -214636.196573333, - -238177.426644444, - -250050.616568889, - -258046.475693333, - -259072.810724445, - -259823.36584, - -273502.753022222, - -242032.48404, - -193497.2704, - -167868.787875556, - -144229.378982222, - -110018.895111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6511.95216755556, - -102979.620093333, - -176124.894146667, - -204956.643915556, - -224818.952328889, - -254913.545515556, - -250829.599582222, - -264648.781684444, - -260930.295426667, - -276280.481013333, - -290121.93652, - -251551.7268, - -209446.493337778, - -178093.745871111, - -139655.12508, - -109065.534786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7210.86815333333, - -63441.3964933333, - -96009.8029288889, - -127807.432342222, - -155118.143044444, - -171841.952928889, - -173363.285066667, - -176692.86596, - -174298.768053333, - -175604.106782222, - -172457.695333333, - -449.7703728, - -3271.201128, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2946.771408, - -7607.89158755556, - -9761.43672622222, - -15227.4180982222, - -16847.1635151111, - -30800.6014933333, - -35933.7420044444, - -41920.8917333333, - -69211.3805288889, - -73412.2618355556, - -36294.8056133333, - -35552.1634177778, - -13540.2663257778, - -6550.75478266667, - -3044.77438755556, - 0, - 0, - 0, - 0, - 0, - 0, - -27864.5271808889, - -87120.9561288889, - -154703.447422222, - -220937.225462222, - -234686.070497778, - -251195.938471111, - -263404.694817778, - -264736.703017778, - -279543.534764445, - -283935.791506667, - -276757.600782222, - -275782.260124444, - -234008.490088889, - -175033.497328889, - -142909.679768889, - -114169.075115556, - -97931.7632755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12799.2946355556, - -91262.344, - -180398.164017778, - -200315.5698, - -210836.822688889, - -234665.262448889, - -249409.376977778, - -257209.757671111, - -274689.984093333, - -268367.561013333, - -275819.480155555, - -238911.276706667, - -175197.32408, - -146700.847662222, - -115408.472844444, - -98972.16572, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12229.681624, - -93426.0880133333, - -161080.967871111, - -147655.966413333, - -165578.144071111, - -170719.490573333, - -165997.23576, - -186593.687306667, - -185167.017137778, - -191464.822244445, - -192319.710675556, - -151381.486377778, - -118399.556604444, - -102389.374875556, - -85364.8740311111, - -65412.8858577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2961.42496355556, - -46790.8543866667, - -137251.941968889, - -146216.694186667, - -173996.611737778, - -193783.893946667, - -188822.786177778, - -219235.36152, - -214067.638617778, - -225600.866053333, - -229586.926235556, - -185999.046022222, - -145741.918986667, - -125124.073248889, - -98905.0524355556, - -74518.0191377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7852.10774444445, - -96263.6025111111, - -172367.13636, - -179963.832631111, - -219189.349355555, - -212144.212915555, - -228122.156822222, - -258314.928831111, - -256203.937617778, - -272174.261675556, - -287328.089617778, - -224315.45616, - -145956.740111111, - -118539.644595556, - -88291.4821466667, - -70944.3100088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3393.55831688889, - -39974.6064844444, - -56461.9079822222, - -66099.2584, - -99121.0458444445, - -114528.087226667, - -110893.712377778, - -130610.364448889, - -140048.426511111, - -141954.854088889, - -149048.054191111, - -1330.57508226667, - -6452.98626, - -6494.30928666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7737.253176, - -7992.72326355556, - -7911.63048711111, - -21227.1405777778, - -32437.1105777778, - -39789.6786133333, - -41694.3477644444, - -20401.2368795556, - -15637.8641893333, - -2962.09902711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10709.2580066667, - -20742.3716528889, - -42454.2811555556, - -70872.8006577778, - -79020.7636888889, - -86133.3064844444, - -90472.2242844444, - -90873.1455644445, - -82898.38756, - -71755.5308444445, - -24585.8234324445, - -10957.4892377778, - -3185.09683555556, - 0, - 0, - 0, - 0, - 0, - 0, - -55874.5934755556, - -121073.830493333, - -204618.146782222, - -261937.873906667, - -285111.299733333, - -299105.445288889, - -307173.692977778, - -312182.278266667, - -313014.600222222, - -325833.530622222, - -328673.389688889, - -337116.7684, - -293938.6016, - -247294.57584, - -208965.856715556, - -183938.756111111, - -155901.522124445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -53954.3915555556, - -141148.908533333, - -214246.118924444, - -243077.868693333, - -262044.844862222, - -281833.299355556, - -286945.631817778, - -312220.377511111, - -307279.198577778, - -310643.654933333, - -310713.992, - -223851.23152, - -189652.470493333, - -161340.921946667, - -136074.968386667, - -123530.059475556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -20765.7587275556, - -130227.320506667, - -211759.117475556, - -224340.660275556, - -243245.212297778, - -241047.765106667, - -263797.703177778, - -280823.669377778, - -278813.494626667, - -277665.828155556, - -297862.823777778, - -266828.351537778, - -207161.417884444, - -185758.141568889, - -140982.737213333, - -121263.447502222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7136.10571288889, - -91931.4253466667, - -175095.335333333, - -183993.85348, - -213918.465422222, - -229115.667888889, - -214348.986884444, - -234930.491804444, - -249464.181275556, - -253519.40624, - -256416.121102222, - -230285.314693333, - -176199.62728, - -157180.777524444, - -114208.932786667, - -86786.5619911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6196.78349466667, - -73401.1251333333, - -111573.344284445, - -132513.568244444, - -154678.536377778, - -168016.495715556, - -158071.420631111, - -172820.224297778, - -174890.478626667, - -177576.182288889, - -174241.912257778, - -11450.4934608889, - -11417.8746462222, - -9890.03632977778, - -3858.72078444445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8556.12316755556, - -17445.1458102222, - -21819.2907577778, - -23007.2838137778, - -37653.4832844445, - -51998.43496, - -77853.1683822222, - -84632.7823955556, - -90923.8468666667, - -89027.0906355556, - -85402.3871333333, - -70395.3878177778, - -28393.4326151111, - -15004.4202897778, - -5963.41096888889, - 0, - 0, - 0, - 0, - 0, - 0, - -57765.1952133333, - -115417.264977778, - -192839.325755556, - -255885.955462222, - -278057.664231111, - -294161.335644444, - -295855.286666667, - -290749.987911111, - -308093.936266667, - -308480.790133333, - -311537.521822222, - -320068.821866667, - -290922.899866667, - -244745.736386667, - -214773.646924444, - -180590.125595556, - -147908.593711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -32363.2566577778, - -127580.595302222, - -225289.038391111, - -251652.250191111, - -287605.62796, - -307554.685422222, - -316411.2944, - -324757.959644445, - -329218.501955556, - -335288.004666667, - -340680.513111111, - -306748.739866667, - -252753.025284444, - -187831.912751111, - -146841.228724445, - -122395.874275556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2519.05756702222, - -57405.59696, - -120116.660244444, - -146824.2306, - -159806.401608889, - -177012.606542222, - -178769.567853333, - -200967.946093333, - -202484.002951111, - -209508.917484444, - -217852.065875556, - -177261.716986667, - -138986.043733333, - -118197.92368, - -90180.3254577778, - -67002.5035644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -30403.1970666667, - -78124.5522311111, - -111555.173875556, - -137239.926053333, - -160418.041017778, - -162158.883417778, - -175691.148902222, - -185599.003955556, - -205090.284342222, - -206268.430208889, - -184382.465773333, - -151559.673613333, - -133041.682386667, - -96032.6624755556, - -72157.3313377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -781.679267555556, - -36018.7326266667, - -111462.563404444, - -138599.482937778, - -176331.50928, - -208223.21452, - -228545.058435555, - -252072.807235555, - -266184.181235556, - -270351.945506667, - -283706.609897778, - -251608.289524444, - -192464.780875556, - -162727.148302222, - -131718.46632, - -83687.9211333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -69.9420068088889, - -16719.9413457778, - -27823.7609893333, - -53325.16788, - -67386.7197911111, - -102112.129604444, - -104921.509275556, - -113623.376706667, - -128466.842342222, - -134664.124057778, - -141364.608871111, - -4849.44767555556, - -11354.7178217778, - -10494.4661893333, - -6017.07228933333, - -2342.84563075556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4870.57810266667, - -12056.124912, - -15750.4621102222, - -17343.010528, - -16901.8212773333, - -33241.0046355556, - -44639.7124311111, - -90096.50712, - -94506.3481288889, - -90807.7907066667, - -89252.1692488889, - -77356.9989911111, - -30183.6868044444, - -21992.7595484444, - -6865.65969155556, - -3377.90831955555, - 0, - 0, - 0, - 0, - 0, - -89424.2019911111, - -147146.315751111, - -209565.480208889, - -284446.028311111, - -300207.392666667, - -315095.405111111, - -332046.638177778, - -335795.017688889, - -325950.759066667, - -332832.068755555, - -350093.9572, - -337275.0268, - -310435.574444444, - -260079.21692, - -242089.046764444, - -214802.074822222, - -180389.078813333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -71305.3736177778, - -178432.243004444, - -260747.419053333, - -281384.900555555, - -299462.992044444, - -321091.640044444, - -326621.891911111, - -325804.223511111, - -331138.117733333, - -325900.936977778, - -341946.580311111, - -310001.8292, - -253352.355706667, - -238926.809475556, - -211559.82912, - -182462.263853333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -86373.3317244444, - -175708.733168889, - -234612.80272, - -253517.061671111, - -259827.761906667, - -290313.311955556, - -299518.675555556, - -313887.952133333, - -324294.907288889, - -312472.418666667, - -314318.766666667, - -264638.231124445, - -213429.036666667, - -188188.580293333, - -169893.323111111, - -165353.358528889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -70905.6246222222, - -163678.7502, - -230251.025373333, - -236964.698386667, - -241497.04312, - -261263.51728, - -269418.807088889, - -270002.604742222, - -271628.856337778, - -281773.219777778, - -282014.124231111, - -244867.653968889, - -191395.364391111, - -167710.529475556, - -140614.932968889, - -124879.945013333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -47233.3917644444, - -152361.809244444, - -230525.046862222, - -248322.962368889, - -271469.718724444, - -281171.251715556, - -282502.673773333, - -315259.524933333, - -304717.757066667, - -274303.423297778, - -316229.590311111, - -274801.058044444, - -212859.306426667, - -200282.452764444, - -164939.835191111, - -145650.773871111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -33408.6413111111, - -120100.541333333, - -149807.987582222, - -166302.322786667, - -193727.038151111, - -207721.476777778, - -202151.074168889, - -198159.738706667, - -212416.182906667, - -179236.723204445, - -194928.043564444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -21198.4782231111, - -41722.18952, - -51852.4855466667, - -81828.6780044445, - -87720.5796222222, - -88304.6703466667, - -42803.3288488889, - -31809.6453288889, - -21090.4522115556, - -3457.53574044444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -67370.0147377778, - -125698.492626667, - -198727.417448889, - -281874.622382222, - -280161.035595556, - -307751.043066667, - -307030.088133333, - -293745.174666667, - -341123.050488889, - -348042.459422222, - -345354.997333333, - -351166.597466667, - -307135.593733333, - -253510.907177778, - -234738.823297778, - -200358.358182222, - -177293.954808889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -60213.8043466667, - -149139.492377778, - -232865.805826667, - -265865.612937778, - -292907.28436, - -321592.791644444, - -305828.496577778, - -329397.275333333, - -314655.798444444, - -334203.641555556, - -331844.419111111, - -304767.579155556, - -257790.038471111, - -222408.44244, - -164560.015031111, - -135754.05552, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -35735.3328622222, - -143179.598262222, - -233774.326271111, - -259757.717911111, - -281698.486644445, - -295090.371066667, - -305620.416088889, - -316059.609066667, - -328834.5788, - -335009.587111111, - -330288.211511111, - -303375.491377778, - -246199.369097778, - -224449.9758, - -191158.269862222, - -169716.015088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -56043.1093644444, - -168393.092093333, - -252340.967302222, - -262408.25304, - -286180.423146667, - -306848.384044444, - -323204.682755556, - -330214.943733333, - -317302.230577778, - -299231.465866667, - -326070.918222222, - -318070.076888889, - -247564.201262222, - -227908.214911111, - -201494.59488, - -132949.951128889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -57995.5491066667, - -158197.73428, - -235519.564737778, - -267548.720328889, - -288732.779453333, - -314227.914622222, - -328981.114355556, - -331724.259955555, - -342222.067155556, - -325317.725466667, - -349836.054622222, - -322715.254, - -241955.406337778, - -207237.909444444, - -190539.596746667, - -157364.826182222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -48460.7735777778, - -142082.633093333, - -163812.097555555, - -186292.996346667, - -204016.471791111, - -226436.997933333, - -228490.84028, - -223418.65856, - -215263.368751111, - -223122.363666667, - -227551.254297778, - -25584.1701724444, - -24185.0779951111, - -32139.3503288889, - -8668.51593866667, - -4793.09010088889, - -3493.52487288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1468.93688453333, - -12591.0089968889, - -29632.1269733333, - -58937.4796577778, - -86917.5647777778, - -93834.6291422222, - -102822.533977778, - -106731.809528889, - -112301.039853333, - -108354.2512, - -102364.756902222, - -87838.1011377778, - -42999.3934222222, - -24860.3431422222, - -16043.0350004444, - -3797.52753644444, - 0, - 0, - 0, - 0, - 0, - -122297.988524444, - -178637.685853333, - -243375.335871111, - -303870.781555556, - -307088.702355555, - -293997.215822222, - -317398.944044444, - -322858.858844444, - -346254.725644444, - -347048.948355555, - -354501.746711111, - -351550.520622222, - -271038.318048889, - -229865.343791111, - -203595.328604445, - -178744.94988, - -160303.450213333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -69427.0808666667, - -178879.762591111, - -263887.96908, - -285404.663915556, - -304418.824533333, - -325789.569955555, - -334590.495422222, - -345331.551644445, - -341293.031733333, - -348868.919955556, - -357063.188222222, - -327196.311288889, - -261247.984511111, - -241428.757551111, - -199012.57564, - -179123.304684444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -86421.6884577778, - -166713.501555556, - -268414.15932, - -277933.109008889, - -315757.745822222, - -326255.553022222, - -337313.126044444, - -346266.448488889, - -336738.706666667, - -330346.825733333, - -306593.412177778, - -294518.8824, - -257163.745506667, - -236766.875386667, - -201920.427204444, - -166477.579311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -84406.8245688889, - -185678.426226667, - -262307.729648889, - -277690.153057778, - -309225.190755556, - -320065.891155556, - -331340.3368, - -303240.678666667, - -311179.975066667, - -327609.541555555, - -346055.437288889, - -326706.882533333, - -253614.36128, - -232063.670195555, - -185213.322373333, - -173864.143595556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -68420.0885288889, - -169367.260466667, - -248502.028817778, - -268039.321368889, - -301948.235066667, - -323793.755688889, - -331498.5952, - -330628.174, - -338634.876755556, - -336700.607422222, - -275012.362315556, - -270089.939933333, - -211712.81224, - -194657.832, - -160589.194546667, - -136022.508657778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -47999.77272, - -146973.989937778, - -185451.882257778, - -209497.487711111, - -223396.092084444, - -240056.89168, - -221208.31624, - -236379.435377778, - -209223.759293333, - -212237.116457778, - -202823.379297778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6003.67893955556, - -15985.5344484444, - -18904.493408, - -33816.0101555556, - -53159.2896311111, - -77814.4829955556, - -91857.8644977778, - -99146.5430311111, - -94559.394, - -94704.4642, - -74931.8355466667, - -27895.3289546667, - -13270.758132, - -5574.76936844444, - 0, - 0, - 0, - 0, - 0, - 0, - -26330.8567493333, - -100679.011871111, - -187748.094413333, - -276938.132586667, - -281579.499773333, - -293830.165288889, - -300491.671644445, - -314526.847155556, - -332752.939555556, - -332550.720488889, - -335724.680622222, - -331785.804888889, - -293402.281466667, - -252236.927057778, - -216573.103546667, - -184701.034071111, - -164288.338111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16240.9459217778, - -21624.427776, - -23746.1160848889, - -54473.4204933333, - -58602.4993777778, - -96110.32632, - -100804.153235556, - -120063.028231111, - -102751.610768889, - -96753.91048, - -87214.4458133333, - -44905.2348577778, - -29026.1438368889, - -8172.78615422222, - -7279.73986444445, - 0, - 0, - 0, - 0, - 0, - -126383.399813333, - -164170.816595555, - -255451.624075556, - -321449.1868, - -330540.252666667, - -347333.227333333, - -353604.949111111, - -340366.927022222, - -350337.206222222, - -363765.724533333, - -364703.552088889, - -359146.923822222, - -342227.928577778, - -278720.884155556, - -256441.325217778, - -230753.642328889, - -198576.192755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -124013.91988, - -214423.133875556, - -295529.977733333, - -318796.893244444, - -317527.895333333, - -350586.316666667, - -357605.369777778, - -362452.765955555, - -363918.121511111, - -350984.893377778, - -372182.726844444, - -346814.491466667, - -292231.462377778, - -268606.413968889, - -237328.399635556, - -205988.547297778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -123184.821706667, - -231865.554124444, - -303141.034488889, - -317908.887777778, - -337512.4144, - -337374.670977778, - -370773.0548, - -359102.963155555, - -352459.041066667, - -362613.955066667, - -371579.000355556, - -338585.054666667, - -289180.592111111, - -265464.398586667, - -238945.859097778, - -209142.578595556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -110961.118733333, - -181360.316475556, - -215061.442755556, - -236706.209666667, - -253805.150573333, - -266925.065004444, - -250332.257906667, - -264052.381973333, - -264002.852955555, - -258391.420391111, - -264955.334066667, - -43229.4542444445, - -37520.1359288889, - -30371.5453866667, - -22709.9338644444, - -3878.79615555556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3987.81860888889, - -19383.6060604444, - -34159.4894977778, - -60264.5056488889, - -90603.5201422222, - -104457.870777778, - -117913.05856, - -120604.037502222, - -133146.894915556, - -130485.809226667, - -113042.216693333, - -108062.645444444, - -84887.4611911111, - -39952.9192222222, - -25004.7978928889, - -6550.81339688889, - -3447.83508666667, - 0, - 0, - 0, - 0, - -121755.806968889, - -146912.445004445, - -221777.167266667, - -288334.202742222, - -296755.014977778, - -295682.374711111, - -325109.644977778, - -328315.842933333, - -337491.899422222, - -347019.641244444, - -349759.856133333, - -353997.6644, - -314459.4408, - -261570.362733333, - -243873.55676, - -207587.836351111, - -179350.727866667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -78162.9445466667, - -185295.968426667, - -268563.625586667, - -273702.041377778, - -296250.932666667, - -308855.921155556, - -307569.338977778, - -322422.182888889, - -335923.968977778, - -330132.883822222, - -339563.912177778, - -304204.882622222, - -234325.886102222, - -207827.56852, - -182821.275964444, - -161362.609208889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -66331.0776488889, - -168130.500377778, - -244095.997733333, - -265277.712288889, - -295691.166844445, - -307853.617955556, - -315971.687733333, - -324664.176888889, - -322199.448844444, - -341208.041111111, - -347966.260933333, - -311437.877644444, - -261325.355284444, - -250926.313048889, - -222338.398444444, - -196963.422431111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -100108.695488889, - -185480.310155555, - -275173.551426667, - -283452.224173333, - -306455.668755556, - -321302.651244444, - -334329.662133333, - -353358.769377778, - -345826.841822222, - -354970.660488889, - -361775.771688889, - -315959.964888889, - -278677.802702222, - -230874.387626667, - -178669.630604445, - -163587.312013333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -92329.1228444444, - -183302.498728889, - -270403.526022222, - -286391.141275555, - -308867.644, - -331659.784311111, - -354457.786044444, - -359073.656044444, - -353637.186933333, - -362042.4664, - -357174.555244445, - -342157.591511111, - -270042.755484444, - -216463.494951111, - -199254.652377778, - -174029.435702222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -99660.8828311111, - -168359.975057778, - -195402.818764444, - -206943.95912, - -220071.786471111, - -247060.412022222, - -240883.645284444, - -253169.186262222, - -243572.279657778, - -246735.103088889, - -239954.02372, - -34308.0765511111, - -18444.6062204445, - -34816.5549288889, - -26634.2732706667, - -4862.07904044444, - -4277.37286666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10832.4944088889, - -52230.54728, - -63113.1568488889, - -97764.1266, - -115067.338071111, - -118536.420813333, - -116851.554995556, - -124831.881351111, - -130776.82884, - -116125.324782222, - -93163.2032266667, - -76051.6602622222, - -37243.4768, - -23436.75022, - -7093.55178755556, - -9131.27522311111, - 0, - 0, - 0, - 0, - -123352.458382222, - -156938.700786667, - -222136.76552, - -296728.638577778, - -308568.711466667, - -312276.061022222, - -330285.2808, - -331123.464177778, - -335074.062755556, - -324672.969022222, - -339467.198711111, - -338432.657688889, - -325042.238622222, - -266949.096835556, - -249056.51936, - -214312.352995556, - -176965.715164444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -95283.8657866667, - -178065.904115556, - -251218.211875556, - -267306.35052, - -279352.745471111, - -302466.970933333, - -310590.902133333, - -321938.615555556, - -323852.369911111, - -338927.947866667, - -343203.855377778, - -313357.493422222, - -259234.292906667, - -217287.903986667, - -184661.762542222, - -154916.803191111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -67402.25256, - -167568.389986667, - -237306.712373333, - -243389.989426667, - -255018.758044444, - -273974.890582222, - -291963.888453333, - -307765.696622222, - -316598.859911111, - -336545.279733333, - -338453.172666667, - -316935.891688889, - -260723.973364444, - -240730.369093333, - -203765.309848889, - -179051.795333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -70289.5891466667, - -171559.432377778, - -253527.905302222, - -262625.125662222, - -278173.42732, - -302616.4372, - -319869.533511111, - -324256.808044444, - -329587.771555556, - -346395.399777778, - -353909.743066667, - -326235.038044445, - -268041.959008889, - -248628.928608889, - -214222.673235556, - -191838.780982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -90844.4245955556, - -186157.890564444, - -271297.685982222, - -296661.232222222, - -306569.966488889, - -329576.048711111, - -330792.293822222, - -350870.595644445, - -342945.9528, - -349161.991066667, - -355542.149155556, - -332538.997644445, - -281974.26656, - -251517.144408889, - -215949.448222222, - -188008.634631111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -77191.9999555556, - -161481.303008889, - -193421.364982222, - -215149.364088889, - -238832.147506667, - -249671.968693333, - -242474.728346667, - -245037.928284444, - -230561.38768, - -224066.052644444, - -231966.077515555, - -4882.94570355556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4738.31511022222, - -17821.4198097778, - -22128.9203866667, - -37890.8708844444, - -41438.7897555555, - -57504.6549955556, - -79769.5603777778, - -90657.4452266667, - -96382.8824533333, - -101437.186835556, - -91478.63048, - -74694.1548755556, - -36989.3841466667, - -18854.4368622222, - -7195.51122711111, - -3240.31143288889, - 0, - 0, - 0, - 0, - 0, - -75832.7361422222, - -140157.448964445, - -208972.30428, - -280390.217204445, - -297077.3932, - -279210.605982222, - -302918.300444445, - -306783.9084, - -315863.251422222, - -317715.460844445, - -322310.815866667, - -336920.410755556, - -306669.610666667, - -249541.84512, - -231425.068244444, - -199262.565297778, - -175734.816497778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -78599.6205022222, - -164015.488906667, - -235085.233351111, - -253124.053311111, - -286758.066306667, - -324376.9672, - -317073.635111111, - -334933.388622222, - -334106.928088889, - -341378.022355556, - -338130.794444444, - -247943.728351111, - -201716.15664, - -178977.648342222, - -164871.549622222, - -147451.98892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -86700.6921555556, - -176772.288231111, - -253849.404311111, - -266805.785062222, - -285305.898951111, - -313275.433511111, - -336902.826488889, - -337896.337555556, - -336181.871555556, - -353669.424755556, - -344938.836355556, - -319309.767688889, - -264538.293875556, - -235230.596622222, - -198950.737635556, - -177658.828342222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -85315.9311555556, - -172573.751493333, - -228052.698968889, - -220526.046693333, - -230612.968195556, - -249651.453715556, - -241197.231373333, - -262873.649964445, - -267855.858853333, - -279316.111582222, - -266173.337604444, - -220802.412751111, - -175832.116106667, - -153973.700355556, - -134088.239324444, - -110439.159084444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23090.164324, - -119372.259622222, - -192193.397026667, - -192013.744435556, - -196516.195915556, - -203927.671244444, - -193487.599053333, - -213194.286706667, - -219622.508457778, - -219376.621795555, - -218981.268866667, - -166353.024088889, - -132380.807031111, - -113280.483506667, - -86975.8859288889, - -72000.2452222222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5539.835292, - -52022.7598622222, - -57776.9180577778, - -58433.9834888889, - -66182.7836666667, - -113613.412288889, - -106482.406013333, - -104828.898804444, - -124988.088253333, - -150814.686848889, - -148963.35664, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7525.714448, - -24296.5915528889, - -40084.5081511111, - -55500.9278088889, - -63569.1754977778, - -87065.5656888889, - -91209.8842711111, - -69503.2793555556, - -28943.8201617778, - -12799.0601786667, - -3966.80541022222, - 0, - 0, - 0, - 0, - 0, - 0, - -60376.1657422222, - -123257.796413333, - -210793.155093333, - -297475.969911111, - -302880.2012, - -329142.303466667, - -336061.7124, - -337318.987466667, - -357441.249955555, - -369849.8808, - -358226.680533333, - -343672.769155556, - -330475.777022222, - -269133.941968889, - -244307.595075556, - -216666.886302222, - -185574.972124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -111190.007271111, - -196688.8148, - -281806.043742222, - -288327.462106667, - -320807.361066667, - -333796.272711111, - -335490.223733333, - -346099.397955556, - -353704.593288889, - -370043.307733333, - -364246.361155556, - -342383.256266667, - -287558.443511111, - -239057.812262222, - -205974.479884444, - -195091.284173333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -113458.377671111, - -196900.412142222, - -271198.041804444, - -296080.951422222, - -318389.5244, - -331850.280533333, - -354097.308577778, - -351588.619866667, - -347327.365911111, - -357007.504711111, - -365184.188711111, - -340006.449555555, - -277725.614662222, - -270250.249831111, - -230034.445822222, - -176784.304146667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -112215.170017778, - -203783.187186667, - -268007.083546667, - -277453.058528889, - -300582.523688889, - -324807.781733333, - -334836.675155555, - -362578.786533333, - -353156.550311111, - -358771.7928, - -367783.729466667, - -342096.046577778, - -267369.360808889, - -244544.689604444, - -213040.131302222, - -185223.579862222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -114703.929893333, - -193755.75912, - -270975.30776, - -285605.124555556, - -306792.700533333, - -318081.799733333, - -340657.067422222, - -336829.558711111, - -344472.853288889, - -318530.198533333, - -334974.418577778, - -336703.538133333, - -268332.39248, - -235011.379431111, - -202019.192168889, - -182228.686177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -100496.135497778, - -170495.584244444, - -189204.364764444, - -174478.713715556, - -204237.74048, - -224755.062826667, - -215672.496022222, - -223655.166946667, - -222577.544471111, - -219638.334297778, - -214212.415746667, - 0, - -4244.226524, - -8572.066236, - -4010.56092711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2620.31949733333, - -17762.659052, - -22344.9137955556, - -47292.8852, - -64604.0095911111, - -97797.5367066667, - -120155.345631111, - -121829.074746667, - -123623.842231111, - -120295.726693333, - -101416.378786667, - -95493.11856, - -54917.1301555556, - -34027.9005688889, - -23963.0473213333, - -7639.77772444444, - -4002.67731422222, - 0, - 0, - -19290.7904395556, - 0, - -122227.944528889, - -173705.885195555, - -258998.370662222, - -323987.182622222, - -333019.634266667, - -331911.825466667, - -346547.796755556, - -363079.938133333, - -366004.787822222, - -374788.129022222, - -372590.095688889, - -379231.087066667, - -329672.762177778, - -206535.417991111, - -230758.331466667, - -168310.152968889, - -161362.90228, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -77484.1918533333, - -168434.41512, - -254466.612071111, - -265955.292697778, - -303267.055066667, - -324409.205022222, - -346826.214311111, - -353865.7824, - -348086.420088889, - -364551.155111111, - -364510.125155556, - -271437.187831111, - -244666.607186667, - -235678.40928, - -209684.760151111, - -175734.523426667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -115490.825826667, - -199593.735653333, - -291757.566391111, - -294556.981644445, - -310116.126933333, - -318509.683555556, - -351559.312755556, - -347239.444577778, - -352494.2096, - -350093.9572, - -355627.139777778, - -346008.545911111, - -270678.133653333, - -231782.321928889, - -209130.855751111, - -182848.531577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -113887.726848889, - -210440.004404444, - -284569.70432, - -301414.845644445, - -322946.780177778, - -337178.313333333, - -347051.879066667, - -344367.347688889, - -349205.951733333, - -355252.008755556, - -364325.490355556, - -331841.4884, - -268021.737102222, - -248827.04468, - -223148.446995556, - -202850.34184, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -100601.934168889, - -188427.140177778, - -260682.650337778, - -270714.474471111, - -287684.464088889, - -298539.818044444, - -310787.259777778, - -323304.326933333, - -332234.203688889, - -342567.891066667, - -352250.960577778, - -292545.92768, - -233983.285973333, - -216843.901253333, - -189725.152128889, - -170202.806204444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -85960.3945288889, - -162440.231684444, - -176564.500813333, - -182577.733871111, - -195436.521942222, - -211794.872151111, - -204441.717973333, - -207877.097537778, - -214100.462582222, - -236985.213364444, - -229666.641577778, - -24677.0564693333, - -20906.5207822222, - -24716.8262191111, - -10472.2513991111, - -5053.77685422222, - -3915.63519422222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6409.14282177778, - -18757.9578524444, - -29705.6878222222, - -45869.7318844445, - -56495.0250177778, - -96723.7241555556, - -105257.66184, - -111248.914564445, - -113846.989964445, - -120285.176133333, - -93930.1703244445, - -87088.1321644444, - -50666.1336888889, - -29443.6822488889, - -7298.43780133333, - -7563.98953511111, - -3505.01326044444, - 0, - 0, - 0, - 0, - -134422.04732, - -169150.387844445, - -243996.353555556, - -293812.581022222, - -310221.632533333, - -316546.107111111, - -336073.435244444, - -328667.528266667, - -346497.974666667, - -345264.145288889, - -348048.320844444, - -370720.302, - -330868.492311111, - -279322.266075556, - -246268.826951111, - -226656.801266667, - -192843.428751111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -121138.013066667, - -200987.581857778, - -273425.089177778, - -287176.278782222, - -308217.026133333, - -322041.190444444, - -331401.881733333, - -350894.041333333, - -344264.7728, - -364035.349955556, - -368390.386666667, - -327146.4892, - -281413.035382222, - -246904.791262222, - -211012.079213333, - -192943.659071111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -110066.372631111, - -197034.931782222, - -274620.233168889, - -285231.458888889, - -309591.529644445, - -325742.678577778, - -336296.169288889, - -353297.224444445, - -366614.375733333, - -368548.645066667, - -372294.093866667, - -323993.044044444, - -276435.808702222, - -244941.507888889, - -228350.752288889, - -212317.124871111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -112219.273013333, - -197323.313755556, - -280219.063675556, - -297168.245244445, - -309670.658844444, - -326434.3264, - -352283.1984, - -358806.961333333, - -355961.240844444, - -364070.518488889, - -371142.3244, - -342670.465955556, - -285210.65084, - -254832.95096, - -228287.742, - -206701.29624, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -104689.690026667, - -201550.571462222, - -277750.818777778, - -304128.684133333, - -315807.567911111, - -331952.855422222, - -348540.680311111, - -339707.517022222, - -356986.989733333, - -352110.286444444, - -370283.626044444, - -322715.254, - -291270.775275556, - -261099.9836, - -217680.326204444, - -207707.116293333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -123890.830013333, - -197092.37372, - -212676.723124444, - -230995.132924444, - -252344.191084444, - -256691.021804444, - -253585.054168889, - -247259.407306667, - -261684.660466667, - -259548.465137778, - -256451.582706667, - -30729.9713555556, - -10074.6418226667, - -11336.3422631111, - -4157.36024666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1804.02560084445, - -33814.5448, - -54723.4101511111, - -79554.1531111111, - -102433.042471111, - -107028.690564444, - -120306.863395556, - -111135.789115556, - -76173.2847733333, - -32786.4513422222, - -20028.3331977778, - -3430.54389111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -123668.095968889, - -174758.010484444, - -242386.513942222, - -294565.773777778, - -298161.756311111, - -294498.367422222, - -311566.828933333, - -323981.3212, - -333649.737155556, - -332823.276622222, - -364346.005333333, - -361259.966533333, - -346093.536533333, - -291442.221875556, - -255189.911573333, - -228652.029391111, - -200261.058573333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -115489.360471111, - -210029.411777778, - -271135.324586667, - -287334.244111111, - -316765.910444444, - -337236.927555555, - -333321.497511111, - -345897.178888889, - -359481.024888889, - -353206.3724, - -357532.102, - -330660.411822222, - -270911.125186667, - -235277.194928889, - -202450.592844444, - -185604.572306667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -88124.7246844444, - -187382.341666667, - -243890.847955556, - -249671.675622222, - -252242.202337778, - -271341.060506667, - -271923.685875556, - -305573.524711111, - -317434.112577778, - -326698.0904, - -334247.602222222, - -302021.502844444, - -250154.070671111, - -219935.215333333, - -185747.297937778, - -168040.234475556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -104347.382968889, - -191717.156471111, - -255406.198053333, - -255294.53796, - -274262.686413333, - -286092.794884444, - -299043.900355556, - -327750.215688889, - -345149.847555556, - -342245.512844444, - -336952.648577778, - -317665.638755556, - -251441.238991111, - -205757.314191111, - -183180.288075556, - -162826.499408889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23009.3646186667, - -114750.235128889, - -196257.121053333, - -204789.593382222, - -240155.363573333, - -245309.605204444, - -261407.415195556, - -283077.093151111, - -288423.003288889, - -302206.137644444, - -307891.7172, - -273251.004937778, - -215153.467084444, - -188469.049346667, - -159617.663813333, - -136766.030066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -37541.2370488889, - -124478.730662222, - -142542.461666667, - -160760.641146667, - -187882.907124444, - -209585.702115556, - -218905.65652, - -213862.195768889, - -206889.154822222, - -220224.47652, - -213899.122728889, - -19952.2812444445, - -17427.151244, - -22142.9291857778, - -9090.65556711111, - -4350.99232977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7772.27517377778, - -17812.1001484445, - -22307.7523786667, - -40931.7767333333, - -61520.6084311111, - -105122.556057778, - -111307.235715556, - -111349.731026667, - -115850.131008889, - -108744.62192, - -93060.6283377778, - -75527.9421866667, - -27677.1375124444, - -14019.2617497778, - -6958.70976933333, - 0, - 0, - 0, - 0, - 0, - 0, - -89744.5287155556, - -155012.930515556, - -217259.76916, - -285346.635835556, - -292606.886471111, - -300327.551822222, - -310236.286088889, - -316431.809377778, - -336858.865822222, - -331527.902311111, - -327269.579066667, - -333866.609777778, - -318263.503822222, - -258257.486893333, - -234713.912253333, - -208582.812773333, - -186181.922395556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -109261.306288889, - -191412.069444444, - -268313.049786667, - -295002.449733333, - -307962.054266667, - -315986.341288889, - -329236.086222222, - -337043.500622222, - -339616.664977778, - -338948.462844444, - -346093.536533333, - -317636.331644444, - -268170.324155556, - -234434.029342222, - -204713.981035556, - -174277.960004444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -61278.8247644444, - -154554.860368889, - -219315.663004444, - -233312.4462, - -261219.849684444, - -281008.89032, - -281864.071822222, - -291111.637662222, - -300263.076177778, - -304014.3864, - -316704.365511111, - -296435.567466667, - -235511.651817778, - -201952.665026667, - -167908.938617778, - -143504.614124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -70999.1143066667, - -157788.90008, - -220898.540075556, - -219222.17332, - -222587.508888889, - -241424.654555555, - -249293.90696, - -263118.071271111, - -256984.385986667, - -258750.139431111, - -253207.871648889, - -211445.824457778, - -167314.004262222, - -146437.376733333, - -128070.903271111, - -112490.949933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -30212.9939155555, - -125641.050688889, - -186602.47944, - -203003.031888889, - -217029.122195556, - -229695.069475556, - -243926.30956, - -253189.70124, - -264778.612186667, - -277032.794555556, - -259817.504417778, - -217762.386115556, - -168613.188497778, - -147062.204342222, - -126973.938102222, - -113723.313955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -22398.3406591111, - -104299.026235556, - -117561.666297778, - -119726.582595556, - -120597.883008889, - -131793.199453333, - -118326.581897778, - -123189.510844444, - -125930.898017778, - -123825.475155556, - -122271.612124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6614.937356, - -13624.465656, - -35288.3994177778, - -46633.4752, - -44799.4361866667, - -36194.2822222222, - -21334.6097542222, - -3191.60301422222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8514.94667644444, - -11919.2020888889, - -25755.9391506667, - -44637.6609333333, - -53084.2634266667, - -70284.6069377778, - -76173.2847733333, - -85885.9544666667, - -98265.8643422222, - -93985.8538355555, - -74944.4376044445, - -34179.7114044445, - -21983.0588946667, - -7380.46840533333, - -3472.01345333333, - 0, - 0, - 0, - 0, - 0, - 0, - -125797.843733333, - -162012.054791111, - -234216.277506667, - -282656.829177778, - -297071.531777778, - -299029.2468, - -300283.591155556, - -322375.291511111, - -329177.472, - -331372.574622222, - -335847.770488889, - -316235.451733333, - -310945.518177778, - -248216.284484444, - -215078.733951111, - -190460.760617778, - -174872.308217778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -95474.9481511111, - -179611.854226667, - -272487.261622222, - -286243.726506667, - -299169.920933333, - -316856.762488889, - -348567.056711111, - -354639.490133333, - -358068.422133333, - -343171.617555555, - -345947.000977778, - -316144.599688889, - -270396.785386667, - -228049.768257778, - -202321.055413333, - -175575.092742222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -90708.4396, - -178193.390048889, - -264411.101013333, - -289749.150066667, - -293076.972533333, - -321768.634311111, - -333787.480577778, - -333790.411288889, - -348487.927511111, - -344270.634222222, - -369814.712266667, - -314858.017511111, - -262319.159422222, - -230816.359546667, - -195714.353355556, - -166809.042737778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -57897.0772133333, - -150819.669057778, - -238830.096008889, - -264536.242377778, - -286276.550471111, - -320775.123244444, - -325927.313377778, - -322762.145377778, - -324769.682488889, - -323937.360533333, - -332876.029422222, - -305060.650266667, - -242678.998911111, - -223975.786742222, - -188883.158826667, - -165867.112186667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -55418.8678977778, - -136430.170573333, - -178298.016435556, - -211233.934044444, - -220284.263026667, - -243224.404248889, - -226032.5598, - -219949.575817778, - -201273.03312, - -191576.189266667, - -176464.563564445, - -1474.64004835556, - -8050.45827244445, - -3631.26829511111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4456.17555155556, - -20460.5544724444, - -26795.6968386667, - -43305.0665911111, - -45983.7365466667, - -53688.8691288889, - -75098.88608, - -59770.0946844445, - -27613.6876168889, - -7244.42479555556, - -3372.63303955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -68657.4761288889, - -115558.232182222, - -191081.19216, - -267440.577088889, - -281334.199253333, - -306168.459066667, - -332656.226088889, - -325678.202933333, - -334625.663955556, - -339308.940311111, - -355858.665955556, - -352271.475555555, - -310831.220444444, - -225711.646933333, - -203365.853924444, - -173042.3722, - -148992.37068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -65272.7978666667, - -136098.414075556, - -238233.989368889, - -241104.620902222, - -266003.942502222, - -291880.070115555, - -310561.595022222, - -316865.554622222, - -321358.334755556, - -325467.191733333, - -323371.733288889, - -282045.775911111, - -229133.545226667, - -190566.266217778, - -158023.943111111, - -137709.425973333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -18831.8117724444, - -104911.251786667, - -171882.103671111, - -162591.163306667, - -176409.173124444, - -197864.616097778, - -191332.647173333, - -218719.849435555, - -224195.883146667, - -240014.68944, - -236025.405475556, - -188367.939813333, - -139971.348808889, - -110713.473644444, - -78478.5821333333, - -59033.6069822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -168.485409493333, - -31562.00024, - -69478.6613822222, - -109839.535591111, - -142605.471955555, - -169863.722928889, - -177935.1944, - -203154.256582222, - -210366.736626667, - -225169.465377778, - -230225.235115556, - -191383.934617778, - -146808.111688889, - -112933.487311111, - -91882.7755422222, - -66923.3743644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2108.05757151111, - -36401.4834977778, - -113089.694213333, - -137884.389426667, - -178177.85728, - -208984.320195556, - -224341.246417778, - -249745.236471111, - -264762.493275555, - -287607.972528889, - -285241.423306667, - -247078.582431111, - -197942.279942222, - -169194.348511111, - -145229.337613333, - -122453.023142222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -53310.2212533333, - -136413.758591111, - -148898.880995555, - -149168.213346667, - -147009.451542222, - -167675.360942222, - -170744.98776, - -175733.058071111, - -186711.208822222, - -163701.316675556, - -164899.098306667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12625.4741595556, - -25424.0654244444, - -38299.7050844445, - -50727.3855511111, - -52215.6006533333, - -42215.7212711111, - -50527.2179822222, - -13084.1011413333, - -5692.34949822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4239.06847244445, - -43961.54588, - -115937.759271111, - -180460.588164444, - -193632.376182222, - -215197.13468, - -238052.578351111, - -241567.087115556, - -272222.91148, - -272695.04904, - -254250.325591111, - -274458.457915556, - -217121.146524445, - -164393.257568889, - -122731.147626667, - -92330.0020577778, - -72305.3322488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4158.03431022222, - -47813.6725644445, - -108807.632208889, - -135705.112644445, - -160573.075635556, - -197226.89336, - -209160.749004444, - -234969.177191111, - -238328.651337778, - -241137.444866667, - -248910.569946667, - -216783.528604444, - -159587.77056, - -124983.399115556, - -100441.038128889, - -81000.7521155556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4244.13860266667, - -42478.3129866667, - -125077.474942222, - -147276.439324445, - -178693.955506667, - -209508.917484444, - -213098.745524444, - -238680.922813333, - -236663.714355556, - -237617.953893333, - -246138.996448889, - -207704.478653333, - -157566.752177778, - -124068.138035556, - -100750.228151111, - -82122.6283288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9120.78327733333, - -72327.0195111111, - -156840.521964445, - -179678.088297778, - -204257.962386667, - -233897.416137778, - -234591.994671111, - -251987.230471111, - -252535.273448889, - -245891.35136, - -214565.566435555, - -173145.533231111, - -131186.835324444, - -105150.690884444, - -87869.4597466667, - -75486.9122311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3313.90158888889, - -43578.7950088889, - -126544.881995556, - -146824.523671111, - -179410.514373333, - -207266.044271111, - -213252.900928889, - -229727.600368889, - -251219.970302222, - -255941.345902222, - -253345.322, - -213691.335311111, - -157697.461893333, - -121851.641222222, - -99684.9146622222, - -71727.98216, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2786.12447844444, - -36368.9526044444, - -58702.4366266667, - -95848.0276755556, - -135418.489097778, - -158045.337302222, - -158569.055377778, - -171444.255431111, - -183201.389195556, - -185806.791373333, - -181057.867088889, - -17874.2605311111, - -12087.0146071111, - -7678.08211866667, - -2964.61943866667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3475.94060622222, - -9956.91515733333, - -28800.5670026667, - -41984.7812355556, - -46765.9433422222, - -58516.0434, - -68480.1681066667, - -80103.0753022222, - -76978.3511155556, - -41886.6024133333, - -23667.5144128889, - -11596.0032675556, - -3028.97785466667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -31232.5883111111, - -106162.37236, - -165932.760115556, - -243270.709484444, - -257300.023573333, - -271208.885435555, - -287540.273102222, - -294061.691466667, - -290295.727688889, - -304873.084755556, - -302009.78, - -316628.167022222, - -281965.767497778, - -227844.61848, - -188166.893031111, - -163406.194066667, - -145749.538835555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -49249.7210088889, - -139403.963137778, - -208977.872631111, - -219464.8362, - -238080.127035555, - -243792.669133333, - -267214.326191111, - -274930.302404444, - -277685.46392, - -296626.063688889, - -286700.624368889, - -261894.499382222, - -209764.182422222, - -175098.559115556, - -155345.273155556, - -140887.782173333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -85429.9358177778, - -164254.634933333, - -228501.683911111, - -222904.611831111, - -232595.887333333, - -247103.200404444, - -234525.7606, - -256178.440431111, - -256436.929151111, - -259087.757351111, - -274582.133924444, - -232182.657066667, - -181801.681568889, - -146427.119244444, - -133883.382617778, - -128625.979955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -38044.4401466667, - -135699.837364445, - -209576.32384, - -229328.144444444, - -239765.872066667, - -242874.184271111, - -234992.329808889, - -237348.328471111, - -196994.194897778, - -195666.875835556, - -187191.552373333, - -121840.211448889, - -75842.70056, - -51390.8985466667, - -34413.5821511111, - -24753.9290217778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -30702.4226711111, - -54978.0889466667, - -63116.9667733333, - -83408.3312933333, - -129501.969506667, - -133990.646644444, - -160467.863106667, - -175860.250933333, - -194440.373235556, - -193601.017573333, - -147028.794235556, - -109636.730382222, - -90463.7252222222, - -68435.9143688889, - -55155.3969688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2375.83078431111, - -29012.7504871111, - -30577.8674488889, - -31602.4440533333, - -30420.7813333333, - -37759.5750266667, - -28374.2950715556, - -24407.1086688889, - -23467.1416942222, - -21134.9697133333, - -21661.7943426667, - -181.930632857778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -32593.0244088889, - -108561.745546667, - -186219.142426667, - -211707.243888889, - -224505.659311111, - -251772.995488889, - -251440.652848889, - -276373.970697778, - -280582.764924444, - -285847.787435555, - -296995.333288889, - -248085.281697778, - -183935.239257778, - -155345.859297778, - -128603.120408889, - -101920.461097778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -31255.4478577778, - -51000.2347555556, - -77975.9651777778, - -126062.780017778, - -174417.168782222, - -152038.551808889, - -181607.668493333, - -181937.373493333, - -183590.880702222, - -188115.312515556, - -146243.656728889, - -96278.8422088889, - -64449.8541866667, - -28556.2922315556, - -13343.2639248889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -781.679267555556, - -13640.8776382222, - -45825.1850755556, - -39332.7807511111, - -35818.2719866667, - -54326.8849377778, - -71413.8099288889, - -128300.964093333, - -143727.055097778, - -170797.154417778, - -167830.39556, - -120551.870844444, - -80668.9956177778, - -59618.8699911111, - -29498.1934755556, - -24503.411836, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 72.8319810355556, - -32759.4888, - -36817.9375466667, - -30635.3093866667, - -44940.4033911111, - -81404.6041066667, - -119462.818595556, - -157580.52652, - -170987.943711111, - -187592.766724444, - -183252.090497778, - -134066.258991111, - -87216.20424, - -48660.9411466667, - -19896.6563475556, - -7984.400044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2864.6352984, - -21574.4591515556, - -51948.3198, - -33723.9858266667, - -45348.94452, - -65259.9027377778, - -79076.7402711111, - -125009.775515556, - -141462.787693333, - -165055.305208889, - -165920.451128889, - -127300.126248889, - -82725.7686755556, - -50931.6561155555, - -25141.8379444444, - -9108.76736177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2999.84658622222, - -17525.6817515556, - -19652.3815764444, - -13798.6964315556, - -28776.6524, - -40636.3610533333, - -44393.2396266667, - -50213.0457511111, - -60941.2068444444, - -77590.2835955556, - -92378.06572, - -3919.44511866667, - -5287.47175822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3374.68453733333, - -10327.1225848889, - -18755.5253622222, - -31229.6576, - -36299.7878222222, - -42502.0517466667, - -37973.8100088889, - -23639.2916648889, - -11343.9328048889, - -2482.93362186667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6108.89146844445, - -18822.8437964444, - -29517.82924, - -36640.6295244444, - -43583.7772177778, - -56359.9192355556, - -59068.7755155556, - -56106.1196533333, - -33530.5588933333, - -13631.0011417778, - -3298.48604844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -17009.6714462222, - -52549.1155777778, - -113742.363577778, - -201000.770057778, - -211859.933937778, - -233494.736431111, - -273507.735231111, - -296371.091822222, - -299334.040755556, - -317346.191244444, - -313562.6432, - -319939.870577778, - -274668.882973333, - -221928.39196, - -170914.382862222, - -144918.975306667, - -117111.216, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -19722.2790364444, - -80679.5461777778, - -169052.795164445, - -187906.645884444, - -220408.525177778, - -255611.347831111, - -271866.537008889, - -295401.026444444, - -301350.37, - -291658.801426667, - -262139.506831111, - -186542.106791111, - -135511.685711111, - -93505.2172133333, - -65993.4597288889, - -38543.83332, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -24677.9649897778, - -41936.1314311111, - -40524.4078888889, - -70290.1752888889, - -96098.3104044444, - -116449.461431111, - -149747.321862222, - -161341.80116, - -171501.111226667, - -176386.89972, - -142003.210822222, - -93065.9036177778, - -49457.8014977778, - -23648.7871688889, - -10769.8944195556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5626.99464044444, - -14090.2142657778, - -41678.2288533333, - -45072.2853911111, - -40857.3366711111, - -62537.8582577778, - -75652.2043377778, - -112647.156835556, - -140863.750342222, - -160462.001684444, - -177246.77036, - -135867.180968889, - -87816.7069466667, - -51495.2318622222, - -22560.7020546667, - -10624.677684, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2687.03420506667, - -16208.3857213333, - -5999.60525111111, - -12787.27872, - -32052.3082088889, - -44730.2714044444, - -48020.5807688889, - -52154.9349333333, - -61699.3818088889, - -76085.9495822222, - -86027.5078133333, - -1512.24693333333, - -2534.47310746667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4976.90430177778, - -11600.4286413333, - -17537.4339031111, - -24497.2866497778, - -28636.4764875556, - -21038.9010031111, - -11344.5482542222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1088.90864404445, - -48149.2389866667, - -110713.766715556, - -144337.229151111, - -186959.733124444, - -222816.397426667, - -235746.694848889, - -248504.666457778, - -254856.396648889, - -255827.927382222, - -256534.814902222, - -213225.645315556, - -153947.030884445, - -130347.186591111, - -103809.890551111, - -89334.5222311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3973.60466, - -48118.7595911111, - -134712.18772, - -160792.878968889, - -192193.397026667, - -230675.685413333, - -247764.954973333, - -263910.828626667, - -259263.306946667, - -268471.015115556, - -263784.514977778, - -221440.42856, - -171224.452097778, - -148018.788448889, - -130180.136057778, - -117984.567911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -25741.3149022222, - -111139.012897778, - -194589.546431111, - -204204.330373333, - -214433.684435556, - -234489.712853333, - -243949.755248889, - -258412.22844, - -271792.97616, - -273621.153751111, - -286539.142186667, - -236428.964395556, - -187644.933382222, - -165139.416617778, - -146575.120155556, - -134290.16532, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -33090.9522266667, - -113479.18572, - -193121.846306667, - -197643.933551111, - -200263.989284445, - -212455.747506667, - -207522.481493333, - -223756.27648, - -235741.126497778, - -230133.210786667, - -238356.200022222, - -197321.262257778, - -132410.993355555, - -101502.248622222, - -72394.4258666667, - -48484.5123377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -29313.2656044444, - -37226.4786755555, - -32369.9972933333, - -45037.703, - -81455.0123377778, - -86484.6987466667, - -128269.898555556, - -132026.190986667, - -146515.040577778, - -141832.936506667, - -100174.050346667, - -52159.331, - -24141.6741635556, - -7873.67777822222, - -5063.65335066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5413.72679288889, - -12632.9474728889, - -11696.9955724445, - -11351.7578035556, - -16604.998856, - -34257.3752488889, - -38523.9044844444, - -42931.4009244445, - -49990.3117066667, - -66240.8117466667, - -73333.4257066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4188.89469822222, - -14015.7742035556, - -17399.5439453333, - -23690.7842591111, - -25411.0530671111, - -23485.1948746667, - -14475.5734697778, - -1899.90967626667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1214.17016764445, - -41616.9769911111, - -72215.94556, - -72083.4774177778, - -105559.818155556, - -117731.354471111, - -110763.588804444, - -123192.441555556, - -130695.648142222, - -132194.120733333, - -127112.853808889, - -78398.57372, - -33876.3828044445, - -21000.1570022222, - -12816.820288, - -9659.828972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -24989.8512662222, - -53197.3888755556, - -27971.7619004444, - -28471.9170586667, - -27672.8293671111, - -29601.3545066667, - -28784.6239342222, - -26464.9953968889, - -27390.7484226667, - -28618.2474644444, - -24108.4692066667, - -31137.9263422222, - -18698.6988737778, - -17147.5027897778, - -6098.42882977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12359.0139053333, - 16607.2848106667, - -26800.6497404444, - -29886.8057688889, - -46424.2224266667, - -41149.5285688889, - -37537.7201955556, - -38708.2462133333, - -44204.20876, - -53035.6136222222, - -59939.1967155555, - -45191.8584044444, - -36552.1220488889, - -14521.1753346667, - -3569.48890488889, - 3624.99657333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2407.40333511111, - 44439.8379333333, - 30160.8272577778, - -4842.38466177778, - -32202.94676, - -46214.9696533333, - -43212.45612, - -55770.5532311111, - -67485.1916844445, - -105042.254573333, - -109381.758515556, - -70802.7566622222, - -24365.5218782222, - -8903.00213466667, - -4112.95997333333, - -6095.17574044444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2661.15602595556, - 7250.22760355556, - -43691.3343155556, - -33557.8145066667, - -19939.767108, - -23022.4648973333, - -42411.7858444444, - -92671.7229733333, - -118804.58088, - -133103.520391111, - -139231.637324445, - -82964.6216311111, - -45261.0231866667, - -26849.1823164444, - -17169.3952017778, - -9341.17275288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -15900.6610546667, - -12487.2618235556, - -8816.10655022222, - -9842.03128177778, - -9988.53753022222, - -16673.9584884444, - -17772.7993124444, - -8624.76042177778, - -7907.08788488889, - -8636.65910888889, - -651.473634311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12188.3879044444, - 21551.1306911111, - -24874.4984768889, - -35069.1822266667, - -32432.7145111111, - -42689.9103288889, - -36594.0312177778, - -50754.6411644445, - -47822.4646977778, - -25986.9084933333, - -26051.178988, - -38567.8651511111, - -10239.4650155556, - -145.443279524444, - 6868.23871733333, - 11501.956748, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6407.882616, - 37713.2697911111, - 12165.4111293333, - -120.776363315556, - -27610.8741342222, - -37044.4815155556, - -34725.7028844444, - -48920.8952222222, - -60039.1339644445, - -94924.2675333333, - -111131.393048889, - -72664.9305022222, - -25736.5378431111, - -11839.1936755556, - -5603.54895155556, - -25773.6699528889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1314.59391457778, - 20242.2751088889, - -26684.3005093333, - -27622.4504431111, - -36425.2222577778, - -23012.2074084444, - -43998.7659111111, - -80688.3383111111, - -120584.694808889, - -142415.268804444, - -162145.695217778, - -113301.584626667, - -68173.6157244445, - -47929.1425822222, - -23815.0757173333, - -14498.7260875555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -23498.9106026667, - -30784.4825822222, - -27171.6777671111, - -75171.2746444445, - -126849.38288, - -136613.046946667, - -179952.695928889, - -183191.717848889, - -187066.70408, - -183715.142853333, - -131066.676168889, - -84490.6429066667, - -58364.5256355555, - -37124.783, - -22241.6062288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -22919.4504017778, - -33279.6900222222, - -45258.6786177778, - -103257.451506667, - -139707.87788, - -149239.136555556, - -164159.093751111, - -174986.019808889, - -177311.832146667, - -173722.004106667, - -133848.507155556, - -87684.5318755556, - -69254.4619822222, - -51042.4369955556, - -36065.6240044444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -15697.0352466667, - -17413.69928, - -18500.4655742222, - -18274.0681408889, - -21118.4405026667, - -16521.7080462222, - -13222.8116982222, - -12846.5083915556, - -14510.9471528889, - -34426.47728, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12091.9382017778, - -14338.5627253333, - -20078.3311293333, - -18449.764272, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -597.566134133333, - -21087.9318, - -47723.4066622222, - -77298.67784, - -115648.498084444, - -139636.954671111, - -140188.221431111, - -158967.045946667, - -163476.824204444, - -166680.38452, - -154744.184306667, - -92452.2127111111, - -44983.7779155556, - -21004.9340613333, - -8477.28703866667, - -3765.87585644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -483.608363288889, - 1088.97018897778, - -31577.82608, - -28504.97548, - -47222.2550622222, - -59938.3175022222, - -76097.9654977778, - -119455.198746667, - -130175.44692, - -135026.946093333, - -126040.213542222, - -60685.6488355556, - -20187.1484328889, - -7747.30551511111, - -9985.81196888889, - -18691.4600173333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5615.41833155556, - 36579.3776622222, - -29886.2196266667, - -19199.2057173333, - -43802.9944088889, - -60027.7041911111, - -76471.9242355556, - -124128.510684445, - -141213.384177778, - -151136.772, - -150049.478177778, - -96115.0154577778, - -45090.1627288889, - -26463.7351911111, - -10776.4885195556, - -4371.39007911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1980.99659128889, - 5340.92792888889, - -25956.2825622222, - -29438.1138977778, - -18932.5403133333, - -35461.6044444444, - -35082.3704266667, - -87115.97392, - -99405.3248222222, - -113063.317813333, - -124865.291457778, - -69019.12588, - -34471.6102311111, - -23259.6473475555, - -8150.51274977778, - -4565.02216222222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4478.74202711111, - 2053.0862232, - -6590.70037511111, - -9891.06207866667, - -27693.8718728889, - -42438.4553155555, - -46675.67744, - -50161.4652355556, - -57320.8994088889, - -65863.6292266667, - -55015.6020488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7456.46174444445, - -12287.5631684445, - -14360.8068226667, - -13025.8092973333, - -8249.83454933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -22148.7026866667, - 20250.1587217778, - -2867.63341586667, - -24594.3518017778, - -11214.6005235556, - -35568.5754, - -21572.202504, - -23631.7597373333, - -26041.8300195555, - -26242.5544235556, - -27500.3570182222, - -20067.1065057778, - -9136.14020355555, - -26814.0430902222, - -9473.55297377778, - 6533.46358711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8863.49614888889, - 41993.2802977778, - 0, - -23922.1052871111, - -37395.8737777778, - -48563.3484666667, - -55495.0663866667, - -73353.0614711111, - -115348.100195556, - -121385.072013333, - -117149.022173333, - -57821.7579377778, - -16802.1184853333, - -6125.86028577778, - -5807.73159466667, - -24731.3332391111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3655.82765422222, - 39571.3406355556, - -21967.0865191111, - -17883.726728, - -44345.7621066667, - -58721.4862488889, - -74157.5416711111, - -119588.546102222, - -135447.796208889, - -141071.53776, - -132060.480306667, - -69048.4329911111, - -24706.1877377778, - -7135.84194888889, - -4217.61566711111, - -1873.73842604444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3568.87345555556, - 768.074906577778, - -33505.3547777778, - -37662.2754177778, - -42206.9291377778, - -25946.4939871111, - -25450.2366746667, - -27776.8403044444, - -31209.1426222222, - -38253.69292, - -62631.0548711111, - -30136.2092844444, - -9994.83855911111, - -5340.10732977778, - -7142.67050577778, - -16037.9355631111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13230.4901613333, - 26480.0006377778, - -43435.4832355556, - -29968.5726088889, - -19585.3269062222, - -20637.8624946667, - -39129.9755422222, - -62032.01752, - -98871.0561866667, - -108096.348622222, - -107629.193271111, - -51347.2309511111, - -15854.7661186667, - -4370.12987333333, - -8652.98316977778, - -32930.9354, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2823.74601697778, - 28674.575732, - 27883.4302675556, - 6589.58670488889, - -5122.50202977778, - -23630.2064604444, - -31655.1968533333, - -38467.6348311111, - -44336.6769022222, - -46787.0444622222, - -40042.5989822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -270.676375226667, - 57.7865894044444, - -14219.4000115556, - -18936.7019231111, - -23641.0793986667, - -26827.6122826667, - -11899.3025604444, - -30381.5098044444, - -30796.4984977778, - -26684.6521946667, - -19816.58932, - 16060.6485742222, - 7518.94450533333, - 20621.2160555556, - 29893.8394755556, - 36279.5659155555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30700.6642444444, - 97398.0807822222, - 30332.5669288889, - 22511.7591791111, - 2594.70215151111, - -2285.53557497778, - -20929.2924075556, - -42813.5863377778, - -45704.4397777778, - -29523.10452, - -39551.9979422222, - 2310.23267751111, - -3378.553076, - 19042.1489088889, - 33206.1291733333, - 44225.30988, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53672.4571466667, - 111845.314275556, - 35717.7485955556, - 9175.70480355556, - 4947.421348, - -3716.05376755556, - -10449.4211595556, - -39129.3894, - -21167.2661497778, - -26353.5111462222, - -37165.2268133333, - -29127.986048, - 0, - -6475.55273555556, - 15675.3186773333, - 29008.3837275556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29671.6915733333, - 10261.1229706667, - -8959.71139466667, - -13829.8498906667, - -28296.338156, - -26299.2343764444, - -28020.7340831111, - -29577.9088177778, - -38930.1010444444, - -34534.9135911111, - -39692.9651466667, - -8473.00820044445, - -12931.7334706667, - 11100.4786328889, - 25615.177096, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14914.3302302222, - 81785.0104088889, - 51623.89008, - 19461.7974328889, - 6081.43070533333, - 9135.87643955556, - -7438.20341422222, - -22975.426984, - -28827.8812302222, - -26860.1724831111, - -23380.6271022222, - -100.321758186667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -481.937857955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -1076.73447008889, - -27352.5026426667, - -22908.2257782222, - -39291.7507955556, - -95627.0520577778, - -113601.982515556, - -145072.83764, - -152635.537662222, - -160070.165608889, - -161685.573573333, - -113807.425364444, - -72497.2938266667, - -52253.4068266667, - -35533.6999377778, - -19847.0980226667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -18886.8798342222, - -42030.5003288889, - -20401.1782653333, - -15121.2677417778, - -34832.3807688889, - -39502.1758533333, - -83455.5157422222, - -91633.6650977778, - -96569.8618222222, - -89365.0016266667, - -37819.9476755556, - -6842.00885288889, - -3463.07478444445, - -8888.583036, - -25974.8925777778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2905.18168662222, - 38215.0075333333, - 7987.91689733333, - -13397.1597022222, - -27209.8063186667, - -26608.4243986667, - -20778.3607853333, - -19929.0993195556, - -18404.7485493333, - -18620.2437373333, - -21114.5133497778, - -18309.8521235556, - -9693.854528, - -19303.1580404445, - -13415.2714968889, - -2223.73566977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8140.43110355556, - 39755.0962222222, - 17005.7442933333, - 5619.90231955556, - -2260.34611297778, - -10098.7908822222, - -901.554144133333, - -17946.9714737778, - -22709.8459431111, - -22719.839668, - -21045.8467884444, - 14746.8107831111, - 20168.6263386667, - 9234.14318311111, - 21741.7734488889, - 31421.0330355556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42876.3035555556, - 108029.82148, - 37853.9439244444, - 13984.2983662222, - 9877.9618, - -4001.47572266667, - -14528.12112, - -40716.3694666667, - -44801.7807555556, - -20369.0576715556, - -17720.8964186667, - -12528.3210862222, - -6713.37994222222, - 7250.98958844445, - 25233.3054382222, - 36532.4862844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48481.2885555555, - 109591.597431111, - 83941.7207155556, - 58593.1211022222, - 39927.7151066667, - 23956.3946071111, - 29062.8656471111, - 29697.4818311111, - 12803.1631742222, - 10702.0777644444, - 16986.6360568889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23436.3692275556, - 101629.148413333, - 148742.381022222, - 67144.3499822222, - 31942.1134711111, - 2197.50287462222, - 0, - -15527.0833093333, - -38940.3585333333, - -24047.7155653333, - -31560.2418133333, - -27083.3461342222, - -24681.2473862222, - -6528.83306355556, - 8937.08630488889, - 26813.0173413333, - 37089.3213955555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38477.0131066667, - 102320.210093333, - 25617.6682004444, - 11518.5445728889, - -320.062960444444, - -25100.1925395556, - -32350.6546, - -39675.6739511111, - -44564.1000844444, - -40762.3816311111, - -36485.5949066667, - -18570.6854124445, - -3054.32850577778, - -19845.3982102222, - -7314.41017688889, - 153.318393351111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2376.08575617778, - 23050.5411097778, - 12945.7129626667, - -7557.65919911111, - -20419.4365955556, - -21591.6038115556, - -38242.2631466667, - -34660.0549555556, - -19026.9971324444, - -18959.8545408889, - -22565.4204995556, - -30673.9947733333, - -24277.3953951111, - -7509.77137955556, - 1839.27619408889, - 6698.52123688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5224.28562666667, - 58564.9862755556, - 35495.8937644444, - -1655.71989577778, - -4975.87855288889, - -30088.4386933333, - -45219.4070888889, - -41187.3347422222, - -42826.1883955556, - -50383.6131377778, - -47863.4946533333, - -27620.9264733333, - -4211.08018133333, - -16034.0377173333, - -14587.1749488889, - 4860.17407822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6317.76324933333, - 51304.4425688889, - 27619.0215111111, - -4403.95027955556, - -6104.96431555556, - -31418.6884666667, - -44785.9549155556, - -39232.8435022222, - -41628.4067644444, - -46920.3918177778, - -40876.0932222222, - -43217.4383288889, - -5062.97928711111, - -11109.8862155556, - 8802.91835022222, - 25675.9893515556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17669.3159031111, - 84128.1139422222, - 59027.1594177778, - 29730.3057955556, - 10059.0504395556, - 4786.43738666667, - -5851.04750488889, - -14845.5171333333, - -24647.2511373333, - -26459.7201168889, - -16966.2676146667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7936.04331066667, - -8369.26102711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13606.9693106667, - 38096.3137333333, - 18734.0432497778, - -18870.4971591111, - -13746.7642306667, - -40696.7337022222, - -49684.6385377778, - -99798.6262533333, - -112439.076346667, - -142072.375604444, - -138252.486742222, - -77831.7741911111, - -28477.4267955556, - -16417.99018, - -2494.91436888889, - -1910.30197786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -11038.1717146667, - -46561.3797066667, - -24760.7868857778, - -28510.8955164444, - -86800.9224755556, - -120247.956102222, - -164354.865253333, - -164341.677053333, - -160511.530702222, - -159084.274391111, - -99789.2479777778, - -61130.5307822222, - -43087.0216844444, - -24543.0350502222, - -17196.9731933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -19905.214024, - -53630.2549066667, - -88953.8228577778, - -133233.643964444, - -141618.701524444, - -142930.780888889, - -150570.265542222, - -148036.958857778, - -144477.903284444, - -141595.841977778, - -82222.8586488889, - -41170.6296888889, - -24629.6082564444, - -7616.53718533333, - -3630.24254622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5148.17505911111, - 11311.9587466667, - -32257.1649155556, - -40792.5679555556, - -31288.2718222222, - -24670.1399911111, - -33017.3913777778, - -32626.1414444444, - -32031.7932311111, - -43884.7612488889, - -40115.5736888889, - -26358.3761266667, - -9408.78425822222, - -18226.7957706667, - -11019.4151635556, - -857.754666577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9354.88848088889, - 39109.1674933333, - 28895.6978853333, - -2744.71353044445, - -8712.94551911111, - -18400.3817897778, - -39187.1244088889, - -43785.1170711111, - -22641.6482955555, - -23809.8297444444, - -23378.194612, - -29349.6064222222, - 0, - 11417.4936537778, - 19459.3063284444, - 16220.8998577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5979.17819466667, - 50191.0654177778, - 44647.33228, - 28346.453316, - 16952.5518866667, - 9022.80960488889, - 11554.7388551111, - 3305.93005466667, - -344.288218488889, - 328.309981511111, - -3054.79741955555, - -217.35736184, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20973.0772315556, - 92140.3850488889, - 149047.468048889, - 67067.8584222222, - 39552.8771555556, - 6897.92682088889, - -2339.17638044444, - 6671.08978088889, - -25310.0607622222, - -33598.25832, - -38766.5673644444, - -36206.88428, - 0, - 1197.61751128889, - 15578.165604, - 33707.8669155555, - 44548.5673155556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47254.7859555556, - 109941.231266667, - 34553.084, - 8150.835128, - 7671.42940444444, - -13771.7925035556, - -27705.5947173333, - -24327.8329333333, - -30963.25596, - -46981.9367511111, - -44144.1291822222, - -25807.0507524444, - -16401.109284, - -12831.4738435556, - 6574.52284977778, - 23918.7642764444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14380.4425871111, - 74172.4882977778, - 40339.4800177778, - 11365.1804604444, - -6702.30185422222, - -13663.6785706667, - -26282.2069448889, - -24631.1029191111, - -24929.9475311111, - -30465.3281422222, - -29012.2522662222, - -14967.6105582222, - -21474.3753671111, - -7618.85244711111, - -5669.98817244444, - 11288.9233573333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11120.6126182222, - 76817.4550755556, - 50630.6720844444, - 11615.1408111111, - 19441.4876048889, - 8770.09438577778, - 13155.7277208889, - -5481.33829822222, - -11460.8388711111, - -14292.6970964444, - -10607.0641102222, - 20729.1541457778, - 15974.1339822222, - 27234.3949848889, - 34257.0821777778, - 39180.0907022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7254.97535555556, - 66132.9615777778, - 43034.2688844444, - 23440.9118297778, - 10673.0637244444, - -973.157278, - -2146.8807016, - -26067.4737417778, - -30182.51452, - -29877.7205644444, - -37012.5367644444, - 0, - 10681.6214008889, - 5653.69341866667, - 16174.7411577778, - 23593.7484142222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48121.6903022222, - 39818.6926533333, - 27173.4068866667, - 20271.9045982222, - 8953.61551555556, - 11266.1224248889, - 3444.02516222222, - 2798.84376466667, - 6142.21365377778, - 8322.57479911111, - -150.739367573333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11525.1093657778, - 60229.3371155556, - 112483.037013333, - 49611.37076, - 25463.0145751111, - -719.647836177778, - 3686.57081377778, - -8337.93172533333, - -33542.86788, - -30704.76724, - -20687.8897333333, - -31062.3139955556, - -5298.28608222222, - 1531.89442062222, - 16252.4636164444, - 34206.0878044444, - 43642.9775822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36461.8561466667, - 96058.7458044444, - 29876.8413511111, - 20499.2398591111, - 2563.98243764444, - -21246.981492, - -28307.416244, - -31195.0752088889, - -45564.3517866667, - -42909.7136622222, - -36861.019, - -20486.7843368889, - -5884.13523333333, - -19734.0018808889, - -13262.581448, - 9840.82969022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8322.545492, - 71167.3371244444, - 35873.9554977778, - 14789.6870866667, - -3574.96933466667, - -16252.9325302222, - -12563.07932, - -18959.8545408889, - -2224.51230822222, - -1919.73593693333, - -17072.9454991111, - -30390.88808, - -3970.46879911111, - -3283.598036, - 10150.2834764444, - 20394.4669368889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10593.2604608889, - 52404.63152, - 35691.3721955556, - 14469.3603622222, - 0, - -20827.5381177778, - -23855.9591373333, - -14165.2111631111, - -11747.5503391111, - -12604.0506613333, - -15097.9978955556, - -14427.8321857778, - -5895.94599911111, - -16316.1479688889, - -6108.18809777778, - 5555.133604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12618.6162955556, - 34125.78632, - 27918.4229582222, - 15448.0127235556, - 8667.78326088889, - -639.012250666667, - 3682.17474711111, - 6657.57920266667, - 10344.7947728889, - 13405.4243075556, - 18355.4246813333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - } - } - } -} diff --git a/tests/model_connectors/data/system_params_ghe_3.json b/tests/model_connectors/data/system_params_ghe_3.json deleted file mode 100644 index f8f87e2da..000000000 --- a/tests/model_connectors/data/system_params_ghe_3.json +++ /dev/null @@ -1,8868 +0,0 @@ -{ - "weather": "../../data_shared/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos", - "buildings": [ - { - "geojson_id": "0", - "load_model": "time_series", - "load_model_parameters": { - "time_series": { - "filepath": "To be populated", - "delta_temp_air_cooling": 10, - "delta_temp_air_heating": 18, - "has_liquid_cooling": true, - "has_liquid_heating": true, - "has_electric_cooling": false, - "has_electric_heating": false, - "max_electrical_load": 0, - "temp_chw_return": 12, - "temp_chw_supply": 7, - "temp_hw_return": 35, - "temp_hw_supply": 40, - "temp_setpoint_cooling": 24, - "temp_setpoint_heating": 20 - } - }, - "ets_model": "Fifth Gen Heat Pump", - "fifth_gen_ets_parameters": { - "supply_water_temperature_building": 15, - "chilled_water_supply_temp": 5, - "hot_water_supply_temp": 50, - "cop_heat_pump_heating": 2.5, - "cop_heat_pump_cooling": 3.5, - "pump_flow_rate": 0.01, - "pump_design_head": 150000, - "ets_pump_flow_rate": 0.0005, - "ets_pump_head": 10000, - "fan_design_flow_rate": 0.25, - "fan_design_head": 150 - } - } - ], - "district_system": { - "fifth_generation": { - "ghe_parameters": { - "version": "1.0", - "ghe_dir": "C:/urbanopt-ghe/baseline_scenario/ghe", - "fluid": { - "fluid_name": "Water", - "concentration_percent": 0.0, - "temperature": 20 - }, - "grout": { - "conductivity": 1.0, - "rho_cp": 3901000 - }, - "soil": { - "conductivity": 2.0, - "rho_cp": 2343493, - "undisturbed_temp": 18.3 - }, - "pipe": { - "inner_diameter": 0.0216, - "outer_diameter": 0.0266, - "shank_spacing": 0.0323, - "roughness": 1e-06, - "conductivity": 0.4, - "rho_cp": 1542000, - "arrangement": "singleutube" - }, - "borehole": { - "buried_depth": 2.0, - "diameter": 0.15 - }, - "simulation": { - "num_months": 240 - }, - "geometric_constraints": { - "ghe_geometric_params": [ - { - "ghe_id": "c432cb11-4813-40df-8dd4-e88f5de40033", - "length": 100, - "width": 100 - }, - { - "ghe_id": "93b98fa5-a83e-455f-8d95-05a6a81fed74", - "length": 100, - "width": 100 - } - ], - "b_min": 3.0, - "b_max": 10.0, - "max_height": 135.0, - "min_height": 60.0, - "method": "rectangle" - }, - "design": { - "flow_rate": 0.2, - "flow_type": "borehole", - "max_eft": 35.0, - "min_eft": 5.0 - }, - "loads": { - "ground_loads": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 88964.3734177778, - 122073.202982222, - 63902.6904222222, - 52317.2963288889, - 41514.9882444444, - 29434.3039733333, - 32753.9204488889, - 17284.982448, - 15288.7578817778, - 11017.8325795556, - 8217.36227022222, - 32409.2688222222, - 51278.9453822222, - 55786.086, - 58907.0002622222, - 59597.7688711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41261.1886622222, - 94426.0466444445, - 39088.0663733333, - 22820.2751377778, - 3928.03210222222, - -3923.54811422222, - 13260.5006431111, - -19509.30426, - -27926.1600355556, - -22575.6779884444, - -14158.1774564444, - 21174.6808488889, - 22526.9402626667, - 39041.1749955556, - 49278.1489066667, - 57193.9996177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 75889.8850088889, - 129885.599591111, - 69544.6023822222, - 50567.6617955556, - 28604.0042084444, - 9723.54263155556, - 14641.9499395556, - -15588.188636, - -24385.9782417778, - -20769.2755808889, - -13236.4395048889, - 23332.5927471111, - 44427.2358755555, - 57191.6550488889, - 69121.7007688889, - 77919.1093822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18264.0158017778, - 86297.7193777778, - 141136.013404444, - 82539.9615911111, - 64681.0872933333, - 51027.4903688889, - 35500.8759733333, - 39895.7703555556, - 23758.6888355556, - 18831.9876151111, - 16533.8411902222, - 14627.9997546667, - 41958.1117644445, - 63313.3244177778, - 69317.4722711111, - 73835.1634488889, - 77274.6460088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 78453.96416, - 133601.74128, - 119131.355168889, - 104141.94012, - 94641.7469822222, - 86884.1546711111, - 86776.0114311111, - 86429.8944488889, - 85929.6220622222, - 87441.5759244445, - 93968.2695688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 12990.5821497778, - 14682.5989026667, - 14619.2076213333, - 14677.2357013333, - 14371.18154, - 3897.61132088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8801.13061644444, - 12797.82928, - 13262.9331333333, - 13595.979144, - 68476.9443244444, - 151989.608933333, - 175980.410088889, - 126174.440111111, - 99703.9642844445, - 73253.4172933333, - 55307.2078044444, - 45939.4828088889, - 24878.1032515556, - 11603.1248955556, - 12236.0705742222, - 224.653953293333, - 38597.1722622222, - 57383.6166266667, - 69498.0040755556, - 77745.3182133333, - 84529.3282933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6933.06604711111, - 99460.7152622222, - 153355.320311111, - 97590.04236, - 75572.1959244444, - 58324.3748933333, - 27107.0848942222, - 21543.3056924445, - 0, - -21944.5493506667, - -26846.163684, - -27160.834136, - 12674.2998066667, - 34262.0643866667, - 50241.1805777778, - 65188.1003155556, - 73411.3826222222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 86810.3007511111, - 138299.37812, - 70408.5760177778, - 41696.1061911111, - 8072.58514133333, - -1906.89063013333, - -12989.9080862222, - -23864.2237426667, - -32266.8362622222, - -33333.9081777778, - -28793.4453746667, - 7430.70079377778, - 16430.5922377778, - 29677.2599244444, - 46644.3188311111, - 60608.2780622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 79698.3440977778, - 127704.271311111, - 65651.1526711111, - 39199.4333955556, - 15841.1969262222, - -4769.46856933333, - 13448.0368471111, - -9911.43052088889, - -27850.3425391111, - -30625.3449688889, - -25635.0473173333, - 6017.68773866667, - 8435.67094088889, - 22427.7943057778, - 32530.6002622222, - 37846.9102177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 18665.786988, - 75233.1126488889, - 25548.0051973333, - 11640.0811626667, - 1866.1303, - 0, - 5645.54604177778, - -25981.6918275555, - -31033.8860977778, - -28908.3878644444, - -23248.4813382222, - -705.791434044444, - 26969.2242435556, - 39034.7274311111, - 54631.6788933333, - 67639.9332311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20573.2989288889, - 94228.5167155556, - 147449.937422222, - 118903.345844444, - 87726.4410444445, - 70720.40368, - 49318.0065777778, - 41806.594, - 35245.0248933333, - 31750.7380355556, - 29839.3282488889, - 32946.76124, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 63225.1100133333, - 116162.251742222, - 58147.3599422222, - 46259.2233911111, - 34594.9931688889, - 22900.2249368889, - 23444.0476906667, - 8618.43008577778, - 6449.557328, - 3203.32585866667, - 934.395692844444, - 23198.3661782222, - 43016.3915466667, - 46922.7363866667, - 51682.2112311111, - 54425.9429733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 27703.4259911111, - 80129.7447733333, - 24337.2991302222, - 11511.2177951111, - -780.0556536, - 3080.32391333333, - 4063.98779066667, - -17188.708588, - -25987.611864, - -35929.3459377778, - -38302.6357955556, - 0, - 0, - 9146.544228, - 15054.7405995556, - 19760.3196666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13526.3161408889, - 16871.8401026667, - 0, - -27126.5741231111, - -13303.9337817778, - -16353.4852284444, - -20572.1559515556, - -21302.0495537778, - -40322.7749644445, - -75202.3401822222, - -79782.7485777778, - -41123.7383111111, - -6700.16243511111, - -2181.97303644444, - -778.1565528, - -2088.15511235556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -191.082071373333, - -15516.8258204444, - -32980.1713466667, - -32443.5581422222, - -15160.8323417778, - -18214.8384693333, - -27473.130712, - -33280.8623066667, - -70771.9841955556, - -83326.2713822222, - -85492.6530355556, - -43300.3774533333, - -10490.8614146667, - -2572.19135946667, - -2828.13915293333, - -7847.00830711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10136.5091342222, - 29068.8442977778, - 30558.8178266667, - 18813.8758204445, - 12087.1904497778, - 7378.73928577778, - 12094.9275271111, - 7333.10811377778, - -847.365295688889, - 4279.48297866667, - 3748.26228266667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 16299.3256871111, - 73783.8760044445, - 130205.633244444, - 53613.8429244445, - 25291.3335182222, - 3083.31323866667, - 6512.62623111111, - -7082.03409288889, - -29622.4556266667, - -38657.8379822222, - -42871.9074888889, - -34973.0549022222, - -13752.5084244444, - 2313.63816382222, - 7828.45690577778, - 26505.5564386667, - 39588.9249022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 41745.0490666667, - 100216.252586667, - 33500.9587111111, - 9357.43819955556, - 4123.83291155556, - -13011.741884, - -16365.8235222222, - -36592.5658622222, - -10110.3964982222, - -7845.51364444444, - -8836.97321333333, - -15038.9440666667, - 0, - -1800.7959572, - 11574.1694697778, - 19879.8047586667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61513.5747244444, - 40284.9687911111, - 23324.0057635556, - 14658.8601426667, - -3981.13658755556, - 3209.30450933333, - -19331.1170244444, - -32549.0637422222, - -37182.2249377778, - -28859.5329102222, - 7429.93880888889, - 3220.55844, - 23090.1057097778, - 38415.4681733333, - 47490.4151288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 72077.0298533333, - 133462.239431111, - 63956.0293644445, - 43974.73408, - 22637.6918355556, - 6478.835132, - 13707.0530951111, - -2686.62976693333, - -29735.5810755556, - -35753.2102, - -30325.8262933333, - 13258.7129093333, - 36070.3131422222, - 46987.7981733333, - 60952.0504755556, - 71662.9203733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20551.8168164444, - 93398.5393288889, - 148270.829604444, - 77011.4681511111, - 52111.5604088889, - 25851.0993404444, - 9133.41464222222, - 13904.7295595556, - -20776.2799804444, - -34751.7862133333, - -35649.4630266667, - -23262.4315231111, - 340.422610533333, - 27692.5530528889, - 37877.6826844444, - 53375.5761111111, - 64355.1922177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10209.6303764444, - 80581.3673555556, - 134642.729866667, - 100967.686915556, - 67513.03344, - 37703.3053733333, - 23547.3552573333, - 25341.9468991111, - 4929.51470311111, - -6441.11688, - -7250.93097422222, - -6577.39494666667, - -134.72010064, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4708.04086444444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8875.42414311111, - 71883.3098488889, - 16228.0214857778, - 4217.058832, - -13238.3444671111, - -12116.3217182222, - -23985.7017182222, - -25693.0753973333, - -29758.1475511111, - -32481.9504577778, - -48911.5169466667, - -22465.9228573333, - -42.6655854266667, - -1654.4860664, - -1194.72783013333, - -13008.312952, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5630.833872, - 10992.4233142222, - -1683.605612, - -19244.1628257778, - -18341.6503391111, - -26832.6824128889, - -39124.9933333333, - -75759.1752933333, - -87977.8960577778, - -97853.2202177778, - -101654.6456, - -59547.6537111111, - -21993.8439115556, - -12587.3749151111, - -2932.35230933333, - -1768.14490471111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -21866.2700568889, - 46789.6821022222, - 40494.8077066667, - 6372.94853955556, - 5685.02272044445, - 1040.01852128889, - 29643.8498177778, - 7491.27859244444, - -10524.9455848889, - -19007.7716675556, - -35971.5481777778, - 1888.08132622222, - -12761.7522262222, - -3890.40177155556, - -3137.41416577778, - 8061.56566755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 9592.48123066667, - 83718.1074577778, - 30303.2598177778, - 16276.4661404445, - -5337.64553244444, - -10304.6440306667, - 15828.741404, - -18685.4813666667, - -44011.0748977778, - -39932.4042444444, - -28314.8602502222, - 10977.6818373333, - 36203.0743555556, - 52154.9349333333, - 65790.9475911111, - 76291.9785733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 22638.1607493333, - 100633.292777778, - 158350.424328889, - 87668.4129644445, - 59119.7698888889, - 33730.4333911111, - 7968.10529022222, - 22622.7159017778, - 0, - -19181.2404582222, - -28865.6874035556, - -22652.4333124444, - 18673.17238, - 38572.5542888889, - 51277.1869555556, - 65865.9737955556, - 77114.3361111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 19058.7074266667, - 95045.0128311111, - 145842.149306667, - 121280.738697778, - 82700.2714888889, - 59968.7968977778, - 38319.63392, - 36258.4647955556, - 31317.5789333333, - 24132.7354946667, - 14317.1685342222, - 18670.0658262222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14780.4260395556, - 90280.8488488889, - 137288.282786667, - 77176.1741155556, - 61711.3977244444, - 47878.7343511111, - 32201.1883333333, - 29266.9310617778, - 7380.76147644445, - -10485.6154417778, - -17548.2775342222, - -3768.60141777778, - 0, - 30193.6512222222, - 39255.99612, - 44657.2966977778, - 50613.9670311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 43510.8025111111, - 98452.8437111111, - 42554.8045466667, - 29309.1626088889, - 20198.255828, - 8785.451312, - 29833.7598977778, - 15588.0421004444, - -5773.38366044444, - 6882.04236666667, - 5466.68474266667, - 30846.0275155556, - 30970.8758088889, - 39423.0466533333, - 43727.9682044444, - 48123.1556577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8187.55693822222, - 56505.8686488889, - 33359.4053644444, - 15438.6930622222, - 2146.97741506667, - -3204.43952888889, - -2757.35075675555, - -25895.0893142222, - -37259.5957111111, - -28277.0247697778, - -35699.2851155555, - -10864.43916, - 2117.74064102222, - 9863.39616577778, - 32992.7734044444, - 46989.5566, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 78484.4435555556, - 137739.026155556, - 53077.5227911111, - 23093.3587991111, - -4517.95494177778, - 0, - -11521.9148906667, - -35254.9893111111, - -22933.488508, - -10875.1948697778, - -8375.47413466667, - -17476.2699622222, - -10330.6394382222, - 3302.97003644445, - 17338.0576262222, - 26267.6413106667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5990.78381066667, - 63924.9638266667, - 43227.1096755556, - 10271.5856093333, - 5924.25666844444, - 13820.969836, - 15317.6253862222, - -116.993108342222, - -5212.12317555555, - -7858.93630133333, - -7913.24237822222, - 22036.8960577778, - 17776.6678511111, - 27385.2386857778, - 29390.3433066667, - 31987.8325644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3371.46075511111, - 29332.0221555556, - 32797.0019022222, - 33287.3098711111, - 42957.4842533333, - 51200.9884666667, - 54518.8465155556, - 52105.9920577778, - 56329.43984, - 61921.23664, - 66213.5561333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17361.737772, - 19848.3582284444, - 20870.7367995556, - 22360.1828004444, - 23280.2795537778, - 23033.5722924444, - 16250.9982608889, - 9359.31385466667, - 7162.89241244445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4105.92626666667, - 7222.47376933333, - 68003.0483377778, - 147921.781911111, - 180003.397231111, - 113331.184808889, - 76657.73132, - 46752.4620711111, - 14841.8830515555, - 18315.8014671111, - -904.827748444445, - -26393.2222817778, - -24993.221584, - -24251.9861297778, - 11180.0181324445, - 30216.5107688889, - 42175.8636, - 51767.7879955556, - 57523.9976888889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 61644.5775111111, - 117151.073671111, - 48611.9982711111, - 20134.6593968889, - -4745.02643866667, - -1194.97107915556, - -13879.9064364444, - -35990.8908711111, - -17204.9740346667, - -18012.9417808889, - -17394.5910435556, - -15063.0931262222, - -20796.8535724444, - 0, - 13764.4364186667, - 27304.1459093333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20532.6206586667, - 79060.62136, - 25411.815052, - 23062.732868, - 1979.42279942222, - -18218.8242364444, - -16717.0106346667, - -3835.392324, - -9665.01633066667, - -17047.3603911111, - -25913.0545733333, - -15926.4513124445, - -2055.67404111111, - -1967.8640748, - -15031.5586746667, - -12885.398928, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13830.1136546667, - 18834.5080266667, - 8988.52028488889, - -16676.2444431111, - -21886.6971133333, - -13886.3246937778, - -17971.5308328889, - -32864.1151866667, - -66610.3744177778, - -82380.8239777778, - -99216.5870266667, - -54502.4345333333, - -18160.415164, - -6028.35552711111, - -704.217642177778, - -1901.66810293333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -238.832733648889, - -5325.24862444445, - -37605.1265511111, - -29937.5070711111, - -26544.7400462222, - -20154.3244684444, - -21740.3667075556, - -26430.9405337778, - -22140.0277817778, - -23904.1693351111, - -28128.8773231111, - -25146.4098537778, - -10371.0246373333, - -9411.74427644445, - -13110.5947697778, - -10395.4081537778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -2390.9679072, - -4482.81571555556, - -9504.999504, - -15619.4886306667, - -20231.1090995555, - -11164.0164497778, - -10339.021272, - -10337.3800737778, - -16061.4398662222, - -14721.2549822222, - -424.273186133333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9135.70059688889, - -11355.2160426667, - -12126.4619786667, - -11638.5865, - -7201.98809866667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10797.443104, - 4788.16650622222, - -15495.8126217778, - -27206.3773866667, - -34430.8733466667, - -52828.1192755556, - -83881.0549955556, - -120761.123617778, - -143668.440875556, - -148461.618897778, - -145847.131515555, - -94292.6992888889, - -50219.2002444444, - -29066.7048786667, - -14392.6343453333, - -332.811553777778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -532.114562888889, - -12298.4067995556, - -31546.7605422222, - -20994.7058795555, - -15752.8359862222, - -30510.4610933333, - -61743.0494044444, - -104286.717248889, - -105187.910915556, - -97812.7764044445, - -100758.727213333, - -49099.9616711111, - -15489.3943644444, - -8717.25366444444, - -4745.08505288889, - -4423.55673688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8490.38731733334, - 23245.4040915556, - -6148.33884, - -20088.4127755556, - -33668.3023155556, - -38083.4186044444, - -38753.9653066667, - -48900.9663866667, - -50756.3995911111, - -74498.0903022222, - -91803.9394133333, - -50254.0757066667, - -15698.4712951111, - -4632.92673866667, - -7189.26881244444, - -28043.9453151111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 4645.23572533333, - 28801.5341373333, - 7512.49694088889, - -9706.36866444444, - -29023.8578822222, - -39409.2723111111, - -43012.8746933333, - -56026.9904533333, - -64517.5536133333, - -85818.8411822222, - -102370.325253333, - -62400.4079066667, - -22977.1854106667, - -7406.81549822222, - -4335.10787555556, - -22314.2878644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3669.80714622222, - 42168.2437511111, - 21758.3612737778, - 12901.1075395556, - -169.27845992, - -18185.3848226667, - -21762.0832768889, - -25389.1606551111, - -31818.1443911111, - -29993.4836533333, - -25275.449064, - -46.0877767911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10783.0240053333, - -14972.5927671111, - -15031.2362964444, - -19111.5188408889, - -14732.1279204444, - -1755.37286568889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -597.566134133333, - -10114.294344, - -28204.28452, - -25736.0396222222, - -43148.8596888889, - -67077.5297688889, - -96135.8235066667, - -124298.785, - -133839.12888, - -152409.579835556, - -156974.455462222, - -120461.898013333, - -72988.4810088889, - -48112.8981688889, - -26800.2101337778, - -8879.82020977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -12863.9754297778, - -28449.2040475556, - -24372.5262777778, - -68799.6156177778, - -107417.889, - -127485.05412, - -160611.761022222, - -163658.821364444, - -163320.324231111, - -168583.588315556, - -123440.086644444, - -80489.9291688889, - -58327.0125333333, - -44831.3809377778, - -27823.3799968889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -7940.878984, - -53979.8887422222, - -46838.0388355556, - -42354.0508355556, - -24654.0503871111, - -36167.9058222222, - -24054.9251146667, - -19737.7531911111, - -21260.7265271111, - -23780.1123337778, - -19563.8741008889, - -26805.1630355556, - -27241.1063133333, - -8167.83325244444, - -2591.78023253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9391.844748, - 20848.3754737778, - -30310.5865955556, - -29389.7571644444, - -32601.2304, - -40203.2019511111, - -43173.1845911111, - -62102.0615155556, - -87311.15928, - -87789.7444044444, - -79135.3544933333, - -47049.9292488889, - -13072.671368, - -5391.89299511111, - -4808.21257022222, - -12296.150152, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16117.3871413333, - 28388.0401066667, - -25293.0919448889, - -23444.4872973333, - -19997.6193453333, - -40532.61388, - -48593.5347911111, - -95149.0530755556, - -111293.461373333, - -130591.607897778, - -136892.343715556, - -89780.2833911111, - -51153.8040177778, - -27219.2139013333, - -10932.9884928889, - -2954.83086355555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -14.0429418955556, - 2569.7998992, - -11974.358072, - -19541.3955466667, - -23872.224584, - -11578.4190008889, - -499.8855328, - -23941.066988, - -37919.0057111111, - -53211.74936, - -60855.9231511111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5359.03972355556, - -8735.36545911111, - -9133.12157111111, - -11530.5897955556, - -6706.05316444445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10240.4028431111, - 0, - -7499.80696177778, - -25263.9899835556, - -19023.5095862222, - -39619.6973688889, - -41569.2064, - -59112.7361822222, - -102729.044293333, - -116765.392088889, - -121843.435231111, - -84787.2308711111, - -41805.7147866667, - -22521.4305257778, - -5876.51538444444, - -2266.58852764444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -20877.711892, - 20189.5223088889, - -8037.18215111111, - -24868.0509124445, - -35194.03052, - -25973.6909862222, - -34082.1187244444, - -38266.0019066667, - -49879.2377555556, - -70911.1929733333, - -99401.2218266667, - -59183.36632, - -24295.8002608889, - -10453.3483124444, - -3982.77778577778, - -1368.74173306667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4275.350676, - 8076.01407333333, - -30227.9405422222, - -31831.03952, - -54445.2856666667, - -102155.211057778, - -124133.785964444, - -162502.948902222, - -183820.355382222, - -188243.384591111, - -193529.508222222, - -142416.73416, - -90536.993, - -62633.6925111111, - -41626.9414088889, - -25391.0363102222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -745.997859777778, - -18880.1978128889, - -48185.5798044445, - -100762.537137778, - -142568.544995556, - -153729.279048889, - -160541.423955556, - -181762.116968889, - -185163.793355556, - -187824.879044444, - -177383.634568889, - -114302.422471111, - -65283.0553555556, - -33796.3743911111, - -16287.954528, - -4999.73454133333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - 1918.3028192, - -43352.5441111111, - -21319.9561986667, - -33108.8295644444, - -52827.2400622222, - -65895.8670488889, - -115465.621711111, - -131122.945822222, - -145111.229955556, - -145325.758008889, - -107594.024737778, - -64965.9524133333, - -49777.54208, - -26387.6246235556, - -13770.6788333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -12370.4436786667, - -9592.42261644445, - -7848.88396222222, - -13515.0329031111, - -42522.5667244445, - -53844.78296, - -83173.8744044445, - -103680.939262222, - -106960.404995556, - -102963.794253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8873.46056666667, - -11065.1049497778, - -15854.2972048889, - -12539.1647173333, - -9205.42221422222, - -1998.42259955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -636.181183733333, - -16382.4406542222, - -47509.4647511111, - -26390.379492, - -36085.55284, - -71644.4568933333, - -93042.1648577778, - -134224.810462222, - -153269.157404444, - -173343.06316, - -194715.86008, - -173270.381524444, - -135327.930124445, - -109494.297822222, - -89694.4135555556, - -66224.9859066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -92.5518568888889, - -25340.3936222222, - -48658.5965777778, - -62797.2261911111, - -116970.248795556, - -156033.404124444, - -170967.428733333, - -191766.97856, - -184415.289737778, - -180552.905564445, - -178978.234484445, - -143465.342595556, - -87614.7809511111, - -49638.9194444444, - -25934.5073786667, - -4331.76686488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - 0, - -36674.9188444444, - -33426.5186488889, - -34658.8826711111, - -33400.1422488889, - -45674.5465244444, - -57123.6625511111, - -99388.6197688889, - -112940.814088889, - -131964.352982222, - -101448.323537778, - -75168.3439333333, - -52495.4835644444, - -28143.2378075555, - -6504.97707511111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2802.65368911111, - 1555.07927622222, - -29550.9462755556, - -31458.2530666667, - -35121.3488844444, - -24593.7949666667, - -21442.1961591111, - -22625.8517626667, - -20660.1652062222, - -20568.4925626667, - -22419.8520786667, - -19739.2185466667, - -10312.908636, - -24370.6213155556, - -17435.5037706667, - -796.579002844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9371.62284133333, - 26171.1036866667, - -18092.2761306667, - -32162.5029466667, - -27774.8181137778, - -28481.9987048889, - -20777.8625644444, - -20874.8397951111, - -30101.0407511111, - -49298.0777422222, - -87394.0984044445, - -62091.5109555556, - -35715.6970977778, - -16568.599424, - -6475.84580666667, - -7693.96657288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16926.5857862222, - 38228.7818755556, - 35134.2440133333, - 15308.8332528889, - 10799.3773733333, - -4222.53926177778, - -2420.8787448, - -2805.84523351111, - -13818.6252671111, - -18678.3304315556, - -21316.7031093333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4085.968124, - -1923.84772462222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23025.9524435556, - 23631.144288, - 13145.3530035556, - -10784.518668, - -15343.2691084445, - -24377.2154155555, - -39061.1038311111, - -58899.3804133333, - -89823.9509866667, - -112527.290751111, - -123403.452755556, - -88527.9905333333, - -54805.4700622222, - -31855.6574933333, - -13181.4593644444, - -3758.87145688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10176.542648, - -35850.5098088889, - -29967.6933955556, - -23927.2926457778, - -23440.0619235556, - -18971.8997635556, - -21512.1522333333, - -19682.0989871111, - -20229.4972084444, - -22785.8978964444, - -20969.8241422222, - -6863.84265066667, - -26056.1611968889, - -13730.498784, - -2280.30425564445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5111.68770577778, - 28816.8617564444, - 24040.4767088889, - 12421.3208235556, - 5969.53615511111, - 1517.70684813333, - 10047.9137373333, - -10246.2056511111, - -17096.1567311111, - -24103.8972973333, - -26623.8985533333, - 8786.242604, - 0, - 10019.8082177778, - 19937.92076, - 26909.3498155556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2386.40185928889, - 44323.4887022222, - 31680.9871111111, - 8446.92487155556, - -9874.03464711111, - -27254.7048128889, - -17166.6989475556, - -21697.5490182222, - -30389.1296533333, - -44908.45864, - -77427.6291288889, - -59401.9973688889, - -34531.98288, - -15707.4392711111, - -6097.66684488889, - -1975.54546862222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -37177.8288711111, - -40254.1963244445, - -28835.1200866667, - -21715.5728915556, - -33631.3753555556, - -41622.5453422222, - -57693.3927911111, - -82845.63476, - -95167.2234844444, - -70803.0497333333, - -41476.5959288889, - -20790.2008582222, - -5761.80735155556, - -1421.15163986667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -21199.2109008889, - 16003.0014866667, - 10322.140376, - 12409.9203573333, - -1540.07403533333, - -8506.916528, - -7391.48787911111, - -20699.9935702222, - -18206.6617853333, - -19442.3375111111, - -21145.6081946667, - -334.713585288889, - -2581.88908253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7118.11114666667, - -8166.13344, - -10363.0531031111, - -8393.38077955556, - -5165.14387644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -648.317258444445, - -5496.78314577778, - -28383.2044333333, - -15698.2954524444, - -25845.8240604444, - -55748.5728977778, - -88387.0233288889, - -122158.486675556, - -128765.188733333, - -141017.905746667, - -153540.248182222, - -104490.1086, - -64542.4646577778, - -44493.1768755556, - -33959.9080711111, - -23196.72498, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -17607.8881982222, - -33015.33988, - -43494.3905288889, - -82756.5411422222, - -113452.223177778, - -129837.829, - -166762.444431111, - -179621.232502222, - -187197.706866667, - -195415.713893333, - -171655.266631111, - -123766.567862222, - -108322.59952, - -90969.56596, - -70499.1349911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -32064.9102666667, - -96841.2456711111, - -124649.884191111, - -138448.551315556, - -172699.185928889, - -157474.141706667, - -199329.971653333, - -206157.063186667, - -220773.984853333, - -241437.549684444, - -201760.99652, - -163432.277395555, - -140653.618355556, - -111764.133577778, - -92666.4476933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -53189.7690266667, - -135589.642626667, - -139575.409737778, - -156733.257937778, - -192619.815493333, - -211421.792626667, - -236616.822977778, - -241885.069271111, - -243615.654182222, - -249857.189635556, - -220760.210511111, - -175753.573048889, - -143003.462524444, - -119934.076942222, - -98757.0515244444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1550.11172088889, - -55541.6646933333, - -142384.789408889, - -150757.244911111, - -161477.493084444, - -184039.279502222, - -130345.721235556, - -117999.807608889, - -120908.245315556, - -130596.297035556, - -159203.847404444, - -118902.466631111, - -76515.0056888889, - -53749.2417777778, - -24379.2082991111, - -9072.25070133333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -7544.177928, - -20552.9304866667, - -18102.5336195556, - -14585.0355297778, - -17844.2500493333, - -14004.1099733333, - -11784.0376924445, - -6201.97085333333, - -5551.11852977778, - -5743.22664311111, - -728.434108088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1860.54729533333, - -61319.85472, - -102445.644528889, - -106063.607395556, - -110047.909151111, - -113517.871106667, - -114220.069488889, - -136823.472004445, - -147247.718355556, - -145561.387182222, - -152437.421591111, - -114853.689231111, - -80832.5292977778, - -58264.0022444445, - -33433.2592844444, - -16729.1437786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -23650.3697528889, - -93961.8220044444, - -140278.194262222, - -158889.382102222, - -188950.272111111, - -184857.827115556, - -215964.980991111, - -234021.385217778, - -236963.819173333, - -234682.260573333, - -192739.974648889, - -149086.446506667, - -124546.430088889, - -107891.198844444, - -73193.0446444444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -19216.5555271111, - -31733.7399111111, - -24382.5786168889, - -23033.8360564444, - -22814.8533222222, - -23907.6861884444, - -33343.5795244445, - -36700.12296, - -42719.21744, - -48874.5899866667, - -36531.9001422222, - -20522.6269337778, - -38505.7340755556, - -15363.4910151111, - 2124.12372982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 45405.2141733333, - 23974.565016, - 3445.49051777778, - -22028.3676884444, - -41876.9310666667, - -29311.8002488889, - -40652.1868933333, - -42394.4946488889, - -69212.5528133333, - -80420.1782444445, - -63381.6099866667, - -38777.4109955555, - -19210.4889551111, - -7242.05091955556, - -17327.6536017778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1961.44581746667, - 30341.6521333333, - 9272.97510533333, - -27377.0033875556, - -26207.2100475556, - -35068.0099422222, - -49315.95508, - -103514.767942222, - -126187.33524, - -152970.811013333, - -171076.158115556, - -135688.407591111, - -102684.497484445, - -72395.8912222222, - -31758.9440266667, - -15523.1268493333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -213.221249248889, - -15596.0429417778, - -7669.49513511111, - -11200.1521177778, - -28004.4100222222, - -42330.0190044445, - -49693.7237422222, - -65762.8127644445, - -84417.6682, - -93009.6339644445, - -98512.6302177778, - -4228.01969155556, - -11445.9801657778, - -9217.760508, - -2696.97810786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2408.65474875556, - -5147.03208177778, - -4669.32617066667, - -2353.41377502222, - -10160.3944297778, - -12787.8355551111, - -19995.2454693333, - -21985.6672275555, - -19034.2359888889, - -9705.723908, - -3365.80448266667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 280.612072035556, - -18013.0590093333, - -38253.1067777778, - -48455.4982977778, - -91000.3384266667, - -122441.007226667, - -139812.211195556, - -167725.183031111, - -187581.336951111, - -197289.024435556, - -204599.09716, - -187188.621662222, - -133704.902311111, - -95594.5211644445, - -65426.6602, - -43530.4382755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -13915.8662617778, - -56281.0831066667, - -70388.06104, - -123875.883386667, - -156793.923657778, - -178207.457462222, - -208070.524471111, - -209646.660906667, - -232619.333022222, - -225197.014062222, - -199581.133595556, - -145718.180226667, - -114179.918746667, - -83570.1065466667, - -67095.9932488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -124.52825968, - -25777.3040346667, - -73334.30492, - -103717.866222222, - -152241.357017778, - -189557.808524444, - -198788.962382222, - -220542.751746667, - -236322.286511111, - -237870.581191111, - -236340.45692, - -202136.127542222, - -147784.33156, - -124551.99844, - -83485.4089955556, - -58658.47596, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -84.1114088888889, - -22166.7558671111, - -66021.3014844444, - -97015.9160533333, - -149711.274115556, - -190441.417924445, - -202867.339964444, - -211837.660533333, - -210948.482782222, - -218473.08356, - -219149.198613333, - -188266.537208889, - -146743.342973333, - -111734.826466667, - -80720.2830622222, - -55645.4118666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 28.6188629137778, - -23718.5087862222, - -67816.0689688889, - -99769.9052844444, - -141092.931951111, - -174490.43656, - -192393.857666667, - -206179.629662222, - -216000.735666667, - -229050.606102222, - -229894.650902222, - -194782.094151111, - -154411.841666667, - -117668.637253333, - -87203.6021822222, - -63021.7186622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -13400.0904133333, - -17568.528748, - -34044.6056222222, - -59658.14152, - -96113.8431733333, - -105652.428626667, - -113482.409502222, - -123986.957337778, - -131581.895182222, - -140022.636253333, - -6466.35030266667, - -9987.160096, - -7094.75337911111, - -2345.74996546667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2713.91468737778, - -8168.65385155555, - -10905.3811942222, - -15285.4168711111, - -23510.6920613333, - -33477.2199511111, - -38368.5767955556, - -41425.0154133333, - -54998.6039244445, - -28739.7547471111, - -16223.5374977778, - -2560.34542515556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -17550.6807173333, - -89099.4792, - -154172.402568889, - -171054.177782222, - -196169.785862222, - -223924.499297778, - -226409.156177778, - -242154.987764444, - -248312.411808889, - -248403.849995556, - -254221.01848, - -225779.34636, - -176644.509226667, - -149732.082164444, - -117742.491173333, - -80909.9000711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -41971.0068933333, - -134799.522911111, - -148426.157293333, - -177735.026831111, - -210086.853715556, - -218935.549773333, - -231753.60096, - -226470.114968889, - -230513.617088889, - -227142.713168889, - -187725.234866667, - -150031.893911111, - -112638.657773333, - -98503.8380844444, - -74927.1464088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1877.6567868, - -42702.8054577778, - -113102.0032, - -136907.583413333, - -171616.874315556, - -202113.854137778, - -219343.50476, - -237608.282546667, - -236017.199484445, - -253095.332342222, - -234423.771853333, - -200105.730884444, - -143727.64124, - -125272.367231111, - -101369.194337778, - -72910.8171644445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -125.946723857778, - -33369.9559244445, - -63091.1765155556, - -101448.90968, - -143186.631968889, - -174241.326115556, - -185586.98804, - -205623.673764445, - -217706.409533333, - -222297.075417778, - -231790.820991111, - -173448.275688889, - -129869.773751111, - -109558.773466667, - -76363.1948533333, - -57760.7991466667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -210.012999795556, - -34136.33688, - -88733.7264533333, - -105775.518493333, - -144197.434231111, - -167162.193426667, - -173197.699888889, - -204774.353684444, - -209637.282631111, - -222246.667186667, - -214929.560755555, - -178309.153137778, - -137069.944808889, - -114292.164982222, - -83928.5325155556, - -68613.8085333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -26324.4677991111, - -28908.8860853333, - -35347.01364, - -68119.1044977778, - -95572.8339022222, - -95821.0651333333, - -99538.3791066667, - -99293.9578, - -108511.044244444, - -105328.87812, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9467.72085866667, - -19082.534108, - -27872.6159435556, - -31535.9169111111, - -24281.586312, - -6888.51923822222, - -3046.26905022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16894.2893497778, - -82126.1451822222, - -142692.807146667, - -124151.663302222, - -144407.273146667, - -164633.57588, - -155992.960311111, - -180468.208013333, - -173722.590248889, - -179869.170662222, - -186030.404631111, - -147748.869955556, - -115294.468182222, - -85308.3113066667, - -49111.3914444445, - -20027.9228982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -25155.3485226667, - -48712.2285911111, - -48344.1312755556, - -56127.5138444445, - -86310.0283644445, - -102301.746613333, - -127578.250733333, - -140910.934791111, - -144905.787106667, - -146267.68856, - -108183.683813333, - -73234.6607422222, - -45526.8386844444, - -18820.0596208889, - -5503.93408088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -20160.4496546667, - 10373.2226706667, - -40262.1092444444, - -41993.2802977778, - -34516.7431822222, - -36385.9507288889, - -46331.6119555556, - -62019.7085333333, - -85494.9976044444, - -93848.9896266667, - -108612.446848889, - -82469.3314533333, - -54605.5955644445, - -36869.2249911111, - -9014.54499955556, - -5277.74179733333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23619.1576795556, - 20590.0332893333, - -36009.06128, - -33645.1496977778, - -30591.6417911111, - -42000.3140044444, - -76381.9514044445, - -112900.663346667, - -132869.649644444, - -144504.572755556, - -155178.515693333, - -128548.902253333, - -96297.0126177778, - -63398.6081111111, - -27294.8555551111, - -10967.6294982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6282.44818044444, - -35486.80856, - -47623.7624844444, - -61371.4352355556, - -109905.769662222, - -138747.190777778, - -170759.055173333, - -176008.837986667, - -205303.933182222, - -205873.07728, - -164055.053506667, - -128510.216866667, - -100602.813382222, - -71898.2564755556, - -45092.2142266667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -10582.3582155556, - -12495.2333577778, - -14820.8698528889, - -14761.2298817778, - -33002.7378222222, - -55159.7930355556, - -69541.3786, - -89681.8114977778, - -104420.357675556, - -106638.319844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3197.02482977778, - -11483.2001968889, - -12726.4371573333, - -2782.00976004444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -17767.14304, - -85457.4845022222, - -152345.983404444, - -152182.742795556, - -158644.960795556, - -175621.397977778, - -175532.890502222, - -201069.641768889, - -215492.843431111, - -222399.357235556, - -232074.513826667, - -200484.671831111, - -156992.918942222, - -134206.053911111, - -99923.7676177778, - -76249.4832622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -36307.4076711111, - -117843.893777778, - -138070.489582222, - -168828.595764444, - -196496.26708, - -211683.212057778, - -229062.328946667, - -235404.09472, - -241166.458906667, - -243326.392995556, - -200291.537968889, - -156334.681226667, - -126792.820155556, - -105280.814457778, - -80953.8607377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1462.14349617778, - -40898.3666266667, - -126377.538391111, - -161088.001577778, - -182003.314493333, - -219155.939248889, - -225198.186346667, - -242396.185288889, - -239715.463835556, - -278460.050866667, - -259189.453026667, - -217528.515368889, - -174823.365342222, - -132099.458764445, - -107400.304733333, - -87655.5178355556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -284.488230551111, - -36514.9020177778, - -110190.634782222, - -155667.944448889, - -192395.029951111, - -221194.248826667, - -231547.86504, - -241491.474768889, - -243857.73092, - -250985.806484444, - -256630.649155556, - -212801.864488889, - -169100.565755556, - -136528.935537778, - -99206.0364666667, - -82246.3043377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -382.249719511111, - -36823.7989688889, - -125239.836337778, - -169110.823244444, - -195278.263542222, - -218792.824142222, - -235302.105973333, - -252766.799626667, - -265638.189755555, - -271703.882542222, - -277822.328128889, - -239227.500435556, - -189659.211128889, - -165254.007422222, - -124063.448897778, - -102980.792377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4611.59116177778, - -64086.73908, - -105665.323755556, - -131630.838057778, - -154802.212386667, - -178518.11284, - -165210.925968889, - -171532.176764444, - -173317.272902222, - -181981.627231111, - -185216.546155556, - -10325.2469297778, - -13420.7519266667, - -12841.877868, - -7601.414716, - -3233.30703333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7255.73734044444, - -12059.1435444445, - -18556.6473062222, - -18747.9934346667, - -31021.28404, - -36410.2756311111, - -18486.163704, - -26836.7561013333, - -22498.6002862222, - -32707.6152133333, - -19465.3435933333, - -5340.165944, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -24563.9310204444, - -68940.5828222222, - -148455.757475556, - -211114.654102222, - -234992.915951111, - -244483.730813333, - -266917.445155556, - -259520.03724, - -287107.114, - -290776.950453333, - -313565.573911111, - -299146.475244444, - -266043.800173333, - -209966.987631111, - -182399.546635556, - -142936.935382222, - -109083.412124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7350.69238044444, - -60558.7490444445, - -136398.225822222, - -140248.59408, - -141601.996471111, - -162245.046324444, - -165654.049488889, - -189331.264555556, - -185872.439302222, - -191360.488928889, - -192237.650764444, - -152765.368164444, - -116975.231004444, - -86548.5882488889, - -50438.4174355556, - -22027.2833253333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 300.107748488889, - -25577.8984506667, - -39157.8172977778, - -45987.8395422222, - -56625.7347333333, - -93916.3959822222, - -102622.073337778, - -140341.497622222, - -151909.307448889, - -169482.437413333, - -177740.595182222, - -142391.823115556, - -112498.569782222, - -90910.3655955556, - -50850.7684888889, - -26365.2926048889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -18637.0660191111, - -36826.4366088889, - -40562.8002044444, - -71258.1891688889, - -129767.491933333, - -140962.808377778, - -164593.425137778, - -173566.383346667, - -175735.109568889, - -195292.037884444, - -160182.411844444, - -122487.898604444, - -90899.5219644445, - -67141.4192711111, - -38905.7761422222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 87.3199514133333, - -17073.3851057778, - -37779.2107911111, - -63041.0613555555, - -116257.792924445, - -143268.398808889, - -158008.410342222, - -176921.461426667, - -190804.826102222, - -198294.258346667, - -212409.442271111, - -178607.7926, - -139578.047377778, - -111544.916386667, - -77036.6722666667, - -56118.1355688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -14350.4614124445, - -21425.6376413333, - -35913.5200977778, - -55173.5673777778, - -84941.3862755556, - -86141.5124755556, - -96418.6371288889, - -107026.345995556, - -115471.776204444, - -126700.795826667, - -4583.10464977778, - -11200.9141026667, - -9515.87244222222, - -3132.31472844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6869.64545866667, - -8291.77302533333, - -8491.03207377778, - -7599.65628933333, - -15814.6446835556, - -18462.6300937778, - -18071.5853102222, - -24712.6353022222, - -16639.9329324444, - -2730.34718457778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10956.4341817778, - -74645.7981422222, - -137372.980337778, - -161395.726244444, - -192131.852093333, - -215664.876173333, - -226725.672977778, - -249357.503391111, - -247871.339786667, - -254640.110168889, - -261851.417928889, - -222212.084795556, - -180819.014133333, - -153162.47952, - -121024.594546667, - -96716.3973777778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3907.42920311111, - -71837.0046133333, - -173828.681991111, - -169011.472137778, - -206146.219555556, - -234470.077088889, - -232580.940706667, - -256400.295262222, - -251646.095697778, - -268230.989875556, - -261944.907613333, - -236064.090862222, - -185312.087337778, - -166862.088608889, - -132181.518675556, - -107543.909577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5896.26837733333, - -65447.4682488889, - -149449.268542222, - -174141.975008889, - -198467.170302222, - -229805.850355556, - -234825.572346667, - -255318.569791111, - -252798.451306667, - -258639.06548, - -263545.368951111, - -236491.974684444, - -187337.794857778, - -158440.690231111, - -134082.084831111, - -117751.869448889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3234.36208933333, - -81259.8269777778, - -177222.738528889, - -199113.978244444, - -214636.196573333, - -238177.426644444, - -250050.616568889, - -258046.475693333, - -259072.810724445, - -259823.36584, - -273502.753022222, - -242032.48404, - -193497.2704, - -167868.787875556, - -144229.378982222, - -110018.895111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6511.95216755556, - -102979.620093333, - -176124.894146667, - -204956.643915556, - -224818.952328889, - -254913.545515556, - -250829.599582222, - -264648.781684444, - -260930.295426667, - -276280.481013333, - -290121.93652, - -251551.7268, - -209446.493337778, - -178093.745871111, - -139655.12508, - -109065.534786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7210.86815333333, - -63441.3964933333, - -96009.8029288889, - -127807.432342222, - -155118.143044444, - -171841.952928889, - -173363.285066667, - -176692.86596, - -174298.768053333, - -175604.106782222, - -172457.695333333, - -449.7703728, - -3271.201128, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2946.771408, - -7607.89158755556, - -9761.43672622222, - -15227.4180982222, - -16847.1635151111, - -30800.6014933333, - -35933.7420044444, - -41920.8917333333, - -69211.3805288889, - -73412.2618355556, - -36294.8056133333, - -35552.1634177778, - -13540.2663257778, - -6550.75478266667, - -3044.77438755556, - 0, - 0, - 0, - 0, - 0, - 0, - -27864.5271808889, - -87120.9561288889, - -154703.447422222, - -220937.225462222, - -234686.070497778, - -251195.938471111, - -263404.694817778, - -264736.703017778, - -279543.534764445, - -283935.791506667, - -276757.600782222, - -275782.260124444, - -234008.490088889, - -175033.497328889, - -142909.679768889, - -114169.075115556, - -97931.7632755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12799.2946355556, - -91262.344, - -180398.164017778, - -200315.5698, - -210836.822688889, - -234665.262448889, - -249409.376977778, - -257209.757671111, - -274689.984093333, - -268367.561013333, - -275819.480155555, - -238911.276706667, - -175197.32408, - -146700.847662222, - -115408.472844444, - -98972.16572, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12229.681624, - -93426.0880133333, - -161080.967871111, - -147655.966413333, - -165578.144071111, - -170719.490573333, - -165997.23576, - -186593.687306667, - -185167.017137778, - -191464.822244445, - -192319.710675556, - -151381.486377778, - -118399.556604444, - -102389.374875556, - -85364.8740311111, - -65412.8858577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2961.42496355556, - -46790.8543866667, - -137251.941968889, - -146216.694186667, - -173996.611737778, - -193783.893946667, - -188822.786177778, - -219235.36152, - -214067.638617778, - -225600.866053333, - -229586.926235556, - -185999.046022222, - -145741.918986667, - -125124.073248889, - -98905.0524355556, - -74518.0191377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7852.10774444445, - -96263.6025111111, - -172367.13636, - -179963.832631111, - -219189.349355555, - -212144.212915555, - -228122.156822222, - -258314.928831111, - -256203.937617778, - -272174.261675556, - -287328.089617778, - -224315.45616, - -145956.740111111, - -118539.644595556, - -88291.4821466667, - -70944.3100088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3393.55831688889, - -39974.6064844444, - -56461.9079822222, - -66099.2584, - -99121.0458444445, - -114528.087226667, - -110893.712377778, - -130610.364448889, - -140048.426511111, - -141954.854088889, - -149048.054191111, - -1330.57508226667, - -6452.98626, - -6494.30928666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7737.253176, - -7992.72326355556, - -7911.63048711111, - -21227.1405777778, - -32437.1105777778, - -39789.6786133333, - -41694.3477644444, - -20401.2368795556, - -15637.8641893333, - -2962.09902711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10709.2580066667, - -20742.3716528889, - -42454.2811555556, - -70872.8006577778, - -79020.7636888889, - -86133.3064844444, - -90472.2242844444, - -90873.1455644445, - -82898.38756, - -71755.5308444445, - -24585.8234324445, - -10957.4892377778, - -3185.09683555556, - 0, - 0, - 0, - 0, - 0, - 0, - -55874.5934755556, - -121073.830493333, - -204618.146782222, - -261937.873906667, - -285111.299733333, - -299105.445288889, - -307173.692977778, - -312182.278266667, - -313014.600222222, - -325833.530622222, - -328673.389688889, - -337116.7684, - -293938.6016, - -247294.57584, - -208965.856715556, - -183938.756111111, - -155901.522124445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -53954.3915555556, - -141148.908533333, - -214246.118924444, - -243077.868693333, - -262044.844862222, - -281833.299355556, - -286945.631817778, - -312220.377511111, - -307279.198577778, - -310643.654933333, - -310713.992, - -223851.23152, - -189652.470493333, - -161340.921946667, - -136074.968386667, - -123530.059475556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -20765.7587275556, - -130227.320506667, - -211759.117475556, - -224340.660275556, - -243245.212297778, - -241047.765106667, - -263797.703177778, - -280823.669377778, - -278813.494626667, - -277665.828155556, - -297862.823777778, - -266828.351537778, - -207161.417884444, - -185758.141568889, - -140982.737213333, - -121263.447502222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7136.10571288889, - -91931.4253466667, - -175095.335333333, - -183993.85348, - -213918.465422222, - -229115.667888889, - -214348.986884444, - -234930.491804444, - -249464.181275556, - -253519.40624, - -256416.121102222, - -230285.314693333, - -176199.62728, - -157180.777524444, - -114208.932786667, - -86786.5619911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6196.78349466667, - -73401.1251333333, - -111573.344284445, - -132513.568244444, - -154678.536377778, - -168016.495715556, - -158071.420631111, - -172820.224297778, - -174890.478626667, - -177576.182288889, - -174241.912257778, - -11450.4934608889, - -11417.8746462222, - -9890.03632977778, - -3858.72078444445, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8556.12316755556, - -17445.1458102222, - -21819.2907577778, - -23007.2838137778, - -37653.4832844445, - -51998.43496, - -77853.1683822222, - -84632.7823955556, - -90923.8468666667, - -89027.0906355556, - -85402.3871333333, - -70395.3878177778, - -28393.4326151111, - -15004.4202897778, - -5963.41096888889, - 0, - 0, - 0, - 0, - 0, - 0, - -57765.1952133333, - -115417.264977778, - -192839.325755556, - -255885.955462222, - -278057.664231111, - -294161.335644444, - -295855.286666667, - -290749.987911111, - -308093.936266667, - -308480.790133333, - -311537.521822222, - -320068.821866667, - -290922.899866667, - -244745.736386667, - -214773.646924444, - -180590.125595556, - -147908.593711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -32363.2566577778, - -127580.595302222, - -225289.038391111, - -251652.250191111, - -287605.62796, - -307554.685422222, - -316411.2944, - -324757.959644445, - -329218.501955556, - -335288.004666667, - -340680.513111111, - -306748.739866667, - -252753.025284444, - -187831.912751111, - -146841.228724445, - -122395.874275556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2519.05756702222, - -57405.59696, - -120116.660244444, - -146824.2306, - -159806.401608889, - -177012.606542222, - -178769.567853333, - -200967.946093333, - -202484.002951111, - -209508.917484444, - -217852.065875556, - -177261.716986667, - -138986.043733333, - -118197.92368, - -90180.3254577778, - -67002.5035644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -30403.1970666667, - -78124.5522311111, - -111555.173875556, - -137239.926053333, - -160418.041017778, - -162158.883417778, - -175691.148902222, - -185599.003955556, - -205090.284342222, - -206268.430208889, - -184382.465773333, - -151559.673613333, - -133041.682386667, - -96032.6624755556, - -72157.3313377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -781.679267555556, - -36018.7326266667, - -111462.563404444, - -138599.482937778, - -176331.50928, - -208223.21452, - -228545.058435555, - -252072.807235555, - -266184.181235556, - -270351.945506667, - -283706.609897778, - -251608.289524444, - -192464.780875556, - -162727.148302222, - -131718.46632, - -83687.9211333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -69.9420068088889, - -16719.9413457778, - -27823.7609893333, - -53325.16788, - -67386.7197911111, - -102112.129604444, - -104921.509275556, - -113623.376706667, - -128466.842342222, - -134664.124057778, - -141364.608871111, - -4849.44767555556, - -11354.7178217778, - -10494.4661893333, - -6017.07228933333, - -2342.84563075556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4870.57810266667, - -12056.124912, - -15750.4621102222, - -17343.010528, - -16901.8212773333, - -33241.0046355556, - -44639.7124311111, - -90096.50712, - -94506.3481288889, - -90807.7907066667, - -89252.1692488889, - -77356.9989911111, - -30183.6868044444, - -21992.7595484444, - -6865.65969155556, - -3377.90831955555, - 0, - 0, - 0, - 0, - 0, - -89424.2019911111, - -147146.315751111, - -209565.480208889, - -284446.028311111, - -300207.392666667, - -315095.405111111, - -332046.638177778, - -335795.017688889, - -325950.759066667, - -332832.068755555, - -350093.9572, - -337275.0268, - -310435.574444444, - -260079.21692, - -242089.046764444, - -214802.074822222, - -180389.078813333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -71305.3736177778, - -178432.243004444, - -260747.419053333, - -281384.900555555, - -299462.992044444, - -321091.640044444, - -326621.891911111, - -325804.223511111, - -331138.117733333, - -325900.936977778, - -341946.580311111, - -310001.8292, - -253352.355706667, - -238926.809475556, - -211559.82912, - -182462.263853333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -86373.3317244444, - -175708.733168889, - -234612.80272, - -253517.061671111, - -259827.761906667, - -290313.311955556, - -299518.675555556, - -313887.952133333, - -324294.907288889, - -312472.418666667, - -314318.766666667, - -264638.231124445, - -213429.036666667, - -188188.580293333, - -169893.323111111, - -165353.358528889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -70905.6246222222, - -163678.7502, - -230251.025373333, - -236964.698386667, - -241497.04312, - -261263.51728, - -269418.807088889, - -270002.604742222, - -271628.856337778, - -281773.219777778, - -282014.124231111, - -244867.653968889, - -191395.364391111, - -167710.529475556, - -140614.932968889, - -124879.945013333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -47233.3917644444, - -152361.809244444, - -230525.046862222, - -248322.962368889, - -271469.718724444, - -281171.251715556, - -282502.673773333, - -315259.524933333, - -304717.757066667, - -274303.423297778, - -316229.590311111, - -274801.058044444, - -212859.306426667, - -200282.452764444, - -164939.835191111, - -145650.773871111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -33408.6413111111, - -120100.541333333, - -149807.987582222, - -166302.322786667, - -193727.038151111, - -207721.476777778, - -202151.074168889, - -198159.738706667, - -212416.182906667, - -179236.723204445, - -194928.043564444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -21198.4782231111, - -41722.18952, - -51852.4855466667, - -81828.6780044445, - -87720.5796222222, - -88304.6703466667, - -42803.3288488889, - -31809.6453288889, - -21090.4522115556, - -3457.53574044444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -67370.0147377778, - -125698.492626667, - -198727.417448889, - -281874.622382222, - -280161.035595556, - -307751.043066667, - -307030.088133333, - -293745.174666667, - -341123.050488889, - -348042.459422222, - -345354.997333333, - -351166.597466667, - -307135.593733333, - -253510.907177778, - -234738.823297778, - -200358.358182222, - -177293.954808889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -60213.8043466667, - -149139.492377778, - -232865.805826667, - -265865.612937778, - -292907.28436, - -321592.791644444, - -305828.496577778, - -329397.275333333, - -314655.798444444, - -334203.641555556, - -331844.419111111, - -304767.579155556, - -257790.038471111, - -222408.44244, - -164560.015031111, - -135754.05552, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -35735.3328622222, - -143179.598262222, - -233774.326271111, - -259757.717911111, - -281698.486644445, - -295090.371066667, - -305620.416088889, - -316059.609066667, - -328834.5788, - -335009.587111111, - -330288.211511111, - -303375.491377778, - -246199.369097778, - -224449.9758, - -191158.269862222, - -169716.015088889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -56043.1093644444, - -168393.092093333, - -252340.967302222, - -262408.25304, - -286180.423146667, - -306848.384044444, - -323204.682755556, - -330214.943733333, - -317302.230577778, - -299231.465866667, - -326070.918222222, - -318070.076888889, - -247564.201262222, - -227908.214911111, - -201494.59488, - -132949.951128889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -57995.5491066667, - -158197.73428, - -235519.564737778, - -267548.720328889, - -288732.779453333, - -314227.914622222, - -328981.114355556, - -331724.259955555, - -342222.067155556, - -325317.725466667, - -349836.054622222, - -322715.254, - -241955.406337778, - -207237.909444444, - -190539.596746667, - -157364.826182222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -48460.7735777778, - -142082.633093333, - -163812.097555555, - -186292.996346667, - -204016.471791111, - -226436.997933333, - -228490.84028, - -223418.65856, - -215263.368751111, - -223122.363666667, - -227551.254297778, - -25584.1701724444, - -24185.0779951111, - -32139.3503288889, - -8668.51593866667, - -4793.09010088889, - -3493.52487288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1468.93688453333, - -12591.0089968889, - -29632.1269733333, - -58937.4796577778, - -86917.5647777778, - -93834.6291422222, - -102822.533977778, - -106731.809528889, - -112301.039853333, - -108354.2512, - -102364.756902222, - -87838.1011377778, - -42999.3934222222, - -24860.3431422222, - -16043.0350004444, - -3797.52753644444, - 0, - 0, - 0, - 0, - 0, - -122297.988524444, - -178637.685853333, - -243375.335871111, - -303870.781555556, - -307088.702355555, - -293997.215822222, - -317398.944044444, - -322858.858844444, - -346254.725644444, - -347048.948355555, - -354501.746711111, - -351550.520622222, - -271038.318048889, - -229865.343791111, - -203595.328604445, - -178744.94988, - -160303.450213333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -69427.0808666667, - -178879.762591111, - -263887.96908, - -285404.663915556, - -304418.824533333, - -325789.569955555, - -334590.495422222, - -345331.551644445, - -341293.031733333, - -348868.919955556, - -357063.188222222, - -327196.311288889, - -261247.984511111, - -241428.757551111, - -199012.57564, - -179123.304684444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -86421.6884577778, - -166713.501555556, - -268414.15932, - -277933.109008889, - -315757.745822222, - -326255.553022222, - -337313.126044444, - -346266.448488889, - -336738.706666667, - -330346.825733333, - -306593.412177778, - -294518.8824, - -257163.745506667, - -236766.875386667, - -201920.427204444, - -166477.579311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -84406.8245688889, - -185678.426226667, - -262307.729648889, - -277690.153057778, - -309225.190755556, - -320065.891155556, - -331340.3368, - -303240.678666667, - -311179.975066667, - -327609.541555555, - -346055.437288889, - -326706.882533333, - -253614.36128, - -232063.670195555, - -185213.322373333, - -173864.143595556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -68420.0885288889, - -169367.260466667, - -248502.028817778, - -268039.321368889, - -301948.235066667, - -323793.755688889, - -331498.5952, - -330628.174, - -338634.876755556, - -336700.607422222, - -275012.362315556, - -270089.939933333, - -211712.81224, - -194657.832, - -160589.194546667, - -136022.508657778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -47999.77272, - -146973.989937778, - -185451.882257778, - -209497.487711111, - -223396.092084444, - -240056.89168, - -221208.31624, - -236379.435377778, - -209223.759293333, - -212237.116457778, - -202823.379297778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6003.67893955556, - -15985.5344484444, - -18904.493408, - -33816.0101555556, - -53159.2896311111, - -77814.4829955556, - -91857.8644977778, - -99146.5430311111, - -94559.394, - -94704.4642, - -74931.8355466667, - -27895.3289546667, - -13270.758132, - -5574.76936844444, - 0, - 0, - 0, - 0, - 0, - 0, - -26330.8567493333, - -100679.011871111, - -187748.094413333, - -276938.132586667, - -281579.499773333, - -293830.165288889, - -300491.671644445, - -314526.847155556, - -332752.939555556, - -332550.720488889, - -335724.680622222, - -331785.804888889, - -293402.281466667, - -252236.927057778, - -216573.103546667, - -184701.034071111, - -164288.338111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -16240.9459217778, - -21624.427776, - -23746.1160848889, - -54473.4204933333, - -58602.4993777778, - -96110.32632, - -100804.153235556, - -120063.028231111, - -102751.610768889, - -96753.91048, - -87214.4458133333, - -44905.2348577778, - -29026.1438368889, - -8172.78615422222, - -7279.73986444445, - 0, - 0, - 0, - 0, - 0, - -126383.399813333, - -164170.816595555, - -255451.624075556, - -321449.1868, - -330540.252666667, - -347333.227333333, - -353604.949111111, - -340366.927022222, - -350337.206222222, - -363765.724533333, - -364703.552088889, - -359146.923822222, - -342227.928577778, - -278720.884155556, - -256441.325217778, - -230753.642328889, - -198576.192755556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -124013.91988, - -214423.133875556, - -295529.977733333, - -318796.893244444, - -317527.895333333, - -350586.316666667, - -357605.369777778, - -362452.765955555, - -363918.121511111, - -350984.893377778, - -372182.726844444, - -346814.491466667, - -292231.462377778, - -268606.413968889, - -237328.399635556, - -205988.547297778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -123184.821706667, - -231865.554124444, - -303141.034488889, - -317908.887777778, - -337512.4144, - -337374.670977778, - -370773.0548, - -359102.963155555, - -352459.041066667, - -362613.955066667, - -371579.000355556, - -338585.054666667, - -289180.592111111, - -265464.398586667, - -238945.859097778, - -209142.578595556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -110961.118733333, - -181360.316475556, - -215061.442755556, - -236706.209666667, - -253805.150573333, - -266925.065004444, - -250332.257906667, - -264052.381973333, - -264002.852955555, - -258391.420391111, - -264955.334066667, - -43229.4542444445, - -37520.1359288889, - -30371.5453866667, - -22709.9338644444, - -3878.79615555556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3987.81860888889, - -19383.6060604444, - -34159.4894977778, - -60264.5056488889, - -90603.5201422222, - -104457.870777778, - -117913.05856, - -120604.037502222, - -133146.894915556, - -130485.809226667, - -113042.216693333, - -108062.645444444, - -84887.4611911111, - -39952.9192222222, - -25004.7978928889, - -6550.81339688889, - -3447.83508666667, - 0, - 0, - 0, - 0, - -121755.806968889, - -146912.445004445, - -221777.167266667, - -288334.202742222, - -296755.014977778, - -295682.374711111, - -325109.644977778, - -328315.842933333, - -337491.899422222, - -347019.641244444, - -349759.856133333, - -353997.6644, - -314459.4408, - -261570.362733333, - -243873.55676, - -207587.836351111, - -179350.727866667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -78162.9445466667, - -185295.968426667, - -268563.625586667, - -273702.041377778, - -296250.932666667, - -308855.921155556, - -307569.338977778, - -322422.182888889, - -335923.968977778, - -330132.883822222, - -339563.912177778, - -304204.882622222, - -234325.886102222, - -207827.56852, - -182821.275964444, - -161362.609208889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -66331.0776488889, - -168130.500377778, - -244095.997733333, - -265277.712288889, - -295691.166844445, - -307853.617955556, - -315971.687733333, - -324664.176888889, - -322199.448844444, - -341208.041111111, - -347966.260933333, - -311437.877644444, - -261325.355284444, - -250926.313048889, - -222338.398444444, - -196963.422431111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -100108.695488889, - -185480.310155555, - -275173.551426667, - -283452.224173333, - -306455.668755556, - -321302.651244444, - -334329.662133333, - -353358.769377778, - -345826.841822222, - -354970.660488889, - -361775.771688889, - -315959.964888889, - -278677.802702222, - -230874.387626667, - -178669.630604445, - -163587.312013333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -92329.1228444444, - -183302.498728889, - -270403.526022222, - -286391.141275555, - -308867.644, - -331659.784311111, - -354457.786044444, - -359073.656044444, - -353637.186933333, - -362042.4664, - -357174.555244445, - -342157.591511111, - -270042.755484444, - -216463.494951111, - -199254.652377778, - -174029.435702222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -99660.8828311111, - -168359.975057778, - -195402.818764444, - -206943.95912, - -220071.786471111, - -247060.412022222, - -240883.645284444, - -253169.186262222, - -243572.279657778, - -246735.103088889, - -239954.02372, - -34308.0765511111, - -18444.6062204445, - -34816.5549288889, - -26634.2732706667, - -4862.07904044444, - -4277.37286666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -10832.4944088889, - -52230.54728, - -63113.1568488889, - -97764.1266, - -115067.338071111, - -118536.420813333, - -116851.554995556, - -124831.881351111, - -130776.82884, - -116125.324782222, - -93163.2032266667, - -76051.6602622222, - -37243.4768, - -23436.75022, - -7093.55178755556, - -9131.27522311111, - 0, - 0, - 0, - 0, - -123352.458382222, - -156938.700786667, - -222136.76552, - -296728.638577778, - -308568.711466667, - -312276.061022222, - -330285.2808, - -331123.464177778, - -335074.062755556, - -324672.969022222, - -339467.198711111, - -338432.657688889, - -325042.238622222, - -266949.096835556, - -249056.51936, - -214312.352995556, - -176965.715164444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -95283.8657866667, - -178065.904115556, - -251218.211875556, - -267306.35052, - -279352.745471111, - -302466.970933333, - -310590.902133333, - -321938.615555556, - -323852.369911111, - -338927.947866667, - -343203.855377778, - -313357.493422222, - -259234.292906667, - -217287.903986667, - -184661.762542222, - -154916.803191111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -67402.25256, - -167568.389986667, - -237306.712373333, - -243389.989426667, - -255018.758044444, - -273974.890582222, - -291963.888453333, - -307765.696622222, - -316598.859911111, - -336545.279733333, - -338453.172666667, - -316935.891688889, - -260723.973364444, - -240730.369093333, - -203765.309848889, - -179051.795333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -70289.5891466667, - -171559.432377778, - -253527.905302222, - -262625.125662222, - -278173.42732, - -302616.4372, - -319869.533511111, - -324256.808044444, - -329587.771555556, - -346395.399777778, - -353909.743066667, - -326235.038044445, - -268041.959008889, - -248628.928608889, - -214222.673235556, - -191838.780982222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -90844.4245955556, - -186157.890564444, - -271297.685982222, - -296661.232222222, - -306569.966488889, - -329576.048711111, - -330792.293822222, - -350870.595644445, - -342945.9528, - -349161.991066667, - -355542.149155556, - -332538.997644445, - -281974.26656, - -251517.144408889, - -215949.448222222, - -188008.634631111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -77191.9999555556, - -161481.303008889, - -193421.364982222, - -215149.364088889, - -238832.147506667, - -249671.968693333, - -242474.728346667, - -245037.928284444, - -230561.38768, - -224066.052644444, - -231966.077515555, - -4882.94570355556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4738.31511022222, - -17821.4198097778, - -22128.9203866667, - -37890.8708844444, - -41438.7897555555, - -57504.6549955556, - -79769.5603777778, - -90657.4452266667, - -96382.8824533333, - -101437.186835556, - -91478.63048, - -74694.1548755556, - -36989.3841466667, - -18854.4368622222, - -7195.51122711111, - -3240.31143288889, - 0, - 0, - 0, - 0, - 0, - -75832.7361422222, - -140157.448964445, - -208972.30428, - -280390.217204445, - -297077.3932, - -279210.605982222, - -302918.300444445, - -306783.9084, - -315863.251422222, - -317715.460844445, - -322310.815866667, - -336920.410755556, - -306669.610666667, - -249541.84512, - -231425.068244444, - -199262.565297778, - -175734.816497778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -78599.6205022222, - -164015.488906667, - -235085.233351111, - -253124.053311111, - -286758.066306667, - -324376.9672, - -317073.635111111, - -334933.388622222, - -334106.928088889, - -341378.022355556, - -338130.794444444, - -247943.728351111, - -201716.15664, - -178977.648342222, - -164871.549622222, - -147451.98892, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -86700.6921555556, - -176772.288231111, - -253849.404311111, - -266805.785062222, - -285305.898951111, - -313275.433511111, - -336902.826488889, - -337896.337555556, - -336181.871555556, - -353669.424755556, - -344938.836355556, - -319309.767688889, - -264538.293875556, - -235230.596622222, - -198950.737635556, - -177658.828342222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -85315.9311555556, - -172573.751493333, - -228052.698968889, - -220526.046693333, - -230612.968195556, - -249651.453715556, - -241197.231373333, - -262873.649964445, - -267855.858853333, - -279316.111582222, - -266173.337604444, - -220802.412751111, - -175832.116106667, - -153973.700355556, - -134088.239324444, - -110439.159084444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23090.164324, - -119372.259622222, - -192193.397026667, - -192013.744435556, - -196516.195915556, - -203927.671244444, - -193487.599053333, - -213194.286706667, - -219622.508457778, - -219376.621795555, - -218981.268866667, - -166353.024088889, - -132380.807031111, - -113280.483506667, - -86975.8859288889, - -72000.2452222222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5539.835292, - -52022.7598622222, - -57776.9180577778, - -58433.9834888889, - -66182.7836666667, - -113613.412288889, - -106482.406013333, - -104828.898804444, - -124988.088253333, - -150814.686848889, - -148963.35664, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7525.714448, - -24296.5915528889, - -40084.5081511111, - -55500.9278088889, - -63569.1754977778, - -87065.5656888889, - -91209.8842711111, - -69503.2793555556, - -28943.8201617778, - -12799.0601786667, - -3966.80541022222, - 0, - 0, - 0, - 0, - 0, - 0, - -60376.1657422222, - -123257.796413333, - -210793.155093333, - -297475.969911111, - -302880.2012, - -329142.303466667, - -336061.7124, - -337318.987466667, - -357441.249955555, - -369849.8808, - -358226.680533333, - -343672.769155556, - -330475.777022222, - -269133.941968889, - -244307.595075556, - -216666.886302222, - -185574.972124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -111190.007271111, - -196688.8148, - -281806.043742222, - -288327.462106667, - -320807.361066667, - -333796.272711111, - -335490.223733333, - -346099.397955556, - -353704.593288889, - -370043.307733333, - -364246.361155556, - -342383.256266667, - -287558.443511111, - -239057.812262222, - -205974.479884444, - -195091.284173333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -113458.377671111, - -196900.412142222, - -271198.041804444, - -296080.951422222, - -318389.5244, - -331850.280533333, - -354097.308577778, - -351588.619866667, - -347327.365911111, - -357007.504711111, - -365184.188711111, - -340006.449555555, - -277725.614662222, - -270250.249831111, - -230034.445822222, - -176784.304146667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -112215.170017778, - -203783.187186667, - -268007.083546667, - -277453.058528889, - -300582.523688889, - -324807.781733333, - -334836.675155555, - -362578.786533333, - -353156.550311111, - -358771.7928, - -367783.729466667, - -342096.046577778, - -267369.360808889, - -244544.689604444, - -213040.131302222, - -185223.579862222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -114703.929893333, - -193755.75912, - -270975.30776, - -285605.124555556, - -306792.700533333, - -318081.799733333, - -340657.067422222, - -336829.558711111, - -344472.853288889, - -318530.198533333, - -334974.418577778, - -336703.538133333, - -268332.39248, - -235011.379431111, - -202019.192168889, - -182228.686177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -100496.135497778, - -170495.584244444, - -189204.364764444, - -174478.713715556, - -204237.74048, - -224755.062826667, - -215672.496022222, - -223655.166946667, - -222577.544471111, - -219638.334297778, - -214212.415746667, - 0, - -4244.226524, - -8572.066236, - -4010.56092711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2620.31949733333, - -17762.659052, - -22344.9137955556, - -47292.8852, - -64604.0095911111, - -97797.5367066667, - -120155.345631111, - -121829.074746667, - -123623.842231111, - -120295.726693333, - -101416.378786667, - -95493.11856, - -54917.1301555556, - -34027.9005688889, - -23963.0473213333, - -7639.77772444444, - -4002.67731422222, - 0, - 0, - -19290.7904395556, - 0, - -122227.944528889, - -173705.885195555, - -258998.370662222, - -323987.182622222, - -333019.634266667, - -331911.825466667, - -346547.796755556, - -363079.938133333, - -366004.787822222, - -374788.129022222, - -372590.095688889, - -379231.087066667, - -329672.762177778, - -206535.417991111, - -230758.331466667, - -168310.152968889, - -161362.90228, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -77484.1918533333, - -168434.41512, - -254466.612071111, - -265955.292697778, - -303267.055066667, - -324409.205022222, - -346826.214311111, - -353865.7824, - -348086.420088889, - -364551.155111111, - -364510.125155556, - -271437.187831111, - -244666.607186667, - -235678.40928, - -209684.760151111, - -175734.523426667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -115490.825826667, - -199593.735653333, - -291757.566391111, - -294556.981644445, - -310116.126933333, - -318509.683555556, - -351559.312755556, - -347239.444577778, - -352494.2096, - -350093.9572, - -355627.139777778, - -346008.545911111, - -270678.133653333, - -231782.321928889, - -209130.855751111, - -182848.531577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -113887.726848889, - -210440.004404444, - -284569.70432, - -301414.845644445, - -322946.780177778, - -337178.313333333, - -347051.879066667, - -344367.347688889, - -349205.951733333, - -355252.008755556, - -364325.490355556, - -331841.4884, - -268021.737102222, - -248827.04468, - -223148.446995556, - -202850.34184, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -100601.934168889, - -188427.140177778, - -260682.650337778, - -270714.474471111, - -287684.464088889, - -298539.818044444, - -310787.259777778, - -323304.326933333, - -332234.203688889, - -342567.891066667, - -352250.960577778, - -292545.92768, - -233983.285973333, - -216843.901253333, - -189725.152128889, - -170202.806204444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -85960.3945288889, - -162440.231684444, - -176564.500813333, - -182577.733871111, - -195436.521942222, - -211794.872151111, - -204441.717973333, - -207877.097537778, - -214100.462582222, - -236985.213364444, - -229666.641577778, - -24677.0564693333, - -20906.5207822222, - -24716.8262191111, - -10472.2513991111, - -5053.77685422222, - -3915.63519422222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6409.14282177778, - -18757.9578524444, - -29705.6878222222, - -45869.7318844445, - -56495.0250177778, - -96723.7241555556, - -105257.66184, - -111248.914564445, - -113846.989964445, - -120285.176133333, - -93930.1703244445, - -87088.1321644444, - -50666.1336888889, - -29443.6822488889, - -7298.43780133333, - -7563.98953511111, - -3505.01326044444, - 0, - 0, - 0, - 0, - -134422.04732, - -169150.387844445, - -243996.353555556, - -293812.581022222, - -310221.632533333, - -316546.107111111, - -336073.435244444, - -328667.528266667, - -346497.974666667, - -345264.145288889, - -348048.320844444, - -370720.302, - -330868.492311111, - -279322.266075556, - -246268.826951111, - -226656.801266667, - -192843.428751111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -121138.013066667, - -200987.581857778, - -273425.089177778, - -287176.278782222, - -308217.026133333, - -322041.190444444, - -331401.881733333, - -350894.041333333, - -344264.7728, - -364035.349955556, - -368390.386666667, - -327146.4892, - -281413.035382222, - -246904.791262222, - -211012.079213333, - -192943.659071111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -110066.372631111, - -197034.931782222, - -274620.233168889, - -285231.458888889, - -309591.529644445, - -325742.678577778, - -336296.169288889, - -353297.224444445, - -366614.375733333, - -368548.645066667, - -372294.093866667, - -323993.044044444, - -276435.808702222, - -244941.507888889, - -228350.752288889, - -212317.124871111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -112219.273013333, - -197323.313755556, - -280219.063675556, - -297168.245244445, - -309670.658844444, - -326434.3264, - -352283.1984, - -358806.961333333, - -355961.240844444, - -364070.518488889, - -371142.3244, - -342670.465955556, - -285210.65084, - -254832.95096, - -228287.742, - -206701.29624, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -104689.690026667, - -201550.571462222, - -277750.818777778, - -304128.684133333, - -315807.567911111, - -331952.855422222, - -348540.680311111, - -339707.517022222, - -356986.989733333, - -352110.286444444, - -370283.626044444, - -322715.254, - -291270.775275556, - -261099.9836, - -217680.326204444, - -207707.116293333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -123890.830013333, - -197092.37372, - -212676.723124444, - -230995.132924444, - -252344.191084444, - -256691.021804444, - -253585.054168889, - -247259.407306667, - -261684.660466667, - -259548.465137778, - -256451.582706667, - -30729.9713555556, - -10074.6418226667, - -11336.3422631111, - -4157.36024666667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1804.02560084445, - -33814.5448, - -54723.4101511111, - -79554.1531111111, - -102433.042471111, - -107028.690564444, - -120306.863395556, - -111135.789115556, - -76173.2847733333, - -32786.4513422222, - -20028.3331977778, - -3430.54389111111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -123668.095968889, - -174758.010484444, - -242386.513942222, - -294565.773777778, - -298161.756311111, - -294498.367422222, - -311566.828933333, - -323981.3212, - -333649.737155556, - -332823.276622222, - -364346.005333333, - -361259.966533333, - -346093.536533333, - -291442.221875556, - -255189.911573333, - -228652.029391111, - -200261.058573333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -115489.360471111, - -210029.411777778, - -271135.324586667, - -287334.244111111, - -316765.910444444, - -337236.927555555, - -333321.497511111, - -345897.178888889, - -359481.024888889, - -353206.3724, - -357532.102, - -330660.411822222, - -270911.125186667, - -235277.194928889, - -202450.592844444, - -185604.572306667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -88124.7246844444, - -187382.341666667, - -243890.847955556, - -249671.675622222, - -252242.202337778, - -271341.060506667, - -271923.685875556, - -305573.524711111, - -317434.112577778, - -326698.0904, - -334247.602222222, - -302021.502844444, - -250154.070671111, - -219935.215333333, - -185747.297937778, - -168040.234475556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -104347.382968889, - -191717.156471111, - -255406.198053333, - -255294.53796, - -274262.686413333, - -286092.794884444, - -299043.900355556, - -327750.215688889, - -345149.847555556, - -342245.512844444, - -336952.648577778, - -317665.638755556, - -251441.238991111, - -205757.314191111, - -183180.288075556, - -162826.499408889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -23009.3646186667, - -114750.235128889, - -196257.121053333, - -204789.593382222, - -240155.363573333, - -245309.605204444, - -261407.415195556, - -283077.093151111, - -288423.003288889, - -302206.137644444, - -307891.7172, - -273251.004937778, - -215153.467084444, - -188469.049346667, - -159617.663813333, - -136766.030066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -37541.2370488889, - -124478.730662222, - -142542.461666667, - -160760.641146667, - -187882.907124444, - -209585.702115556, - -218905.65652, - -213862.195768889, - -206889.154822222, - -220224.47652, - -213899.122728889, - -19952.2812444445, - -17427.151244, - -22142.9291857778, - -9090.65556711111, - -4350.99232977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7772.27517377778, - -17812.1001484445, - -22307.7523786667, - -40931.7767333333, - -61520.6084311111, - -105122.556057778, - -111307.235715556, - -111349.731026667, - -115850.131008889, - -108744.62192, - -93060.6283377778, - -75527.9421866667, - -27677.1375124444, - -14019.2617497778, - -6958.70976933333, - 0, - 0, - 0, - 0, - 0, - 0, - -89744.5287155556, - -155012.930515556, - -217259.76916, - -285346.635835556, - -292606.886471111, - -300327.551822222, - -310236.286088889, - -316431.809377778, - -336858.865822222, - -331527.902311111, - -327269.579066667, - -333866.609777778, - -318263.503822222, - -258257.486893333, - -234713.912253333, - -208582.812773333, - -186181.922395556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -109261.306288889, - -191412.069444444, - -268313.049786667, - -295002.449733333, - -307962.054266667, - -315986.341288889, - -329236.086222222, - -337043.500622222, - -339616.664977778, - -338948.462844444, - -346093.536533333, - -317636.331644444, - -268170.324155556, - -234434.029342222, - -204713.981035556, - -174277.960004444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -61278.8247644444, - -154554.860368889, - -219315.663004444, - -233312.4462, - -261219.849684444, - -281008.89032, - -281864.071822222, - -291111.637662222, - -300263.076177778, - -304014.3864, - -316704.365511111, - -296435.567466667, - -235511.651817778, - -201952.665026667, - -167908.938617778, - -143504.614124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -70999.1143066667, - -157788.90008, - -220898.540075556, - -219222.17332, - -222587.508888889, - -241424.654555555, - -249293.90696, - -263118.071271111, - -256984.385986667, - -258750.139431111, - -253207.871648889, - -211445.824457778, - -167314.004262222, - -146437.376733333, - -128070.903271111, - -112490.949933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -30212.9939155555, - -125641.050688889, - -186602.47944, - -203003.031888889, - -217029.122195556, - -229695.069475556, - -243926.30956, - -253189.70124, - -264778.612186667, - -277032.794555556, - -259817.504417778, - -217762.386115556, - -168613.188497778, - -147062.204342222, - -126973.938102222, - -113723.313955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -22398.3406591111, - -104299.026235556, - -117561.666297778, - -119726.582595556, - -120597.883008889, - -131793.199453333, - -118326.581897778, - -123189.510844444, - -125930.898017778, - -123825.475155556, - -122271.612124444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6614.937356, - -13624.465656, - -35288.3994177778, - -46633.4752, - -44799.4361866667, - -36194.2822222222, - -21334.6097542222, - -3191.60301422222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8514.94667644444, - -11919.2020888889, - -25755.9391506667, - -44637.6609333333, - -53084.2634266667, - -70284.6069377778, - -76173.2847733333, - -85885.9544666667, - -98265.8643422222, - -93985.8538355555, - -74944.4376044445, - -34179.7114044445, - -21983.0588946667, - -7380.46840533333, - -3472.01345333333, - 0, - 0, - 0, - 0, - 0, - 0, - -125797.843733333, - -162012.054791111, - -234216.277506667, - -282656.829177778, - -297071.531777778, - -299029.2468, - -300283.591155556, - -322375.291511111, - -329177.472, - -331372.574622222, - -335847.770488889, - -316235.451733333, - -310945.518177778, - -248216.284484444, - -215078.733951111, - -190460.760617778, - -174872.308217778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -95474.9481511111, - -179611.854226667, - -272487.261622222, - -286243.726506667, - -299169.920933333, - -316856.762488889, - -348567.056711111, - -354639.490133333, - -358068.422133333, - -343171.617555555, - -345947.000977778, - -316144.599688889, - -270396.785386667, - -228049.768257778, - -202321.055413333, - -175575.092742222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -90708.4396, - -178193.390048889, - -264411.101013333, - -289749.150066667, - -293076.972533333, - -321768.634311111, - -333787.480577778, - -333790.411288889, - -348487.927511111, - -344270.634222222, - -369814.712266667, - -314858.017511111, - -262319.159422222, - -230816.359546667, - -195714.353355556, - -166809.042737778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -57897.0772133333, - -150819.669057778, - -238830.096008889, - -264536.242377778, - -286276.550471111, - -320775.123244444, - -325927.313377778, - -322762.145377778, - -324769.682488889, - -323937.360533333, - -332876.029422222, - -305060.650266667, - -242678.998911111, - -223975.786742222, - -188883.158826667, - -165867.112186667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -55418.8678977778, - -136430.170573333, - -178298.016435556, - -211233.934044444, - -220284.263026667, - -243224.404248889, - -226032.5598, - -219949.575817778, - -201273.03312, - -191576.189266667, - -176464.563564445, - -1474.64004835556, - -8050.45827244445, - -3631.26829511111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4456.17555155556, - -20460.5544724444, - -26795.6968386667, - -43305.0665911111, - -45983.7365466667, - -53688.8691288889, - -75098.88608, - -59770.0946844445, - -27613.6876168889, - -7244.42479555556, - -3372.63303955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -68657.4761288889, - -115558.232182222, - -191081.19216, - -267440.577088889, - -281334.199253333, - -306168.459066667, - -332656.226088889, - -325678.202933333, - -334625.663955556, - -339308.940311111, - -355858.665955556, - -352271.475555555, - -310831.220444444, - -225711.646933333, - -203365.853924444, - -173042.3722, - -148992.37068, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -65272.7978666667, - -136098.414075556, - -238233.989368889, - -241104.620902222, - -266003.942502222, - -291880.070115555, - -310561.595022222, - -316865.554622222, - -321358.334755556, - -325467.191733333, - -323371.733288889, - -282045.775911111, - -229133.545226667, - -190566.266217778, - -158023.943111111, - -137709.425973333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -18831.8117724444, - -104911.251786667, - -171882.103671111, - -162591.163306667, - -176409.173124444, - -197864.616097778, - -191332.647173333, - -218719.849435555, - -224195.883146667, - -240014.68944, - -236025.405475556, - -188367.939813333, - -139971.348808889, - -110713.473644444, - -78478.5821333333, - -59033.6069822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -168.485409493333, - -31562.00024, - -69478.6613822222, - -109839.535591111, - -142605.471955555, - -169863.722928889, - -177935.1944, - -203154.256582222, - -210366.736626667, - -225169.465377778, - -230225.235115556, - -191383.934617778, - -146808.111688889, - -112933.487311111, - -91882.7755422222, - -66923.3743644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2108.05757151111, - -36401.4834977778, - -113089.694213333, - -137884.389426667, - -178177.85728, - -208984.320195556, - -224341.246417778, - -249745.236471111, - -264762.493275555, - -287607.972528889, - -285241.423306667, - -247078.582431111, - -197942.279942222, - -169194.348511111, - -145229.337613333, - -122453.023142222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -53310.2212533333, - -136413.758591111, - -148898.880995555, - -149168.213346667, - -147009.451542222, - -167675.360942222, - -170744.98776, - -175733.058071111, - -186711.208822222, - -163701.316675556, - -164899.098306667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12625.4741595556, - -25424.0654244444, - -38299.7050844445, - -50727.3855511111, - -52215.6006533333, - -42215.7212711111, - -50527.2179822222, - -13084.1011413333, - -5692.34949822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4239.06847244445, - -43961.54588, - -115937.759271111, - -180460.588164444, - -193632.376182222, - -215197.13468, - -238052.578351111, - -241567.087115556, - -272222.91148, - -272695.04904, - -254250.325591111, - -274458.457915556, - -217121.146524445, - -164393.257568889, - -122731.147626667, - -92330.0020577778, - -72305.3322488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4158.03431022222, - -47813.6725644445, - -108807.632208889, - -135705.112644445, - -160573.075635556, - -197226.89336, - -209160.749004444, - -234969.177191111, - -238328.651337778, - -241137.444866667, - -248910.569946667, - -216783.528604444, - -159587.77056, - -124983.399115556, - -100441.038128889, - -81000.7521155556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4244.13860266667, - -42478.3129866667, - -125077.474942222, - -147276.439324445, - -178693.955506667, - -209508.917484444, - -213098.745524444, - -238680.922813333, - -236663.714355556, - -237617.953893333, - -246138.996448889, - -207704.478653333, - -157566.752177778, - -124068.138035556, - -100750.228151111, - -82122.6283288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9120.78327733333, - -72327.0195111111, - -156840.521964445, - -179678.088297778, - -204257.962386667, - -233897.416137778, - -234591.994671111, - -251987.230471111, - -252535.273448889, - -245891.35136, - -214565.566435555, - -173145.533231111, - -131186.835324444, - -105150.690884444, - -87869.4597466667, - -75486.9122311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3313.90158888889, - -43578.7950088889, - -126544.881995556, - -146824.523671111, - -179410.514373333, - -207266.044271111, - -213252.900928889, - -229727.600368889, - -251219.970302222, - -255941.345902222, - -253345.322, - -213691.335311111, - -157697.461893333, - -121851.641222222, - -99684.9146622222, - -71727.98216, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2786.12447844444, - -36368.9526044444, - -58702.4366266667, - -95848.0276755556, - -135418.489097778, - -158045.337302222, - -158569.055377778, - -171444.255431111, - -183201.389195556, - -185806.791373333, - -181057.867088889, - -17874.2605311111, - -12087.0146071111, - -7678.08211866667, - -2964.61943866667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3475.94060622222, - -9956.91515733333, - -28800.5670026667, - -41984.7812355556, - -46765.9433422222, - -58516.0434, - -68480.1681066667, - -80103.0753022222, - -76978.3511155556, - -41886.6024133333, - -23667.5144128889, - -11596.0032675556, - -3028.97785466667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -31232.5883111111, - -106162.37236, - -165932.760115556, - -243270.709484444, - -257300.023573333, - -271208.885435555, - -287540.273102222, - -294061.691466667, - -290295.727688889, - -304873.084755556, - -302009.78, - -316628.167022222, - -281965.767497778, - -227844.61848, - -188166.893031111, - -163406.194066667, - -145749.538835555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -49249.7210088889, - -139403.963137778, - -208977.872631111, - -219464.8362, - -238080.127035555, - -243792.669133333, - -267214.326191111, - -274930.302404444, - -277685.46392, - -296626.063688889, - -286700.624368889, - -261894.499382222, - -209764.182422222, - -175098.559115556, - -155345.273155556, - -140887.782173333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -85429.9358177778, - -164254.634933333, - -228501.683911111, - -222904.611831111, - -232595.887333333, - -247103.200404444, - -234525.7606, - -256178.440431111, - -256436.929151111, - -259087.757351111, - -274582.133924444, - -232182.657066667, - -181801.681568889, - -146427.119244444, - -133883.382617778, - -128625.979955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -38044.4401466667, - -135699.837364445, - -209576.32384, - -229328.144444444, - -239765.872066667, - -242874.184271111, - -234992.329808889, - -237348.328471111, - -196994.194897778, - -195666.875835556, - -187191.552373333, - -121840.211448889, - -75842.70056, - -51390.8985466667, - -34413.5821511111, - -24753.9290217778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -30702.4226711111, - -54978.0889466667, - -63116.9667733333, - -83408.3312933333, - -129501.969506667, - -133990.646644444, - -160467.863106667, - -175860.250933333, - -194440.373235556, - -193601.017573333, - -147028.794235556, - -109636.730382222, - -90463.7252222222, - -68435.9143688889, - -55155.3969688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2375.83078431111, - -29012.7504871111, - -30577.8674488889, - -31602.4440533333, - -30420.7813333333, - -37759.5750266667, - -28374.2950715556, - -24407.1086688889, - -23467.1416942222, - -21134.9697133333, - -21661.7943426667, - -181.930632857778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -32593.0244088889, - -108561.745546667, - -186219.142426667, - -211707.243888889, - -224505.659311111, - -251772.995488889, - -251440.652848889, - -276373.970697778, - -280582.764924444, - -285847.787435555, - -296995.333288889, - -248085.281697778, - -183935.239257778, - -155345.859297778, - -128603.120408889, - -101920.461097778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -31255.4478577778, - -51000.2347555556, - -77975.9651777778, - -126062.780017778, - -174417.168782222, - -152038.551808889, - -181607.668493333, - -181937.373493333, - -183590.880702222, - -188115.312515556, - -146243.656728889, - -96278.8422088889, - -64449.8541866667, - -28556.2922315556, - -13343.2639248889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -781.679267555556, - -13640.8776382222, - -45825.1850755556, - -39332.7807511111, - -35818.2719866667, - -54326.8849377778, - -71413.8099288889, - -128300.964093333, - -143727.055097778, - -170797.154417778, - -167830.39556, - -120551.870844444, - -80668.9956177778, - -59618.8699911111, - -29498.1934755556, - -24503.411836, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 72.8319810355556, - -32759.4888, - -36817.9375466667, - -30635.3093866667, - -44940.4033911111, - -81404.6041066667, - -119462.818595556, - -157580.52652, - -170987.943711111, - -187592.766724444, - -183252.090497778, - -134066.258991111, - -87216.20424, - -48660.9411466667, - -19896.6563475556, - -7984.400044, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2864.6352984, - -21574.4591515556, - -51948.3198, - -33723.9858266667, - -45348.94452, - -65259.9027377778, - -79076.7402711111, - -125009.775515556, - -141462.787693333, - -165055.305208889, - -165920.451128889, - -127300.126248889, - -82725.7686755556, - -50931.6561155555, - -25141.8379444444, - -9108.76736177778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2999.84658622222, - -17525.6817515556, - -19652.3815764444, - -13798.6964315556, - -28776.6524, - -40636.3610533333, - -44393.2396266667, - -50213.0457511111, - -60941.2068444444, - -77590.2835955556, - -92378.06572, - -3919.44511866667, - -5287.47175822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3374.68453733333, - -10327.1225848889, - -18755.5253622222, - -31229.6576, - -36299.7878222222, - -42502.0517466667, - -37973.8100088889, - -23639.2916648889, - -11343.9328048889, - -2482.93362186667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6108.89146844445, - -18822.8437964444, - -29517.82924, - -36640.6295244444, - -43583.7772177778, - -56359.9192355556, - -59068.7755155556, - -56106.1196533333, - -33530.5588933333, - -13631.0011417778, - -3298.48604844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -17009.6714462222, - -52549.1155777778, - -113742.363577778, - -201000.770057778, - -211859.933937778, - -233494.736431111, - -273507.735231111, - -296371.091822222, - -299334.040755556, - -317346.191244444, - -313562.6432, - -319939.870577778, - -274668.882973333, - -221928.39196, - -170914.382862222, - -144918.975306667, - -117111.216, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -19722.2790364444, - -80679.5461777778, - -169052.795164445, - -187906.645884444, - -220408.525177778, - -255611.347831111, - -271866.537008889, - -295401.026444444, - -301350.37, - -291658.801426667, - -262139.506831111, - -186542.106791111, - -135511.685711111, - -93505.2172133333, - -65993.4597288889, - -38543.83332, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -24677.9649897778, - -41936.1314311111, - -40524.4078888889, - -70290.1752888889, - -96098.3104044444, - -116449.461431111, - -149747.321862222, - -161341.80116, - -171501.111226667, - -176386.89972, - -142003.210822222, - -93065.9036177778, - -49457.8014977778, - -23648.7871688889, - -10769.8944195556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5626.99464044444, - -14090.2142657778, - -41678.2288533333, - -45072.2853911111, - -40857.3366711111, - -62537.8582577778, - -75652.2043377778, - -112647.156835556, - -140863.750342222, - -160462.001684444, - -177246.77036, - -135867.180968889, - -87816.7069466667, - -51495.2318622222, - -22560.7020546667, - -10624.677684, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2687.03420506667, - -16208.3857213333, - -5999.60525111111, - -12787.27872, - -32052.3082088889, - -44730.2714044444, - -48020.5807688889, - -52154.9349333333, - -61699.3818088889, - -76085.9495822222, - -86027.5078133333, - -1512.24693333333, - -2534.47310746667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4976.90430177778, - -11600.4286413333, - -17537.4339031111, - -24497.2866497778, - -28636.4764875556, - -21038.9010031111, - -11344.5482542222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1088.90864404445, - -48149.2389866667, - -110713.766715556, - -144337.229151111, - -186959.733124444, - -222816.397426667, - -235746.694848889, - -248504.666457778, - -254856.396648889, - -255827.927382222, - -256534.814902222, - -213225.645315556, - -153947.030884445, - -130347.186591111, - -103809.890551111, - -89334.5222311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3973.60466, - -48118.7595911111, - -134712.18772, - -160792.878968889, - -192193.397026667, - -230675.685413333, - -247764.954973333, - -263910.828626667, - -259263.306946667, - -268471.015115556, - -263784.514977778, - -221440.42856, - -171224.452097778, - -148018.788448889, - -130180.136057778, - -117984.567911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -25741.3149022222, - -111139.012897778, - -194589.546431111, - -204204.330373333, - -214433.684435556, - -234489.712853333, - -243949.755248889, - -258412.22844, - -271792.97616, - -273621.153751111, - -286539.142186667, - -236428.964395556, - -187644.933382222, - -165139.416617778, - -146575.120155556, - -134290.16532, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -33090.9522266667, - -113479.18572, - -193121.846306667, - -197643.933551111, - -200263.989284445, - -212455.747506667, - -207522.481493333, - -223756.27648, - -235741.126497778, - -230133.210786667, - -238356.200022222, - -197321.262257778, - -132410.993355555, - -101502.248622222, - -72394.4258666667, - -48484.5123377778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -29313.2656044444, - -37226.4786755555, - -32369.9972933333, - -45037.703, - -81455.0123377778, - -86484.6987466667, - -128269.898555556, - -132026.190986667, - -146515.040577778, - -141832.936506667, - -100174.050346667, - -52159.331, - -24141.6741635556, - -7873.67777822222, - -5063.65335066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5413.72679288889, - -12632.9474728889, - -11696.9955724445, - -11351.7578035556, - -16604.998856, - -34257.3752488889, - -38523.9044844444, - -42931.4009244445, - -49990.3117066667, - -66240.8117466667, - -73333.4257066667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4188.89469822222, - -14015.7742035556, - -17399.5439453333, - -23690.7842591111, - -25411.0530671111, - -23485.1948746667, - -14475.5734697778, - -1899.90967626667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1214.17016764445, - -41616.9769911111, - -72215.94556, - -72083.4774177778, - -105559.818155556, - -117731.354471111, - -110763.588804444, - -123192.441555556, - -130695.648142222, - -132194.120733333, - -127112.853808889, - -78398.57372, - -33876.3828044445, - -21000.1570022222, - -12816.820288, - -9659.828972, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -24989.8512662222, - -53197.3888755556, - -27971.7619004444, - -28471.9170586667, - -27672.8293671111, - -29601.3545066667, - -28784.6239342222, - -26464.9953968889, - -27390.7484226667, - -28618.2474644444, - -24108.4692066667, - -31137.9263422222, - -18698.6988737778, - -17147.5027897778, - -6098.42882977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12359.0139053333, - 16607.2848106667, - -26800.6497404444, - -29886.8057688889, - -46424.2224266667, - -41149.5285688889, - -37537.7201955556, - -38708.2462133333, - -44204.20876, - -53035.6136222222, - -59939.1967155555, - -45191.8584044444, - -36552.1220488889, - -14521.1753346667, - -3569.48890488889, - 3624.99657333333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2407.40333511111, - 44439.8379333333, - 30160.8272577778, - -4842.38466177778, - -32202.94676, - -46214.9696533333, - -43212.45612, - -55770.5532311111, - -67485.1916844445, - -105042.254573333, - -109381.758515556, - -70802.7566622222, - -24365.5218782222, - -8903.00213466667, - -4112.95997333333, - -6095.17574044444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2661.15602595556, - 7250.22760355556, - -43691.3343155556, - -33557.8145066667, - -19939.767108, - -23022.4648973333, - -42411.7858444444, - -92671.7229733333, - -118804.58088, - -133103.520391111, - -139231.637324445, - -82964.6216311111, - -45261.0231866667, - -26849.1823164444, - -17169.3952017778, - -9341.17275288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -15900.6610546667, - -12487.2618235556, - -8816.10655022222, - -9842.03128177778, - -9988.53753022222, - -16673.9584884444, - -17772.7993124444, - -8624.76042177778, - -7907.08788488889, - -8636.65910888889, - -651.473634311111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12188.3879044444, - 21551.1306911111, - -24874.4984768889, - -35069.1822266667, - -32432.7145111111, - -42689.9103288889, - -36594.0312177778, - -50754.6411644445, - -47822.4646977778, - -25986.9084933333, - -26051.178988, - -38567.8651511111, - -10239.4650155556, - -145.443279524444, - 6868.23871733333, - 11501.956748, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -6407.882616, - 37713.2697911111, - 12165.4111293333, - -120.776363315556, - -27610.8741342222, - -37044.4815155556, - -34725.7028844444, - -48920.8952222222, - -60039.1339644445, - -94924.2675333333, - -111131.393048889, - -72664.9305022222, - -25736.5378431111, - -11839.1936755556, - -5603.54895155556, - -25773.6699528889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1314.59391457778, - 20242.2751088889, - -26684.3005093333, - -27622.4504431111, - -36425.2222577778, - -23012.2074084444, - -43998.7659111111, - -80688.3383111111, - -120584.694808889, - -142415.268804444, - -162145.695217778, - -113301.584626667, - -68173.6157244445, - -47929.1425822222, - -23815.0757173333, - -14498.7260875555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -23498.9106026667, - -30784.4825822222, - -27171.6777671111, - -75171.2746444445, - -126849.38288, - -136613.046946667, - -179952.695928889, - -183191.717848889, - -187066.70408, - -183715.142853333, - -131066.676168889, - -84490.6429066667, - -58364.5256355555, - -37124.783, - -22241.6062288889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -22919.4504017778, - -33279.6900222222, - -45258.6786177778, - -103257.451506667, - -139707.87788, - -149239.136555556, - -164159.093751111, - -174986.019808889, - -177311.832146667, - -173722.004106667, - -133848.507155556, - -87684.5318755556, - -69254.4619822222, - -51042.4369955556, - -36065.6240044444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -15697.0352466667, - -17413.69928, - -18500.4655742222, - -18274.0681408889, - -21118.4405026667, - -16521.7080462222, - -13222.8116982222, - -12846.5083915556, - -14510.9471528889, - -34426.47728, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12091.9382017778, - -14338.5627253333, - -20078.3311293333, - -18449.764272, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -597.566134133333, - -21087.9318, - -47723.4066622222, - -77298.67784, - -115648.498084444, - -139636.954671111, - -140188.221431111, - -158967.045946667, - -163476.824204444, - -166680.38452, - -154744.184306667, - -92452.2127111111, - -44983.7779155556, - -21004.9340613333, - -8477.28703866667, - -3765.87585644444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -483.608363288889, - 1088.97018897778, - -31577.82608, - -28504.97548, - -47222.2550622222, - -59938.3175022222, - -76097.9654977778, - -119455.198746667, - -130175.44692, - -135026.946093333, - -126040.213542222, - -60685.6488355556, - -20187.1484328889, - -7747.30551511111, - -9985.81196888889, - -18691.4600173333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5615.41833155556, - 36579.3776622222, - -29886.2196266667, - -19199.2057173333, - -43802.9944088889, - -60027.7041911111, - -76471.9242355556, - -124128.510684445, - -141213.384177778, - -151136.772, - -150049.478177778, - -96115.0154577778, - -45090.1627288889, - -26463.7351911111, - -10776.4885195556, - -4371.39007911111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -1980.99659128889, - 5340.92792888889, - -25956.2825622222, - -29438.1138977778, - -18932.5403133333, - -35461.6044444444, - -35082.3704266667, - -87115.97392, - -99405.3248222222, - -113063.317813333, - -124865.291457778, - -69019.12588, - -34471.6102311111, - -23259.6473475555, - -8150.51274977778, - -4565.02216222222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -4478.74202711111, - 2053.0862232, - -6590.70037511111, - -9891.06207866667, - -27693.8718728889, - -42438.4553155555, - -46675.67744, - -50161.4652355556, - -57320.8994088889, - -65863.6292266667, - -55015.6020488889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7456.46174444445, - -12287.5631684445, - -14360.8068226667, - -13025.8092973333, - -8249.83454933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -22148.7026866667, - 20250.1587217778, - -2867.63341586667, - -24594.3518017778, - -11214.6005235556, - -35568.5754, - -21572.202504, - -23631.7597373333, - -26041.8300195555, - -26242.5544235556, - -27500.3570182222, - -20067.1065057778, - -9136.14020355555, - -26814.0430902222, - -9473.55297377778, - 6533.46358711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8863.49614888889, - 41993.2802977778, - 0, - -23922.1052871111, - -37395.8737777778, - -48563.3484666667, - -55495.0663866667, - -73353.0614711111, - -115348.100195556, - -121385.072013333, - -117149.022173333, - -57821.7579377778, - -16802.1184853333, - -6125.86028577778, - -5807.73159466667, - -24731.3332391111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3655.82765422222, - 39571.3406355556, - -21967.0865191111, - -17883.726728, - -44345.7621066667, - -58721.4862488889, - -74157.5416711111, - -119588.546102222, - -135447.796208889, - -141071.53776, - -132060.480306667, - -69048.4329911111, - -24706.1877377778, - -7135.84194888889, - -4217.61566711111, - -1873.73842604444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -3568.87345555556, - 768.074906577778, - -33505.3547777778, - -37662.2754177778, - -42206.9291377778, - -25946.4939871111, - -25450.2366746667, - -27776.8403044444, - -31209.1426222222, - -38253.69292, - -62631.0548711111, - -30136.2092844444, - -9994.83855911111, - -5340.10732977778, - -7142.67050577778, - -16037.9355631111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13230.4901613333, - 26480.0006377778, - -43435.4832355556, - -29968.5726088889, - -19585.3269062222, - -20637.8624946667, - -39129.9755422222, - -62032.01752, - -98871.0561866667, - -108096.348622222, - -107629.193271111, - -51347.2309511111, - -15854.7661186667, - -4370.12987333333, - -8652.98316977778, - -32930.9354, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 2823.74601697778, - 28674.575732, - 27883.4302675556, - 6589.58670488889, - -5122.50202977778, - -23630.2064604444, - -31655.1968533333, - -38467.6348311111, - -44336.6769022222, - -46787.0444622222, - -40042.5989822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -270.676375226667, - 57.7865894044444, - -14219.4000115556, - -18936.7019231111, - -23641.0793986667, - -26827.6122826667, - -11899.3025604444, - -30381.5098044444, - -30796.4984977778, - -26684.6521946667, - -19816.58932, - 16060.6485742222, - 7518.94450533333, - 20621.2160555556, - 29893.8394755556, - 36279.5659155555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 30700.6642444444, - 97398.0807822222, - 30332.5669288889, - 22511.7591791111, - 2594.70215151111, - -2285.53557497778, - -20929.2924075556, - -42813.5863377778, - -45704.4397777778, - -29523.10452, - -39551.9979422222, - 2310.23267751111, - -3378.553076, - 19042.1489088889, - 33206.1291733333, - 44225.30988, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 53672.4571466667, - 111845.314275556, - 35717.7485955556, - 9175.70480355556, - 4947.421348, - -3716.05376755556, - -10449.4211595556, - -39129.3894, - -21167.2661497778, - -26353.5111462222, - -37165.2268133333, - -29127.986048, - 0, - -6475.55273555556, - 15675.3186773333, - 29008.3837275556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 29671.6915733333, - 10261.1229706667, - -8959.71139466667, - -13829.8498906667, - -28296.338156, - -26299.2343764444, - -28020.7340831111, - -29577.9088177778, - -38930.1010444444, - -34534.9135911111, - -39692.9651466667, - -8473.00820044445, - -12931.7334706667, - 11100.4786328889, - 25615.177096, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14914.3302302222, - 81785.0104088889, - 51623.89008, - 19461.7974328889, - 6081.43070533333, - 9135.87643955556, - -7438.20341422222, - -22975.426984, - -28827.8812302222, - -26860.1724831111, - -23380.6271022222, - -100.321758186667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -481.937857955556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -1076.73447008889, - -27352.5026426667, - -22908.2257782222, - -39291.7507955556, - -95627.0520577778, - -113601.982515556, - -145072.83764, - -152635.537662222, - -160070.165608889, - -161685.573573333, - -113807.425364444, - -72497.2938266667, - -52253.4068266667, - -35533.6999377778, - -19847.0980226667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -18886.8798342222, - -42030.5003288889, - -20401.1782653333, - -15121.2677417778, - -34832.3807688889, - -39502.1758533333, - -83455.5157422222, - -91633.6650977778, - -96569.8618222222, - -89365.0016266667, - -37819.9476755556, - -6842.00885288889, - -3463.07478444445, - -8888.583036, - -25974.8925777778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2905.18168662222, - 38215.0075333333, - 7987.91689733333, - -13397.1597022222, - -27209.8063186667, - -26608.4243986667, - -20778.3607853333, - -19929.0993195556, - -18404.7485493333, - -18620.2437373333, - -21114.5133497778, - -18309.8521235556, - -9693.854528, - -19303.1580404445, - -13415.2714968889, - -2223.73566977778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -8140.43110355556, - 39755.0962222222, - 17005.7442933333, - 5619.90231955556, - -2260.34611297778, - -10098.7908822222, - -901.554144133333, - -17946.9714737778, - -22709.8459431111, - -22719.839668, - -21045.8467884444, - 14746.8107831111, - 20168.6263386667, - 9234.14318311111, - 21741.7734488889, - 31421.0330355556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 42876.3035555556, - 108029.82148, - 37853.9439244444, - 13984.2983662222, - 9877.9618, - -4001.47572266667, - -14528.12112, - -40716.3694666667, - -44801.7807555556, - -20369.0576715556, - -17720.8964186667, - -12528.3210862222, - -6713.37994222222, - 7250.98958844445, - 25233.3054382222, - 36532.4862844444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48481.2885555555, - 109591.597431111, - 83941.7207155556, - 58593.1211022222, - 39927.7151066667, - 23956.3946071111, - 29062.8656471111, - 29697.4818311111, - 12803.1631742222, - 10702.0777644444, - 16986.6360568889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 23436.3692275556, - 101629.148413333, - 148742.381022222, - 67144.3499822222, - 31942.1134711111, - 2197.50287462222, - 0, - -15527.0833093333, - -38940.3585333333, - -24047.7155653333, - -31560.2418133333, - -27083.3461342222, - -24681.2473862222, - -6528.83306355556, - 8937.08630488889, - 26813.0173413333, - 37089.3213955555, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 38477.0131066667, - 102320.210093333, - 25617.6682004444, - 11518.5445728889, - -320.062960444444, - -25100.1925395556, - -32350.6546, - -39675.6739511111, - -44564.1000844444, - -40762.3816311111, - -36485.5949066667, - -18570.6854124445, - -3054.32850577778, - -19845.3982102222, - -7314.41017688889, - 153.318393351111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -2376.08575617778, - 23050.5411097778, - 12945.7129626667, - -7557.65919911111, - -20419.4365955556, - -21591.6038115556, - -38242.2631466667, - -34660.0549555556, - -19026.9971324444, - -18959.8545408889, - -22565.4204995556, - -30673.9947733333, - -24277.3953951111, - -7509.77137955556, - 1839.27619408889, - 6698.52123688889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5224.28562666667, - 58564.9862755556, - 35495.8937644444, - -1655.71989577778, - -4975.87855288889, - -30088.4386933333, - -45219.4070888889, - -41187.3347422222, - -42826.1883955556, - -50383.6131377778, - -47863.4946533333, - -27620.9264733333, - -4211.08018133333, - -16034.0377173333, - -14587.1749488889, - 4860.17407822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6317.76324933333, - 51304.4425688889, - 27619.0215111111, - -4403.95027955556, - -6104.96431555556, - -31418.6884666667, - -44785.9549155556, - -39232.8435022222, - -41628.4067644444, - -46920.3918177778, - -40876.0932222222, - -43217.4383288889, - -5062.97928711111, - -11109.8862155556, - 8802.91835022222, - 25675.9893515556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 17669.3159031111, - 84128.1139422222, - 59027.1594177778, - 29730.3057955556, - 10059.0504395556, - 4786.43738666667, - -5851.04750488889, - -14845.5171333333, - -24647.2511373333, - -26459.7201168889, - -16966.2676146667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -7936.04331066667, - -8369.26102711111, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -13606.9693106667, - 38096.3137333333, - 18734.0432497778, - -18870.4971591111, - -13746.7642306667, - -40696.7337022222, - -49684.6385377778, - -99798.6262533333, - -112439.076346667, - -142072.375604444, - -138252.486742222, - -77831.7741911111, - -28477.4267955556, - -16417.99018, - -2494.91436888889, - -1910.30197786667, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -11038.1717146667, - -46561.3797066667, - -24760.7868857778, - -28510.8955164444, - -86800.9224755556, - -120247.956102222, - -164354.865253333, - -164341.677053333, - -160511.530702222, - -159084.274391111, - -99789.2479777778, - -61130.5307822222, - -43087.0216844444, - -24543.0350502222, - -17196.9731933333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -778.1565528, - -19905.214024, - -53630.2549066667, - -88953.8228577778, - -133233.643964444, - -141618.701524444, - -142930.780888889, - -150570.265542222, - -148036.958857778, - -144477.903284444, - -141595.841977778, - -82222.8586488889, - -41170.6296888889, - -24629.6082564444, - -7616.53718533333, - -3630.24254622222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -5148.17505911111, - 11311.9587466667, - -32257.1649155556, - -40792.5679555556, - -31288.2718222222, - -24670.1399911111, - -33017.3913777778, - -32626.1414444444, - -32031.7932311111, - -43884.7612488889, - -40115.5736888889, - -26358.3761266667, - -9408.78425822222, - -18226.7957706667, - -11019.4151635556, - -857.754666577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -9354.88848088889, - 39109.1674933333, - 28895.6978853333, - -2744.71353044445, - -8712.94551911111, - -18400.3817897778, - -39187.1244088889, - -43785.1170711111, - -22641.6482955555, - -23809.8297444444, - -23378.194612, - -29349.6064222222, - 0, - 11417.4936537778, - 19459.3063284444, - 16220.8998577778, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5979.17819466667, - 50191.0654177778, - 44647.33228, - 28346.453316, - 16952.5518866667, - 9022.80960488889, - 11554.7388551111, - 3305.93005466667, - -344.288218488889, - 328.309981511111, - -3054.79741955555, - -217.35736184, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 20973.0772315556, - 92140.3850488889, - 149047.468048889, - 67067.8584222222, - 39552.8771555556, - 6897.92682088889, - -2339.17638044444, - 6671.08978088889, - -25310.0607622222, - -33598.25832, - -38766.5673644444, - -36206.88428, - 0, - 1197.61751128889, - 15578.165604, - 33707.8669155555, - 44548.5673155556, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 47254.7859555556, - 109941.231266667, - 34553.084, - 8150.835128, - 7671.42940444444, - -13771.7925035556, - -27705.5947173333, - -24327.8329333333, - -30963.25596, - -46981.9367511111, - -44144.1291822222, - -25807.0507524444, - -16401.109284, - -12831.4738435556, - 6574.52284977778, - 23918.7642764444, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 14380.4425871111, - 74172.4882977778, - 40339.4800177778, - 11365.1804604444, - -6702.30185422222, - -13663.6785706667, - -26282.2069448889, - -24631.1029191111, - -24929.9475311111, - -30465.3281422222, - -29012.2522662222, - -14967.6105582222, - -21474.3753671111, - -7618.85244711111, - -5669.98817244444, - 11288.9233573333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11120.6126182222, - 76817.4550755556, - 50630.6720844444, - 11615.1408111111, - 19441.4876048889, - 8770.09438577778, - 13155.7277208889, - -5481.33829822222, - -11460.8388711111, - -14292.6970964444, - -10607.0641102222, - 20729.1541457778, - 15974.1339822222, - 27234.3949848889, - 34257.0821777778, - 39180.0907022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7254.97535555556, - 66132.9615777778, - 43034.2688844444, - 23440.9118297778, - 10673.0637244444, - -973.157278, - -2146.8807016, - -26067.4737417778, - -30182.51452, - -29877.7205644444, - -37012.5367644444, - 0, - 10681.6214008889, - 5653.69341866667, - 16174.7411577778, - 23593.7484142222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 48121.6903022222, - 39818.6926533333, - 27173.4068866667, - 20271.9045982222, - 8953.61551555556, - 11266.1224248889, - 3444.02516222222, - 2798.84376466667, - 6142.21365377778, - 8322.57479911111, - -150.739367573333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 11525.1093657778, - 60229.3371155556, - 112483.037013333, - 49611.37076, - 25463.0145751111, - -719.647836177778, - 3686.57081377778, - -8337.93172533333, - -33542.86788, - -30704.76724, - -20687.8897333333, - -31062.3139955556, - -5298.28608222222, - 1531.89442062222, - 16252.4636164444, - 34206.0878044444, - 43642.9775822222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 36461.8561466667, - 96058.7458044444, - 29876.8413511111, - 20499.2398591111, - 2563.98243764444, - -21246.981492, - -28307.416244, - -31195.0752088889, - -45564.3517866667, - -42909.7136622222, - -36861.019, - -20486.7843368889, - -5884.13523333333, - -19734.0018808889, - -13262.581448, - 9840.82969022222, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 8322.545492, - 71167.3371244444, - 35873.9554977778, - 14789.6870866667, - -3574.96933466667, - -16252.9325302222, - -12563.07932, - -18959.8545408889, - -2224.51230822222, - -1919.73593693333, - -17072.9454991111, - -30390.88808, - -3970.46879911111, - -3283.598036, - 10150.2834764444, - 20394.4669368889, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 10593.2604608889, - 52404.63152, - 35691.3721955556, - 14469.3603622222, - 0, - -20827.5381177778, - -23855.9591373333, - -14165.2111631111, - -11747.5503391111, - -12604.0506613333, - -15097.9978955556, - -14427.8321857778, - -5895.94599911111, - -16316.1479688889, - -6108.18809777778, - 5555.133604, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - -12618.6162955556, - 34125.78632, - 27918.4229582222, - 15448.0127235556, - 8667.78326088889, - -639.012250666667, - 3682.17474711111, - 6657.57920266667, - 10344.7947728889, - 13405.4243075556, - 18355.4246813333, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - } - } - } - } -} From c670076a657451ee9b7ce5b50f9499be871fbcf9 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 15:30:33 -0600 Subject: [PATCH 45/58] Replace Gfunction input with csv file --- tests/model_connectors/data/Gfunction.csv | 58 ++++++++++++++++++ .../model_connectors/data/SampleGFunction.mat | Bin 1242 -> 0 bytes 2 files changed, 58 insertions(+) create mode 100644 tests/model_connectors/data/Gfunction.csv delete mode 100644 tests/model_connectors/data/SampleGFunction.mat diff --git a/tests/model_connectors/data/Gfunction.csv b/tests/model_connectors/data/Gfunction.csv new file mode 100644 index 000000000..ade3d5a96 --- /dev/null +++ b/tests/model_connectors/data/Gfunction.csv @@ -0,0 +1,58 @@ +ln(t/ts),H:91.93 +-48.91979309319371,-1.822663364108207 +-47.5294629144498,-1.8162256957364589 +-46.13913273570589,-1.809788027364711 +-44.748802556961984,-1.8033503589929627 +-43.358472378218075,-1.7969126906212147 +-41.968142199474165,-1.7904750222494665 +-40.577812020730256,-1.7840373538777183 +-39.18748184198635,-1.7775996855059704 +-37.79715166324244,-1.7711620171342222 +-36.40682148449853,-1.764724348762474 +-35.01649130575462,-1.758286680390726 +-33.62616112701071,-1.7518490120189778 +-32.23583094826681,-1.7454113436472298 +-30.845500769522896,-1.7389736752754816 +-29.455170590778987,-1.7325360069037334 +-28.06484041203508,-1.7260983385319855 +-26.67451023329117,-1.7196606701602373 +-25.28418005454726,-1.7132230017884893 +-23.89384987580335,-1.706785333416741 +-22.503519697059442,-1.700347665044993 +-21.113189518315533,-1.693909996673245 +-19.722859339571624,-1.6874723283014967 +-18.332529160827715,-1.6810346599297485 +-16.942198982083806,-1.6745969915580006 +-15.5518688033399,-1.4885153990472844 +-14.161538624595991,-0.9616800791950322 +-12.771208445852082,-0.1373890752849003 +-11.380878267108173,0.7309045226911854 +-9.990548088364264,1.4989474930073818 +-8.600217909620355,2.21722778837189 +-8.5,2.333668799654772 +-7.8,2.680028116277204 +-7.2,2.976579525355174 +-6.5,3.3214979060006318 +-5.9,3.6183780569291937 +-5.2,3.985646165293046 +-4.5,4.412741731362534 +-3.963,4.78967983323376 +-3.27,5.31964109001558 +-2.864,5.639933817910789 +-2.577,5.865880520772372 +-2.171,6.179506729029434 +-1.884,6.394511116374665 +-1.191,6.876431928932908 +-0.497,7.287549994326967 +-0.274,7.400576450933945 +-0.051,7.5026878612451275 +0.196,7.602592987479888 +0.419,7.680573087757184 +0.642,7.747331143270593 +0.873,7.8050691854404395 +1.112,7.85358553376416 +1.335,7.889798403899954 +1.679,7.931270827487374 +2.028,7.9595647196376795 +2.275,7.973416909236491 +3.003,7.995749059734852 diff --git a/tests/model_connectors/data/SampleGFunction.mat b/tests/model_connectors/data/SampleGFunction.mat deleted file mode 100644 index 190de8ccc10722132086a165895604b8def87567..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1242 zcmV<01SR_b0000?0000200000000060000~Q*>o;0000000000000000002+Kj!X# zpqP3BK-h2}b~YLiKoc`b2Zt9KK=}GwCHHP3Ks1ro)i5P0Kstn(fs-FHKxsh)uQRU@R0#U|OKwh6}+wLY>KqN(Y)E2|LMoK#=5ZLRss8Kvd#SZ+9_QK-sSaLcw96KridI-#mAvKmY&$001DYK;XC%%d}d-Kr$zy z15-iJK<&MsFNk5=K%MhNyqDYMKqT~68l>#-K-*Y(+6}t-Kvr>PR5?=vL7`pg%iYfm zL6j0PYQtU?LHXqT<3gApK{N?v$CyngL9|lsXHh9JK|8aEVlzNFL9Zg*L5Hct0n6Z{K}XSu-cm2EK?Yb1UZiZbLDdGi zN^x|*LAf4si!>Lnt+K?*EwrB%}ELApJ=AbPO# zK~_B`0Z8clL5@Y=32-}lLZ$DLE8yN1LNsG}Df-DELK1%@f+?mbLa|uu zD>4`|LibT|8rqOLLU)VwXlH;!LUUd#%(9_OLLjpyN1p^$LjDD&HLKfRLhL}JWCy2a zLZP!v0sEkELXQ5#LI3~&000000Nk^}$>FP%K4cUV1E_$cKCSED&cL#+KJcG4 z8*rYqJ`AC0uz5MUKJW7q4+AK`KIKF&ZS;Y|K0&ol=;k`dKEZejJ&K6MP#%(C6_KHJJ2x;riOK5Q5HeILE{ zK2bu?TF8+3K7w;Sq9?5UKJ_Tat6vEKKasLT(<9pkKa&2ny5yw{Kaht9Vf+gbKV@6b z*W9)fKb`#U&bVL}KeuW?FNzNtKRhDd>AS@nKe`UgGu4A0Kh(r{p>?2KQf3}>v{buKLh$9HK8XKk~&&jbuJGKTpP5N~e4`KQxK()A8In zKZ~uCx4Ke1KmXh)M-$UNKX&^g_EoAtKg!`8?$_r*KW$YAX}2CjKkAS^h6GGRKS_=l z6$))dKf$c%ge!kWKaA>WP|bfwKZjSSe?@FaKPOo%v&lh8Klh$tt7!d6KiY*w?ogac zKN;aDf4dw@KNDMIcLsk;KMNqlZy3f)KNe4E)xq{lKalaE(SsIDKl%Oagm5ZMKNX98 z+K)C&KQE>C0mVH`KfmDq()&S7KVu-(7HdRIKX=(p8_-2eKM2v3bel#@KW0^*#STYI EKUVl7IRF3v From 4ec2e13aa17f50969b9ec1441056f652337076f3 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 15:31:24 -0600 Subject: [PATCH 46/58] Point to the right sys_param file --- tests/model_connectors/test_borefield.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/model_connectors/test_borefield.py b/tests/model_connectors/test_borefield.py index ddcde7ec6..796e5d762 100644 --- a/tests/model_connectors/test_borefield.py +++ b/tests/model_connectors/test_borefield.py @@ -36,7 +36,7 @@ def setUp(self): self.data_dir, self.output_dir = self.set_up(os.path.dirname(__file__), project_name) # load system parameter data - filename = os.path.join(self.data_dir, "system_params_ghe_2.json") + filename = os.path.join(self.data_dir, "system_params_ghe.json") sys_params = SystemParameters(filename) # Create the time series load, ets and their coupling From bff713eb35064f8562ad9948064b8230cbdce2c6 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 15:32:05 -0600 Subject: [PATCH 47/58] Updated template to reflect schema changes --- .../model_connectors/plants/borefield.py | 63 ++++++++++++------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 58fdbb447..5e3f9528e 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -3,6 +3,9 @@ import os from pathlib import Path +import pandas as pd +import scipy.io as sio +import math from geojson_modelica_translator.model_connectors.plants.plant_base import ( PlantBase @@ -30,71 +33,87 @@ def to_modelica(self, scaffold): template_data = { "gfunction": { - "gfunction_file_path": self.system_parameters.get_param( - "$.ghe_parameters.placeholder.gfunction_file_path" - ), - "gfunction_file_rows": self.system_parameters.get_param( - "$.ghe_parameters.placeholder.gfunction_file_rows" - ), + "input_path": self.system_parameters.get_param( + "$.district_system.fifth_generation.ghe_parameters.ghe_dir" + ) }, "soil": { "initial_ground_temperature": self.system_parameters.get_param( - "$.ghe_parameters.soil.undisturbed_temp" + "$.district_system.fifth_generation.ghe_parameters.soil.undisturbed_temp" ), "conductivity": self.system_parameters.get_param( - "$.ghe_parameters.soil.conductivity" + "$.district_system.fifth_generation.ghe_parameters.soil.conductivity" ), "volumetric_heat_capacity": self.system_parameters.get_param( - "$.ghe_parameters.soil.rho_cp" + "$.district_system.fifth_generation.ghe_parameters.soil.rho_cp" ), }, "fill": { "conductivity": self.system_parameters.get_param( - "$.ghe_parameters.grout.conductivity" + "$.district_system.fifth_generation.ghe_parameters.grout.conductivity" ), "volumetric_heat_capacity": self.system_parameters.get_param( - "$.ghe_parameters.grout.rho_cp" + "$.district_system.fifth_generation.ghe_parameters.grout.rho_cp" ), }, "configuration": { "borehole_configuration": self.system_parameters.get_param( - "$.ghe_parameters.pipe.arrangement" + "$.district_system.fifth_generation.ghe_parameters.pipe.arrangement" ), "nominal_mass_flow_per_borehole": self.system_parameters.get_param( - "$.ghe_parameters.design.flow_rate" + "$.district_system.fifth_generation.ghe_parameters.design.flow_rate" ), "flow_type": self.system_parameters.get_param( - "$.ghe_parameters.design.flow_type" + "$.district_system.fifth_generation.ghe_parameters.design.flow_type" ), "borehole_height": self.system_parameters.get_param( - "$.ghe_parameters.borehole.length" + "$.district_system.fifth_generation.ghe_parameters.borehole.length" ), "borehole_diameter": self.system_parameters.get_param( - "$.ghe_parameters.borehole.diameter" + "$.district_system.fifth_generation.ghe_parameters.borehole.diameter" ), "borehole_buried_depth": self.system_parameters.get_param( - "$.ghe_parameters.borehole.buried_depth" + "$.district_system.fifth_generation.ghe_parameters.borehole.buried_depth" ), "number_of_boreholes": self.system_parameters.get_param( - "$.ghe_parameters.design.number_of_boreholes" + "$.district_system.fifth_generation.ghe_parameters.borehole.number_of_boreholes" ), }, "tube": { "outer_diameter": self.system_parameters.get_param( - "$.ghe_parameters.pipe.outer_diameter" + "$.district_system.fifth_generation.ghe_parameters.pipe.outer_diameter" ), "inner_diameter": self.system_parameters.get_param( - "$.ghe_parameters.pipe.inner_diameter" + "$.district_system.fifth_generation.ghe_parameters.pipe.inner_diameter" ), "conductivity": self.system_parameters.get_param( - "$.ghe_parameters.pipe.conductivity" + "$.district_system.fifth_generation.ghe_parameters.pipe.conductivity" ), "shank_spacing": self.system_parameters.get_param( - "$.ghe_parameters.pipe.shank_spacing" + "$.district_system.fifth_generation.ghe_parameters.pipe.shank_spacing" ), }, } + # process g-function file + gfunction = pd.read_csv(os.path.join(template_data["gfunction"]["input_path"], "Gfunction.csv"), header=0) + template_data["gfunction"]["gfunction_file_rows"] = gfunction.shape[0]+1 + + # convert the values to match Modelica gfunctions + for i in range(len(gfunction)): + gfunction[gfunction.columns[0]].iloc[i] = math.exp(gfunction[gfunction.columns[0]].iloc[i])*template_data["configuration"]["borehole_height"]**2/(9*template_data["soil"]["conductivity"]/template_data["soil"]["volumetric_heat_capacity"]) + gfunction[gfunction.columns[1]].iloc[i] = gfunction[gfunction.columns[1]].iloc[i]/(template_data["configuration"]["number_of_boreholes"]*2*math.pi*template_data["configuration"]["borehole_height"]*template_data["soil"]["conductivity"]) + + # add zeros to the first row + new_row = pd.Series({gfunction.columns[0]: 0, gfunction.columns[1]: 0}) + gfunction = pd.concat([gfunction.iloc[:0], pd.DataFrame([new_row]), gfunction.iloc[0:]]).reset_index(drop=True) + + # add to dict and save MAT file to the borefield's resources folder + data_dict = {'TStep': gfunction.values} + gfunction_path = os.path.join(scaffold.plants_path.resources_dir,'Gfunction.mat') + sio.savemat(gfunction_path, data_dict) + template_data["gfunction"]["gfunction_file_path"] = gfunction_path + # process nominal mass flow rate if template_data["configuration"]["flow_type"] == "system": template_data["configuration"]["nominal_mass_flow_per_borehole"] = template_data["configuration"]["nominal_mass_flow_per_borehole"] / template_data["configuration"]["number_of_boreholes"] From 01a60c490f2b1f383ee5e127064511a35d88b880 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 15:33:24 -0600 Subject: [PATCH 48/58] Changes for the test to run --- tests/model_connectors/data/system_params_ghe.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/model_connectors/data/system_params_ghe.json b/tests/model_connectors/data/system_params_ghe.json index f8f87e2da..13b0444a3 100644 --- a/tests/model_connectors/data/system_params_ghe.json +++ b/tests/model_connectors/data/system_params_ghe.json @@ -42,7 +42,7 @@ "fifth_generation": { "ghe_parameters": { "version": "1.0", - "ghe_dir": "C:/urbanopt-ghe/baseline_scenario/ghe", + "ghe_dir": "D:/GitHub/geojson-modelica-translator/tests/model_connectors/data", "fluid": { "fluid_name": "Water", "concentration_percent": 0.0, @@ -68,7 +68,9 @@ }, "borehole": { "buried_depth": 2.0, - "diameter": 0.15 + "diameter": 0.15, + "length": 150, + "number_of_boreholes": 4 }, "simulation": { "num_months": 240 From b2c8b22934fca79f5451419e8573d076f4d90453 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 16:22:45 -0600 Subject: [PATCH 49/58] Fix backslashes --- .../model_connectors/plants/borefield.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 5e3f9528e..b8fa45557 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -112,7 +112,7 @@ def to_modelica(self, scaffold): data_dict = {'TStep': gfunction.values} gfunction_path = os.path.join(scaffold.plants_path.resources_dir,'Gfunction.mat') sio.savemat(gfunction_path, data_dict) - template_data["gfunction"]["gfunction_file_path"] = gfunction_path + template_data["gfunction"]["gfunction_file_path"] = gfunction_path.replace('\\', '/') # process nominal mass flow rate if template_data["configuration"]["flow_type"] == "system": From 13019c1ad28d8ec32ba708b2e2c508f2180b1000 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 16:23:34 -0600 Subject: [PATCH 50/58] Change to adapt to recent commits --- .../NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt index e8a197c79..e1dab6faa 100644 --- a/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt +++ b/geojson_modelica_translator/model_connectors/couplings/5G_templates/NetworkAmbientWaterStub_Borefield/ConnectStatements.mopt @@ -1,5 +1,5 @@ // Borefield ambient coupling connections - connect(supHeaWat.ports[1], {{ coupling.plant.id }}.port_a) + connect(supHeaWat_{{ sys_params.num_buildings }}.ports[1], {{ coupling.plant.id }}.port_a) {% raw %}annotation (Line(points={{-70,10},{-10,10}}, color={0,127,255})); {% endraw %}connect({{ coupling.plant.id }}.port_b, sinHeaWat.ports[1]) {% raw %}annotation (Line(points={{10,10},{60,10}}, color={0,127,255})); From e513754c5f5a7e8607de5a12476e8b1b0fd5ef81 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 24 May 2023 16:24:07 -0600 Subject: [PATCH 51/58] Temporary fixes to make the test pass --- geojson_modelica_translator/model_connectors/model_base.py | 4 ++-- .../networks/templates/NetworkAmbientWaterStub_Instance.mopt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/model_base.py b/geojson_modelica_translator/model_connectors/model_base.py index b1153dea3..b3c5a38e2 100644 --- a/geojson_modelica_translator/model_connectors/model_base.py +++ b/geojson_modelica_translator/model_connectors/model_base.py @@ -59,8 +59,8 @@ def __init__(self, system_parameters, template_dir): district_params = self.system_parameters.get_param("district_system") if 'fifth_generation' in district_params: self.district_template_data = { - "temp_setpoint_hhw": district_params['fifth_generation']['central_heating_plant_parameters']['temp_setpoint_hhw'], - "temp_setpoint_chw": district_params['fifth_generation']['central_cooling_plant_parameters']['temp_setpoint_chw'], + # "temp_setpoint_hhw": district_params['fifth_generation']['central_heating_plant_parameters']['temp_setpoint_hhw'], + # "temp_setpoint_chw": district_params['fifth_generation']['central_cooling_plant_parameters']['temp_setpoint_chw'], } elif 'fourth_generation' in district_params: self.district_template_data = { diff --git a/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt b/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt index 4a261e2bb..1f86eaef4 100644 --- a/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt +++ b/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt @@ -5,7 +5,7 @@ redeclare package Medium={{ globals.medium_w }}, use_m_flow_in=true, use_T_in=false, - T={{ sys_params.district_system.fifth_generation.central_heating_plant_parameters.temp_setpoint_hhw }}+273.15, + T={{ sys_params.district_system.fifth_generation.ghe_parameters.soil.undisturbed_temp}}+273.15, nPorts=1) "Heating water supply temperature (district side)." annotation (Placement({{ diagram.transformation.sup_hea_wat.boundary_pt }})); From 9816f52137c1ff1cfdbb0e4818fd2173b0725b26 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Tue, 30 May 2023 11:36:38 -0600 Subject: [PATCH 52/58] Change ghe_dir to relative path --- tests/model_connectors/data/system_params_ghe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/model_connectors/data/system_params_ghe.json b/tests/model_connectors/data/system_params_ghe.json index 13b0444a3..69ef010c6 100644 --- a/tests/model_connectors/data/system_params_ghe.json +++ b/tests/model_connectors/data/system_params_ghe.json @@ -42,7 +42,7 @@ "fifth_generation": { "ghe_parameters": { "version": "1.0", - "ghe_dir": "D:/GitHub/geojson-modelica-translator/tests/model_connectors/data", + "ghe_dir": "tests/model_connectors/data", "fluid": { "fluid_name": "Water", "concentration_percent": 0.0, From dcada957d684ae2a2e5e6f07275a68ecac8685f1 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Tue, 30 May 2023 11:37:28 -0600 Subject: [PATCH 53/58] Use pathlib to handle ghe_dir --- .../model_connectors/plants/borefield.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index b8fa45557..cbbe60e6d 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -96,7 +96,7 @@ def to_modelica(self, scaffold): } # process g-function file - gfunction = pd.read_csv(os.path.join(template_data["gfunction"]["input_path"], "Gfunction.csv"), header=0) + gfunction = pd.read_csv((Path(template_data["gfunction"]["input_path"]) / "Gfunction.csv").resolve(), header=0) template_data["gfunction"]["gfunction_file_rows"] = gfunction.shape[0]+1 # convert the values to match Modelica gfunctions From cbde3f7116eef4734f20f8a448eecb3d0b6357b5 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 31 May 2023 14:50:07 -0600 Subject: [PATCH 54/58] Add if statement to avoid breaking other 5G tests --- .../networks/templates/NetworkAmbientWaterStub_Instance.mopt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt b/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt index 1f86eaef4..a5136cbe4 100644 --- a/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt +++ b/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt @@ -5,7 +5,11 @@ redeclare package Medium={{ globals.medium_w }}, use_m_flow_in=true, use_T_in=false, + {% if sys_params.district_system['fifth_generation']['ghe_parameters'] %} T={{ sys_params.district_system.fifth_generation.ghe_parameters.soil.undisturbed_temp}}+273.15, + {% else %} + T={{ sys_params.district_system.fifth_generation.central_heating_plant_parameters.temp_setpoint_hhw }}+273.15, + {% endif %} nPorts=1) "Heating water supply temperature (district side)." annotation (Placement({{ diagram.transformation.sup_hea_wat.boundary_pt }})); From 88a9188956051ab117c19af1ea57cbfcf577531a Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 31 May 2023 14:50:24 -0600 Subject: [PATCH 55/58] Change due to schema change --- .../model_connectors/districts/district.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/districts/district.py b/geojson_modelica_translator/model_connectors/districts/district.py index 51f781778..0cc672049 100644 --- a/geojson_modelica_translator/model_connectors/districts/district.py +++ b/geojson_modelica_translator/model_connectors/districts/district.py @@ -74,7 +74,7 @@ def to_modelica(self): "diagram": diagram, "couplings": [], "models": [], - "is_ghe_district": self.system_parameters.get_param('$.ghe_parameters') + "is_ghe_district": self.system_parameters.get_param('$.district_system.fifth_generation.ghe_parameters') } common_template_params = { 'globals': { From f9963be1218a52bf7a7251dccd398254e4e4bb64 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 31 May 2023 14:56:23 -0600 Subject: [PATCH 56/58] Pre-commit changes --- .../model_connectors/plants/borefield.py | 15 ++++++++------- .../model_connectors/data/system_params_ghe.json | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index cbbe60e6d..8e6ff1c89 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -1,11 +1,12 @@ # :copyright (c) URBANopt, Alliance for Sustainable Energy, LLC, and other contributors. # See also https://github.com/urbanopt/geojson-modelica-translator/blob/develop/LICENSE.md +import math import os from pathlib import Path + import pandas as pd import scipy.io as sio -import math from geojson_modelica_translator.model_connectors.plants.plant_base import ( PlantBase @@ -97,20 +98,20 @@ def to_modelica(self, scaffold): # process g-function file gfunction = pd.read_csv((Path(template_data["gfunction"]["input_path"]) / "Gfunction.csv").resolve(), header=0) - template_data["gfunction"]["gfunction_file_rows"] = gfunction.shape[0]+1 - + template_data["gfunction"]["gfunction_file_rows"] = gfunction.shape[0] + 1 + # convert the values to match Modelica gfunctions for i in range(len(gfunction)): - gfunction[gfunction.columns[0]].iloc[i] = math.exp(gfunction[gfunction.columns[0]].iloc[i])*template_data["configuration"]["borehole_height"]**2/(9*template_data["soil"]["conductivity"]/template_data["soil"]["volumetric_heat_capacity"]) - gfunction[gfunction.columns[1]].iloc[i] = gfunction[gfunction.columns[1]].iloc[i]/(template_data["configuration"]["number_of_boreholes"]*2*math.pi*template_data["configuration"]["borehole_height"]*template_data["soil"]["conductivity"]) - + gfunction[gfunction.columns[0]].iloc[i] = math.exp(gfunction[gfunction.columns[0]].iloc[i]) * template_data["configuration"]["borehole_height"]**2 / (9 * template_data["soil"]["conductivity"] / template_data["soil"]["volumetric_heat_capacity"]) + gfunction[gfunction.columns[1]].iloc[i] = gfunction[gfunction.columns[1]].iloc[i] / (template_data["configuration"]["number_of_boreholes"] * 2 * math.pi * template_data["configuration"]["borehole_height"] * template_data["soil"]["conductivity"]) + # add zeros to the first row new_row = pd.Series({gfunction.columns[0]: 0, gfunction.columns[1]: 0}) gfunction = pd.concat([gfunction.iloc[:0], pd.DataFrame([new_row]), gfunction.iloc[0:]]).reset_index(drop=True) # add to dict and save MAT file to the borefield's resources folder data_dict = {'TStep': gfunction.values} - gfunction_path = os.path.join(scaffold.plants_path.resources_dir,'Gfunction.mat') + gfunction_path = os.path.join(scaffold.plants_path.resources_dir, 'Gfunction.mat') sio.savemat(gfunction_path, data_dict) template_data["gfunction"]["gfunction_file_path"] = gfunction_path.replace('\\', '/') diff --git a/tests/model_connectors/data/system_params_ghe.json b/tests/model_connectors/data/system_params_ghe.json index 69ef010c6..7a1fa8522 100644 --- a/tests/model_connectors/data/system_params_ghe.json +++ b/tests/model_connectors/data/system_params_ghe.json @@ -69,8 +69,8 @@ "borehole": { "buried_depth": 2.0, "diameter": 0.15, - "length": 150, - "number_of_boreholes": 4 + "length": 150, + "number_of_boreholes": 4 }, "simulation": { "num_months": 240 From f80d7400be3d38218779dbe0a17d6b4f590b0759 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Wed, 31 May 2023 15:22:46 -0600 Subject: [PATCH 57/58] Fix bug --- .../networks/templates/NetworkAmbientWaterStub_Instance.mopt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt b/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt index a5136cbe4..57128c591 100644 --- a/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt +++ b/geojson_modelica_translator/model_connectors/networks/templates/NetworkAmbientWaterStub_Instance.mopt @@ -5,7 +5,7 @@ redeclare package Medium={{ globals.medium_w }}, use_m_flow_in=true, use_T_in=false, - {% if sys_params.district_system['fifth_generation']['ghe_parameters'] %} + {% if 'ghe_parameters' in sys_params.district_system['fifth_generation'] %} T={{ sys_params.district_system.fifth_generation.ghe_parameters.soil.undisturbed_temp}}+273.15, {% else %} T={{ sys_params.district_system.fifth_generation.central_heating_plant_parameters.temp_setpoint_hhw }}+273.15, From 0f6a0ea5ef12cf1cebec0d0190fa0e745e51a840 Mon Sep 17 00:00:00 2001 From: Jing Wang Date: Mon, 5 Jun 2023 10:59:04 -0600 Subject: [PATCH 58/58] Changes due to schema change --- .../model_connectors/plants/borefield.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/geojson_modelica_translator/model_connectors/plants/borefield.py b/geojson_modelica_translator/model_connectors/plants/borefield.py index 8e6ff1c89..55cbc62e9 100644 --- a/geojson_modelica_translator/model_connectors/plants/borefield.py +++ b/geojson_modelica_translator/model_connectors/plants/borefield.py @@ -68,16 +68,16 @@ def to_modelica(self, scaffold): "$.district_system.fifth_generation.ghe_parameters.design.flow_type" ), "borehole_height": self.system_parameters.get_param( - "$.district_system.fifth_generation.ghe_parameters.borehole.length" + "$.district_system.fifth_generation.ghe_parameters.ghe_specific_params[0].borehole.length" ), "borehole_diameter": self.system_parameters.get_param( - "$.district_system.fifth_generation.ghe_parameters.borehole.diameter" + "$.district_system.fifth_generation.ghe_parameters.ghe_specific_params[0].borehole.diameter" ), "borehole_buried_depth": self.system_parameters.get_param( - "$.district_system.fifth_generation.ghe_parameters.borehole.buried_depth" + "$.district_system.fifth_generation.ghe_parameters.ghe_specific_params[0].borehole.buried_depth" ), "number_of_boreholes": self.system_parameters.get_param( - "$.district_system.fifth_generation.ghe_parameters.borehole.number_of_boreholes" + "$.district_system.fifth_generation.ghe_parameters.ghe_specific_params[0].borehole.number_of_boreholes" ), }, "tube": {