diff --git a/MonumentoBandera.stl b/assets/MonumentoBandera.stl similarity index 100% rename from MonumentoBandera.stl rename to assets/MonumentoBandera.stl diff --git a/aspas_126m_85.stl b/assets/aspas_126m_85.stl similarity index 100% rename from aspas_126m_85.stl rename to assets/aspas_126m_85.stl diff --git a/cuerpo_126m_50.stl b/assets/cuerpo_126m_50.stl similarity index 100% rename from cuerpo_126m_50.stl rename to assets/cuerpo_126m_50.stl diff --git a/logooscuro.png b/assets/logooscuro.png similarity index 100% rename from logooscuro.png rename to assets/logooscuro.png diff --git a/rotar_telefono.png b/assets/rotar_telefono.png similarity index 100% rename from rotar_telefono.png rename to assets/rotar_telefono.png diff --git a/casa_80.stl b/casa_80.stl deleted file mode 100644 index 7ef990d..0000000 Binary files a/casa_80.stl and /dev/null differ diff --git a/index.html b/index.html index 80f5df2..6d67237 100644 --- a/index.html +++ b/index.html @@ -21,14 +21,14 @@ function hide() {
¡SIMULAR!
-

Rotá tu
dispositivo

+

Rotá tu
dispositivo

diff --git a/js/main.js b/js/main.js index c6971d4..d2e7022 100644 --- a/js/main.js +++ b/js/main.js @@ -37,7 +37,7 @@ class WindSimulation { scene.add(this.checkBoard); const loader = new STLLoader(); - loader.load('./MonumentoBandera.stl', (geometry) => { + loader.load('assets/MonumentoBandera.stl', (geometry) => { var material = new THREE.MeshBasicMaterial({color: 0xffffff}); var mesh = new THREE.Mesh(geometry, material); var scale = 0.0093; @@ -175,7 +175,7 @@ var width = 10; var height = 10; var ws = new WindSimulation(width, height, 5); -var screen = new Screen(camera, renderer, new THREE.Vector3(width / 2 + 0.5, height / 2, -0.95)); +var screen = new Screen(camera, renderer, new THREE.Vector3(width / 2 + 0.5, height / 2, -0.65)); screen.setMoveCallBack((pos, end) => { ws.move(pos, end); }); screen.onResize(); diff --git a/js/screen.js b/js/screen.js index 1937a44..023d49c 100644 --- a/js/screen.js +++ b/js/screen.js @@ -14,11 +14,11 @@ class Screen { this.pointerScreen = new THREE.Vector2(); this.pointerWorld = new THREE.Vector3(); - this.radius = 23; + this.radius = 24; this.phi = -0.5; this.theta = 0.45; this.z = 15; - this.aspect = 2.24; + this.aspect = 2.13; this.clicked = false; diff --git a/js/windmill.js b/js/windmill.js index 40d377b..6b6957b 100644 --- a/js/windmill.js +++ b/js/windmill.js @@ -9,10 +9,10 @@ class WindMill extends THREE.Group { static { const loader = new STLLoader(); - loader.load('./aspas_126m_85.stl', function(geometry) { + loader.load('assets/aspas_126m_85.stl', function(geometry) { WindMill.geometryBlades = geometry; }); - loader.load('./cuerpo_126m_50.stl', function(geometry) { + loader.load('assets/cuerpo_126m_50.stl', function(geometry) { WindMill.geometryBody = geometry; }); } @@ -39,7 +39,7 @@ class WindMill extends THREE.Group { var geometry = new THREE.CircleGeometry(0.5, 20); this.meshCircle = new THREE.Mesh(geometry, this.materialCircle); - this.meshCircle.position.z = 0.01; + this.meshCircle.position.z = 0.001; this.meshCircle.visible = false; this.add(this.meshBlades); diff --git a/server.py b/server.py index 855c27f..1b6a220 100644 --- a/server.py +++ b/server.py @@ -1,5 +1,4 @@ -from flask import Flask -from flask import request +from flask import Flask, request, abort import json app = Flask(__name__) @@ -8,15 +7,15 @@ import xxx @app.route("/", methods=['GET', 'POST']) def index(): - if request.method == 'POST': - if request.data: - params = json.loads(request.data.decode(encoding='utf-8')) - pos = params['pos']; - ws = xxx.run(pos); - return { - 'pos': pos, - 'ws': ws, - } + if request.method != 'POST' or not request.data: + return abort(400); + params = json.loads(request.data.decode(encoding='utf-8')) + pos = params['pos']; + ws = xxx.run(pos); + return { + 'pos': pos, + 'ws': ws, + } if __name__ == "__main__": - app.run(host='0.0.0.0', port='1234') + app.run(host='localhost', port='1234') diff --git a/xxx.py b/xxx.py index 8c6a44f..c3d485c 100644 --- a/xxx.py +++ b/xxx.py @@ -1,11 +1,13 @@ from py_wake.wind_turbines import WindTurbine from py_wake.wind_turbines.power_ct_functions import PowerCtTabular from py_wake.site._site import UniformSite +from py_wake.site.xrsite import XRSite from py_wake.wind_farm_models import PropagateDownwind from py_wake.deficit_models.gaussian import TurboGaussianDeficit from py_wake.flow_map import XYGrid import numpy as np +import xarray as xr D = 126 #Diametro del wT h = 90 #Altura del WT @@ -71,9 +73,15 @@ windTurbines = py_wake_Initial_Cong(D, 'NREL_5MW', h, U_ref) def run(initial_position=initial_position, U_ref=U_ref): initial_position = np.array(initial_position); - site = UniformSite(p_wd=[1], - ws=U_ref, - initial_position=initial_position*D) + #site = UniformSite(p_wd=[1], + # ws=U_ref, + # initial_position=initial_position*D) + ds = xr.Dataset( + data_vars={'P': ('wd', [1])}, + coords={'wd': [0]}) + ds['TI'] = 0.1 + site = XRSite(ds, interp_method='nearest', initial_position=initial_position*D, default_ws=np.atleast_1d(U_ref)) + wt_x, wt_y = site.initial_position.T/D wfm = PropagateDownwind(site, windTurbines, wake_deficitModel=TurboGaussianDeficit()) grid = XYGrid(x=np.arange(0, 10.01, 0.1)*126, y=np.arange(0, 10.01, 0.1)*126)