as one element.
Thank you
Comment by karamba on October 7, 2014 at 11:27pm
Hello Patricio, divide the beams in such a way that each boundary vertex of the shell becomes an endpoint of a beam segment.
Best, Clemens
Comment by Llordella Patricio on October 8, 2014 at 8:30amDelete Comment
Hi Clemens,
I did what you suggested but now assemble element doesn´t work properly. Could you please tell me how to fix it? Thanks in advance, Patricio
8-10-14losa%20cadena.gh
Comment by karamba on October 8, 2014 at 11:59am
Hi Patricio, if you flatten the 'Elem'-input at the 'Assemble'-component the definition works. The triangular shell elements have linear displacement interpolations whereas the beam deflections are exact. In order to get correct results you should refine the shell mesh.
Best, Clemens
Comment by Llordella Patricio on October 9, 2014 at 8:35amDelete Comment
Hello, succeeds in creating the mesh to the slab, and built the beam segment, but when I see the deformations are not expected because the beam is deformed as the slab.
Thanks for the help
PS: maybe I'm using the program for a type of structure that is not the most appropriate, as I saw in the examples of other structures. But this type of structure is that students taught
best regards
Patricio
9-10-14%20Example%201.gh
Comment by karamba on October 9, 2014 at 10:46am
You could use the 'Mesh Edges'-component to retrieve the naked edges and turn them into beams - see attached file:91014Example1_cp.gh
Best regards,
Clemens
Comment by Llordella Patricio on October 15, 2014 at 3:41pmDelete Comment
Dear clemens
I was doing a rough estimate of the deformation, and I can not achieve the same result with Karamba. When I make a rough estimate of the result with Karamba beams and mine are very similar, I think the problem is when I connect the shell, because there are no similar results.
I sent the GH file, and an image of the calculation
The structure is concrete The result I get is 0.58cm
thank youPatricio
15-10-14%20Example.gh
Comment by karamba yesterday
Dear Patricio,
try to increase the number of shell elements. As mentioned in the manual they are linear elements. A mesh that is too coarse leads to a response which is stiffer than the real structure.
Best,
Clemens
…
1 JUN to 31 DECBetween hours 1:00 to 24:00Current document units is in MetersConversion to Meters will be applied = 1.000[1 of 7] Writing simulation parameters...Ground temperature data contains monthly average temperatures at 3 different depths .5 meters (1st)2 meters (2nd)4meters (3rd)respectively[2 of 6] No context surfaces...[3 of 6] Writing geometry...[4 of 6] Writing materials and constructions...[5 of 7] Writing schedules...[6 of 7] Writing loads and ideal air system...[7 of 7] Writing outputs......... idf file is successfully written to : c:\ladybug\unnamed\EnergyPlus\unnamed.idf
Analysis is running!...c:\ladybug\unnamed\EnergyPlus\eplusout.csv......
Done! Read below for errors and warnings:
Program Version,EnergyPlus, Version 8.3.0-6d97d074ea, YMD=2015.05.24 11:32,IDD_Version 8.3.0
** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details.
** Warning ** Version: in IDF="'8.1.0'" not the same as expected="8.3"
************* Beginning Zone Sizing Calculations
** Severe ** GetSurfaceData: Some Outward Facing angles of subsurfaces differ significantly from base surface.
** ~~~ ** ...use Output:Diagnostics,DisplayExtraWarnings; to show more details on individual surfaces.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=AW0 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=AW0 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=AW0 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.1101)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=AW0 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.1101)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=AW1 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.1101)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=AW1 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=AW1 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=AW1 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.1101)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=AW2 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=AW2 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=AW2 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=AW2 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=AW3 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=AW3 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=EW1 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=EW1 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=GLZ_0_EW1_1F6383543B434F648813 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=0.9038)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=GLZ_0_EW1_1F6383543B434F648813 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=0.9038)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=GLZ_0_EW1_1F6383543B434F648813 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=16.0967)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=GLZ_0_EW1_1F6383543B434F648813 is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=16.0967)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 6 of back surface=FLOOR is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 7 of back surface=FLOOR is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 8 of back surface=FLOOR is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.1101)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 9 of back surface=FLOOR is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 5 of back surface=CIELING is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 6 of back surface=CIELING is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=17.1101)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 7 of back surface=CIELING is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 8 of back surface=CIELING is in front of receiving surface=EW0
** ~~~ ** (Dot Product indicator=30.0900)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=AW6 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=AW6 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=WALLW1 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=WALLW1 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=WALLW1 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=WALLW1 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=GLZ_0_WALLW1_103854D39BEF453D8A4E is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=GLZ_0_WALLW1_103854D39BEF453D8A4E is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=GLZ_0_WALLW1_103854D39BEF453D8A4E is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=GLZ_0_WALLW1_103854D39BEF453D8A4E is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=EW0 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=EW0 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=GLZ_0_EW0_6AEDE94222384E5B8950 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=1.4709)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=GLZ_0_EW0_6AEDE94222384E5B8950 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=1.4709)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=GLZ_0_EW0_6AEDE94222384E5B8950 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=15.6696)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 4 of back surface=GLZ_0_EW0_6AEDE94222384E5B8950 is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=15.6696)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 1 of back surface=FLOOR is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=FLOOR is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 2 of back surface=CIELING is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Severe ** Problem in interior solar distribution calculation (CHKBKS)
** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone="APRATMENT1"
** ~~~ ** because vertex 3 of back surface=CIELING is in front of receiving surface=EW1
** ~~~ ** (Dot Product indicator=17.0963)
** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.
** Warning ** ManageSizing: For a plant sizing run, there must be at least 1 Sizing:Plant object input. SimulationControl Plant Sizing option ignored.
************* Testing Individual Branch Integrity
************* All Branches passed integrity testing
************* Testing Individual Supply Air Path Integrity
************* All Supply Air Paths passed integrity testing
************* Testing Individual Return Air Path Integrity
************* All Return Air Paths passed integrity testing
************* No node connection errors were found.
************* Beginning Simulation
************* Simulation Error Summary *************
** Warning ** The following Report Variables were requested but not generated
** ~~~ ** because IDF did not contain these elements or misspelled variable name -- check .rdd file
************* Key=*, VarName=ZONE PACKAGED TERMINAL HEAT PUMP TOTAL COOLING ENERGY, Frequency=Hourly
************* Key=*, VarName=ZONE PACKAGED TERMINAL HEAT PUMP TOTAL HEATING ENERGY, Frequency=Hourly
************* Key=*, VarName=CHILLER ELECTRIC ENERGY, Frequency=Hourly
************* Key=*, VarName=BOILER HEATING ENERGY, Frequency=Hourly
************* Key=*, VarName=FAN ELECTRIC ENERGY, Frequency=Hourly
************* Key=*, VarName=ZONE VENTILATION FAN ELECTRIC ENERGY, Frequency=Hourly
************* Key=*, VarName=ZONE VENTILATION TOTAL HEAT LOSS ENERGY, Frequency=Hourly
************* Key=*, VarName=ZONE VENTILATION TOTAL HEAT GAIN ENERGY, Frequency=Hourly
************* There are 1 unused schedules in input.
************* There are 1 unused week schedules in input.
************* There are 3 unused day schedules in input.
************* Use Output:Diagnostics,DisplayUnusedSchedules; to see them.
************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
************* EnergyPlus Sizing Error Summary. During Sizing: 1 Warning; 49 Severe Errors.
************* EnergyPlus Completed Successfully-- 4 Warning; 49 Severe Errors; Elapsed Time=00hr 00min 4.59sec
Thanks Abraham.I really appreciate it.
Another thing ' I posted a discussion few days ago and got no replies.And this forum is the only 'Hope' for me..Can you quickly check it?thanks.
N
http://www.grasshopper3d.com/group/ladybug/forum/topics/free-form-external-wall-with-glazing-workflow?xg_source=activity
…
giornata inaugurale sarà dedicata alla free-lecture introduttiva finalizzata alla realizzazione di un modello d'architettura complesso attraverso l'utilizzo di comandi e tecniche avanzate di rappresentazione con Grasshopper (plug-in parametrica di Rhinoceros) e 3dsMax. Sarà illustrato inoltre il potenziale di V-ray per 3dsMax realizzando un rendering concettuale. Durante il mini-corso dell' openDAY verranno mostrate le caratteristiche e le potenzialità degli strumenti per far luce sui nuovi valori assunti dalla modellazione 3D. La modellazione 3D sta interessando un pubblico sempre più vasto inserendosi in una nuova fase di ampia disponibilità per conoscenze, software, hardware di prototipazione e modelli. Pur mantenendo tutti i suoi valori già noti la questione si è talmente ampliata fino ad interessare norme giuridiche (diritti sui modelli ,concorrenza con offerte di servizi apparentemente simili, informazioni deformate e onfusione nei media) Makers University[http://www.makersuniversity.com], in collaborazione con parametricart, vi propone un punto di vista ampio e sintetico su queste tematiche.
Al termine della free-lecture, sarà illustrata l'offerta formativa [CLICCA QUI] di parametricart riferita ai corsi che si terranno nei mesi di Gennaio e Febbraio 2013 inseriti all'interno della più ampia programmazione della Makers University. SONO PREVISTE TARIFFE PROMOZIONALI PER COLORO CHE SI ISCRIVERANNO AI CORSI durante l'OpenDAY.
La lezione e la presentazione si terranno nel nuovo spazio co-working il PEDONE.
PROGRAMMAZIONE
- I temi della Makers University [Leo Sorge];
- Modellazione della parametricTower (concept di architettura complessa) utilizzando Grasshopper, applicativo per la modellazione parametrica [VIDEO] [Michele Calvano];
- Modellazione di una copertura reticolare 3D a completamento della parametricTower con 3dsMax utilizzando tecniche di modellazione mesh complesse [Wissam Wahbeh];
- Rendering con V-ray per 3dsMax illustrando la nuova interfaccia nodale [Wissam Wahbeh].
- Question Time per chiarimenti sugli argomenti illustrati.
COME
L'openDAY sarà aperto a tutti gli interessati,completamente gratuito e sarà replicato in tre sessioni di uguali contenuti organizzate nei seguenti orari:
Sessione [1] 11,30 - 13,30
Sessione [2] 15,30 - 17,30
Sessione [3] 17,30 - 19,30
Per necessità di organizzazione è importante la prenotazione all'evento utilizzando il form in fondo alla pagina specificando nella stringa apposita, il nome dell'evento e la sessione (es. open day sessione 1) oltre agli altri dati richiesti.…
ow the steps of the successful run when step 1.2 is bypassed (note that the and OpenFOAM session is open in the background while running the Butterfly demo file):
1. create wind tunnel, and use different parameters of (4,4) for _globalRefLevel_ as suggested by Theodoro in this post
2. run blockMesh:
3. run snappyHexMesh:
4. run checkMesh:
5. connect the case from checkMesh to simpleFOAM and run the simulation:
6. the simulation converged at 1865 iteration, but the results visualization part has some problem:
7. so I revised this part according to suggestions from Hagit:
8. and the results can be visualized for P and U values:
The GH file used for the successful run shown above is attached here.
Now, the following is the error I got when the case from the update fvScheme component is used for simpleFOAM simulation:
the warning message on the simpleFOAM component is:
1. Solution exception: --> OpenFOAM command Failed!#0 Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #1 Foam::sigFpe::sigHandler(int) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #2 ? in "/lib64/libc.so.6" #3 double Foam::sumProd<double>(Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #4 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #5 Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<double>&, Foam::Field<double> const&) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #6 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #7 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #8 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so" #9 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #10 Foam::fvMatrix<double>::solve() in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #11 ? in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #12 __libc_start_main in "/lib64/libc.so.6" #13 ? in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam"
The error message from the readMe! output node is attached below as a text file.
Hope you can kindly advise what the important steps or parameters I might have missed here. I assume it might be related to OpenFOAM rather than with the Butterfly workflow...
Thank you very much!
- Ji
…
t file** - ply file with just x,y,z locations. I got it from a 3d scanner. Here is how first few lines of file looks like - ply format ascii 1.0 comment VCGLIB generated element vertex 6183 property float x property float y property float z end_header -32.3271 -43.9859 11.5124 -32.0631 -43.983 11.4945 12.9266 -44.4913 28.2031 13.1701 -44.4918 28.2568 13.4138 -44.4892 28.2531 13.6581 -44.4834 28.1941 13.9012 -44.4851 28.2684 ... ... ... In case you need the data - please email me on **nisha.m234@gmail.com**. **Algorithm:** I am trying to find principal curvatures for extracting the ridges and valleys. The steps I am following is: 1. Take a point x 2. Find its k nearest neighbors. I used k from 3 to 20. 3. average the k nearest neighbors => gives (_x, _y, _z) 4. compute covariance matrix 5. Now I take eigen values and eigen vectors of this covariance matrix 6. I get u, v and n here from eigen vectors. u is a vector corresponding to largest eigen value v corresponding to 2nd largest n is 3rd smallest vector corresponding to smallest eigen value 7. Then for transforming the point(x,y,z) I compute matrix T T = [ui ] [u ] [x - _x] [vi ] = [v ] x [y - _y] [ni ] [n ] [z - _z] 8. for each i of the k nearest neighbors:<br> [ n1 ] [u1*u1 u1*v1 v1*v1] [ a ]<br> [ n2 ] = [u2*u2 u2*v2 v2*v2] [ b ] <br> [... ] [ ... ... ... ] [ c ] <br> [ nk ] [uk*uk uk*vk vk*vk]<br> Solve this for a, b and c with least squares 9. this equations will give me a,b,c 10. now I compute eigen values of matrix [a b b a ] 11. This will give me 2 eigen values. one is Kmin and another Kmax. **My Problem:** The output is no where close to finding the correct Ridges and Valleys. I am totally Stuck and frustrated. I am not sure where exactly I am getting it wrong. I think the normal's are not computed correctly. But I am not sure. I am very new to graphics programming and so this maths, normals, shaders go way above my head. Any help will be appreciated. **PLEASE PLEASE HELP!!** **Resources:** I am using Visual Studio 2010 + Eigen Library + ANN Library. **Other Options used** I tried using MeshLab. I used ball pivoting triangles remeshing in MeshLab and then applied the polkadot3d shader. If correctly identifies the ridges and valleys. But I am not able to code it. **My Function:** //the function outputs to ply file void getEigen() { int nPts; // actual number of data points ANNpointArray dataPts; // data points ANNpoint queryPt; // query point ANNidxArray nnIdx;// near neighbor indices ANNdistArray dists; // near neighbor distances ANNkd_tree* kdTree; // search structure //for k = 25 and esp = 2, seems to got few ridges queryPt = annAllocPt(dim); // allocate query point dataPts = annAllocPts(maxPts, dim); // allocate data points nnIdx = new ANNidx[k]; // allocate near neigh indices dists = new ANNdist[k]; // allocate near neighbor dists nPts = 0; // read data points ifstream dataStream; dataStream.open(inputFile, ios::in);// open data file dataIn = &dataStream; ifstream queryStream; queryStream.open("input/query.
pts", ios::in);// open data file queryIn = &queryStream; while (nPts < maxPts && readPt(*dataIn, dataPts[nPts])) nPts++; kdTree = new ANNkd_tree( // build search structure dataPts, // the data points nPts, // number of points dim); // dimension of space while (readPt(*queryIn, queryPt)) // read query points { kdTree->annkSearch( // search queryPt, // query point k, // number of near neighbors nnIdx, // nearest neighbors (returned) dists, // distance (returned) eps); // error bound double x = queryPt[0]; double y = queryPt[1]; double z = queryPt[2]; double _x = 0.0; double _y = 0.0; double _z = 0.0; #pragma region Compute covariance matrix for (int i = 0; i < k; i++) { _x += dataPts[nnIdx[i]][0]; _y += dataPts[nnIdx[i]][1]; _z += dataPts[nnIdx[i]][2]; } _x = _x/k; _y = _y/k; _z = _z/k; double A[3][3] = {0,0,0,0,0,0,0,0,0}; for (int i = 0; i < k; i++) { double X = dataPts[nnIdx[i]][0]; double Y = dataPts[nnIdx[i]][1]; double Z = dataPts[nnIdx[i]][2]; A[0][0] += (X-_x) * (X-_x); A[0][1] += (X-_x) * (Y-_y); A[0][2] += (X-_x) * (Z-_z); A[1][0] += (Y-_y) * (X-_x); A[1][1] += (Y-_y) * (Y-_y); A[1][2] += (Y-_y) * (Z-_z); A[2][0] += (Z-_z) * (X-_x); A[2][1] += (Z-_z) * (Y-_y); A[2][2] += (Z-_z) * (Z-_z); } MatrixXd C(3,3); C <<A[0][0]/k, A[0][1]/k, A[0][2]/k, A[1][0]/k, A[1][1]/k, A[1][2]/k, A[2][0]/k, A[2][1]/k, A[2][2]/k; #pragma endregion EigenSolver<MatrixXd> es(C); MatrixXd Eval = es.eigenvalues().real().asDiagonal(); MatrixXd Evec = es.eigenvectors().real(); MatrixXd u,v,n; double a = Eval.row(0).col(0).value(); double b = Eval.row(1).col(1).value(); double c = Eval.row(2).col(2).value(); #pragma region SET U V N if(a>b && a>c) { u = Evec.row(0); if(b>c) { v = Eval.row(1); n = Eval.row(2);} else { v = Eval.row(2); n = Eval.row(1);} } else if(b>a && b>c) { u = Evec.row(1); if(a>c) { v = Eval.row(0); n = Eval.row(2);} else { v = Eval.row(2); n = Eval.row(0);} } else { u = Eval.row(2); if(a>b) { v = Eval.row(0); n = Eval.row(1);} else { v = Eval.row(1); n = Eval.row(0);} } #pragma endregion MatrixXd O(3,3); O <<u, v, n; MatrixXd UV(k,3); VectorXd N(k,1); for( int i=0; i<k; i++) { double x = dataPts[nnIdx[i]][0];; double y = dataPts[nnIdx[i]][1];; double z = dataPts[nnIdx[i]][2];; MatrixXd X(3,1); X << x-_x, y-_y, z-_z; MatrixXd T = O * X; double ui = T.row(0).col(0).value(); double vi = T.row(1).col(0).value(); double ni = T.row(2).col(0).value(); UV.row(i) << ui * ui, ui * vi, vi * vi; N.row(i) << ni; } Vector3d S = UV.colPivHouseholderQr().solve(N); MatrixXd II(2,2); II << S.row(0).value(), S.row(1).value(), S.row(1).value(), S.row(2).value(); EigenSolver<MatrixXd> es2(II); MatrixXd Eval2 = es2.eigenvalues().real().asDiagonal(); MatrixXd Evec2 = es2.eigenvectors().real(); double kmin, kmax; if(Eval2.row(0).col(0).value() < Eval2.row(1).col(1).value()) { kmin = Eval2.row(0).col(0).value(); kmax = Eval2.row(1).col(1).value(); } else { kmax = Eval2.row(0).col(0).value(); kmin = Eval2.row(1).col(1).value(); } double thresh = 0.0020078; if (kmin < thresh && kmax > thresh ) cout << x << " " << y << " " << z << " " << 255 << " " << 0 << " " << 0 << endl; else cout << x << " " << y << " " << z << " " << 255 << " " << 255 << " " << 255 << endl; } delete [] nnIdx; delete [] dists; delete kdTree; annClose(); } Thanks, NISHA…
he "return" is comment out as shown below?
After restarting Rhino and Grasshopper, I opened the outdoors_airflow demo file, and the first step of creating the case file is ok:
Then the blockMesh component gives the following error: seems I have to manually start OF first..
so, as the error message suggested, I open OF by Start_OF.bat:
Then come back to the blockMesh component, now it can be executed while the OF command line window is also openning:
... and the blockMesh finished successfully:
... so I proceeded to run snappyHexMesh, checkMesh and update fvScheme:
... up to the simpleFoam component, I got the error again:
The warning message is:
1. Solution exception: --> OpenFOAM command Failed!#0 Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #1 Foam::sigFpe::sigHandler(int) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #2 ? in "/lib64/libc.so.6" #3 double Foam::sumProd<double>(Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #4 Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #5 Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<double>&, Foam::Field<double> const&) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #6 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #7 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #8 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so" #9 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #10 Foam::fvMatrix<double>::solve() in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #11 ? in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #12 __libc_start_main in "/lib64/libc.so.6" #13 ? in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam"
... and the command lines in the readMe! output are pretty long and it is saved in the text file attached here.
So, my questions are:
1. why I have to manually start OF first before I can use the blockMesh component? Should butterfly automatically start OF?
2. what might be the cause of the unsuccessful run of simpleFoam in the end?
Hope you can kindly advise! Thank you!
- Ji
…
mers considering extreme sports reject mainstream retailers and like to check out small stores rather of at chains plus malls. Several smaller retailers discuss trends in sports shoe sales. http://skateszone.com/
Though athletic shoes and sports stores and from doorways retailers have reported somewhat uptick in footwear sales due to the increase in extreme sports, the particular beneficiaries inside the trend are independent surf and skate niche stores.
Some West Coast surf and skate shops stated teenagers and even more youthful Generation Xers are not only rejecting traditional sports, but they're also shunning mainstream retailers and malls meant for smaller niche shops transporting hard-to-come-by brands.
Eddie Miyoshi, district manager at Atomic Garage, a 3-store chain situated in Gardena, Calif., stated the soaring recognition of skateboard footwear has boosted the retailer's total footwear business 20-thirty percent this year, rather of '95.
Skate footwear presently represent 80-90 % of Atomic Garage's shoe sales, while couple of years back, Dr. Martens and Timberland drove the retailer's footwear business.
Like many retailers, Miyoshi pointed to Airwalk since the trend's catalyst.
However, if Airwalk broadened its distribution to larger chains, which are frequently located in malls, only a few skate shoe customers adopted. Rather, many youthful males have switched for your skate shops for additional elusive brands like Etnies, Duffs, and Electricity Footwear by Circus. By refusing to market bigger retailers or sports stores, these brands are increasing their cachet among youthful consumers.
"Kids don't want stuff which have been within the shops,In . Miyoshi added.
Searching ahead, Miyoshi forecasted skate shoe sales will remain strong through spring '97 provided "the [hot] vendors don't auction other [non-particularly shop] retailers."
"Skaters and non-skaters are rebelling against mainstream retailers so on to surf and skate shops for many looks," echoed Mark Richards, co-online sources Val Surf, a 3-store chain situated in North Hollywood, Calif. Soaring sales of skate footwear have driven total footwear receipts up 25 percent this year rather of '95.
"The quantity of that increase might be connected while using exposure of maximum games? I am unsure. [Skate footwear] may also be actually the think about the moment,In . Richards acknowledged. And in relation to getting this right look, youthful customers can be very picky.
"Skateboard footwear is a huge category for people, but we're not able to own the brands, Etnies, Duffs, Electricity and Nice, simply because they won't sell us," stated Mark Anderson, buyer at Chick's Sports, a six-store chain in Covina, Calif. "We have people coming every single day requesting them." Consequently, skate footwear have consistently ongoing to obtain about 5 % of Chick's overall footwear business. http://skateszone.com/the-top-8-best-skateboards-for-beginners-reviews-2017/
Nonetheless, some outdoors, niche sports and sports retailers are noting the growing recognition and coverage of maximum sports will receive a modest impact on footwear sales. Trailrunning footwear and approach/outdoors crosstrainers will be the two groups benefiting the very best inside the recognition. Like the skate shoe business, some retailers realize that styling instead of function frequently drives sales of individuals footwear.
"At this time the merchandise is a lot more visual than function," stated Chet James, gm of Super Jock 'N Jill, Dallas, speaking about trailrunning footwear. Still, James noted the current hype over adventure sports helps draw more customer traffic. "The marketing campaigns and media help bring growing figures of people in, nonetheless they frequently occasions day an issue that increases results on their own account,Inch he conceded.
John Wilkinson, executive vp inside the 85-store chain Track 'N Trail, Eldorado Hillsides, Calif., stated the shop has "seen some activity in approach footwear," but he requested the amount of consumers depend in it commercially sport. And, instead of accelerating total footwear business, Wilkinson speculated elevated sales of approach footwear and trailrunners are gnawing away at traditional hiking shoe and boot volume.
But Dan Bazinet, president of Overland Exchanging, a 34-store chain situated in Westford, Mass., believes the company-new looks have breathed existence for the wilting hiking boot category. "[Approach-type footwear] don't represent the lion's participate the hiking market, nonetheless they have elevated the hiking business and provided us extra sales," Bazinet stated.
He designated Timberland's Treeline Series and Rockport's Leadville line as strong performers. Unsurprisingly, he noted the company-new looks are attractive to youthful consumer base than traditional hikers.
For that month of June, sales of men's hikers were up 49 percent at Overland, rather of June '95, while sales of women's hikers were up 17 % for that month. Bazinet also attributed elevated sales that shops walked inside the hiking business, departing that business for that specialists.
Some retailers draw a good example concerning the hiking boom of two yrs ago combined with the current extreme sport phenomenon. "Plenty of bigger chains will get a specific percent in the industry while [extreme] sports remain a fad because they are selling cost-point type gear," described Steven Carre, assistant hard goods buyer at Adventure 16, a six-store chain situated in Hillcrest.
"However individuals [true enthusiasts] will say `we need real gear' and may shown up at us. That will help us after a while. What Size Skateboard good for an 3 4 5 6 7 8 9 10 11 12 13 14 year old
…
is set up to manipulate strings into an STL file that is quite different from how Grasshopper defines meshes, in that an STL seems to define each face by XYZ points, Grasshopper wants a single list of all vertex points and then has an allied lists of topological connectivity according to vertex number, so for now I just hacked it to spit out points minus so many duplicates it generates for STL:
Right now it has an internal 3D trigonometric function I added input sliders to control, that creates surfaces that look a lot like molecular orbitals.
So how do I make a mesh? I failed to make a single mesh face from each STL face since AddMesh seems to want a list, so I tried making a single list and matching it with a simple ((1,2,3),(4,5,6),(7,8,9)...) array of connectivity but it hasn't worked yet since the STL list of vertices has duplicates that won't work for Grasshopper and removing the duplicates scrambles the connectivity relation.
After some work on this and seeing the output, I figure I could just randomly populate the mathematical function with points instead, unless it really gives a better mesh result than other routines. I'm not sure what to do with it yet, even if I get the mesh figured out.
import rhinoscriptsyntaximport RhinoPOINTS_CONTAINER =[]POINTS = []class Vector: # struct XYZ def __init__(self,x,y,z): self.x=x self.y=y self.z=z def __str__(self): return str(self.x)+" "+str(self.y)+" "+str(self.z) class Gridcell: # struct GRIDCELL def __init__(self,p,n,val): self.p = p # p=[8] self.n = n # n=[8] self.val = val # val=[8] class Triangle: # struct TRIANGLE def __init__(self,p1,p2,p3): self.p = [p1, p2, p3] # vertices # HACK TO GRAB VERTICES FOR PYTHON OUTPUT POINTS_CONTAINER.append( (p1.x,p1.y,p1.z) ) POINTS_CONTAINER.append( (p2.x,p2.y,p2.z) ) POINTS_CONTAINER.append( (p3.x,p3.y,p3.z) )# return a 3d list of values def readdata(f=lambda x,y,z:x*x+y*y+z*z,size=5.0,steps=11): m=int(steps/2) ki = [] for i in range(steps): kj = [] for j in range(steps): kd=[] for k in range(steps): kd.append(f(size*(i-m)/m,size*(j-m)/m,size*(k-m)/m)) kj.append(kd) ki.append(kj) return ki from math import sin,cos,exp,atan2 def lobes(x,y,z): try: theta = atan2(x,y) # sin t = o except: theta = 0 try: phi = atan2(z,y) except: phi = 0 r = x*x+y*y+z*z ct=cos(PARAMETER_A * theta) cp=cos(PARAMETER_B * phi) return ct*ct*cp*cp*exp(-r/10) def main(): data = readdata(lobes,10,40) isolevel = 0.1 #print(data) triangles=[] for i in range(len(data)-1): for j in range(len(data[i])-1): for k in range(len(data[i][j])-1): p=[None]*8 val=[None]*8 #print(i,j,k) p[0]=Vector(i,j,k) val[0] = data[i][j][k] p[1]=Vector(i+1,j,k) val[1] = data[i+1][j][k] p[2]=Vector(i+1,j+1,k) val[2] = data[i+1][j+1][k] p[3]=Vector(i,j+1,k) val[3] = data[i][j+1][k] p[4]=Vector(i,j,k+1) val[4] = data[i][j][k+1] p[5]=Vector(i+1,j,k+1) val[5] = data[i+1][j][k+1] p[6]=Vector(i+1,j+1,k+1) val[6] = data[i+1][j+1][k+1] p[7]=Vector(i,j+1,k+1) val[7] = data[i][j+1][k+1] grid=Gridcell(p,[],val) triangles.extend(PolygoniseTri(grid,isolevel,0,2,3,7)) triangles.extend(PolygoniseTri(grid,isolevel,0,2,6,7)) triangles.extend(PolygoniseTri(grid,isolevel,0,4,6,7)) triangles.extend(PolygoniseTri(grid,isolevel,0,6,1,2)) triangles.extend(PolygoniseTri(grid,isolevel,0,6,1,4)) triangles.extend(PolygoniseTri(grid,isolevel,5,6,1,4)) def t000F(g, iso, v0, v1, v2, v3): return [] def t0E01(g, iso, v0, v1, v2, v3): return [Triangle( VertexInterp(iso,g.p[v0],g.p[v1],g.val[v0],g.val[v1]), VertexInterp(iso,g.p[v0],g.p[v2],g.val[v0],g.val[v2]), VertexInterp(iso,g.p[v0],g.p[v3],g.val[v0],g.val[v3])) ] def t0D02(g, iso, v0, v1, v2, v3): return [Triangle( VertexInterp(iso,g.p[v1],g.p[v0],g.val[v1],g.val[v0]), VertexInterp(iso,g.p[v1],g.p[v3],g.val[v1],g.val[v3]), VertexInterp(iso,g.p[v1],g.p[v2],g.val[v1],g.val[v2])) ] def t0C03(g, iso, v0, v1, v2, v3): tri=Triangle( VertexInterp(iso,g.p[v0],g.p[v3],g.val[v0],g.val[v3]), VertexInterp(iso,g.p[v0],g.p[v2],g.val[v0],g.val[v2]), VertexInterp(iso,g.p[v1],g.p[v3],g.val[v1],g.val[v3])) return [tri,Triangle( tri.p[2], VertexInterp(iso,g.p[v1],g.p[v2],g.val[v1],g.val[v2]), tri.p[1]) ] def t0B04(g, iso, v0, v1, v2, v3): return [Triangle( VertexInterp(iso,g.p[v2],g.p[v0],g.val[v2],g.val[v0]), VertexInterp(iso,g.p[v2],g.p[v1],g.val[v2],g.val[v1]), VertexInterp(iso,g.p[v2],g.p[v3],g.val[v2],g.val[v3])) ] def t0A05(g, iso, v0, v1, v2, v3): tri = Triangle( VertexInterp(iso,g.p[v0],g.p[v1],g.val[v0],g.val[v1]), VertexInterp(iso,g.p[v2],g.p[v3],g.val[v2],g.val[v3]), VertexInterp(iso,g.p[v0],g.p[v3],g.val[v0],g.val[v3])) return [tri,Triangle( tri.p[0], VertexInterp(iso,g.p[v1],g.p[v2],g.val[v1],g.val[v2]), tri.p[1]) ] def t0906(g, iso, v0, v1, v2, v3): tri=Triangle( VertexInterp(iso,g.p[v0],g.p[v1],g.val[v0],g.val[v1]), VertexInterp(iso,g.p[v1],g.p[v3],g.val[v1],g.val[v3]), VertexInterp(iso,g.p[v2],g.p[v3],g.val[v2],g.val[v3])) return [tri, Triangle( tri.p[0], VertexInterp(iso,g.p[v0],g.p[v2],g.val[v0],g.val[v2]), tri.p[2]) ] def t0708(g, iso, v0, v1, v2, v3): return [Triangle( VertexInterp(iso,g.p[v3],g.p[v0],g.val[v3],g.val[v0]), VertexInterp(iso,g.p[v3],g.p[v2],g.val[v3],g.val[v2]), VertexInterp(iso,g.p[v3],g.p[v1],g.val[v3],g.val[v1])) ] trianglefs = {7:t0708,8:t0708,9:t0906,6:t0906,10:t0A05,5:t0A05,11:t0B04,4:t0B04,12:t0C03,3:t0C03,13:t0D02,2:t0D02,14:t0E01,1:t0E01,0:t000F,15:t000F} def PolygoniseTri(g, iso, v0, v1, v2, v3): triangles = [] # Determine which of the 16 cases we have given which vertices # are above or below the isosurface triindex = 0; if g.val[v0] < iso: triindex |= 1 if g.val[v1] < iso: triindex |= 2 if g.val[v2] < iso: triindex |= 4 if g.val[v3] < iso: triindex |= 8 return trianglefs[triindex](g, iso, v0, v1, v2, v3) def VertexInterp(isolevel,p1,p2,valp1,valp2): if abs(isolevel-valp1) < 0.00001 : return(p1); if abs(isolevel-valp2) < 0.00001 : return(p2); if abs(valp1-valp2) < 0.00001 : return(p1); mu = (isolevel - valp1) / (valp2 - valp1) return Vector(p1.x + mu * (p2.x - p1.x), p1.y + mu * (p2.y - p1.y), p1.z + mu * (p2.z - p1.z)) if __name__ == "__main__": main() # GRASSHOPPER PYTHON OUTPUTPOINTS = rhinoscriptsyntax.AddPoints(POINTS_CONTAINER)POINTS = rhinoscriptsyntax.CullDuplicatePoints(POINTS)…
t. So here we go!
1. Honeybee is brown and not yellow [stupid!]...
As you probably remember Honeybee logo was initially yellow because of my ignorance about Honeybees. With the help of our Honeybee expert, Michalina, now the color is corrected. I promised her to update everyone about this. Below are photos of her working on the honeybee logo and the results of her study.
If you think I'm exaggerating by calling her a honeybee expert you better watch this video:
Thank you Michalina for the great work! :). I corrected the colors. No yellow anymore. The only yellow arrows represent sun rays and not the honeybee!
2. Yellow or brown, W[here]TH Honeybee is?
I know. It has been a long time after I posted the initial video and it is not fun at all to wait for a long time. Here is the good news. If you are following the Facebook page you probably now that the Daylighting components are almost ready.
Couple of friends from Grasshopper community and RADIANCE community has been helping me with testing/debugging the components. I still think/hope to release the daylighting components at some point in January before Ladybug gets one year old.
There have been multiple changes. I finally feel that the current version of Honeybee is simple enough for non-expert users to start running initial studies and flexible enough for advanced users to run advanced studies. I will post a video soon and walk you through different components.
I think I still need more time to modify the energy simulation components so they are not going to be part of the next release. Unfortunately, there are so many ways to set up and run a wrong energy simulation and I really don’t want to add one new GIGO app to the world of simulation. We already have enough of that. Moreover I’m still not quite happy with the workflow. Please bear with me for few more months and then we can all celebrate!
I recently tested the idea of connecting Grasshopper to OpenStudio by using OpenStudio API successfully. If nothing else, I really want to release the EnergyPlus components so I can concentrate on Grasshopper > OpenStudio development which I personally think is the best approach.
3. What about wind analysis?
I have been asked multiple times that if Ladybug will have a component for wind study. The short answer is YES! I have been working with EFRI-PULSE project during the last year to develop a free and open source web-based CFD simulation platform for outdoor analysis.
We had a very good progress so far and our rockstar Stefan recently presented the results of the work at the American Physical Society’s 66th annual DFD meeting and the results looks pretty convincing in comparison to measured data. Here is an image from the presentation. All the credits go to Stefan Gracik and EFRI-PULSE project.
The project will go live at some point next year and after that I will release the Butterfly which will let you prepare the model for the CFD simulation and send it to EFRI-PULSE project. I haven’t tried to run the simulations locally yet but I’m considering that as a further development. Here is how the component and the logo looks like right now.
4. Teaching resources
It has been almost 11 months from the first public release of Ladybug. I know that I didn't do a good job in providing enough tutorials/teaching materials and I know that I won’t be able to put something comprehensive together soon.
Fortunately, ladybug has been flying in multiple schools during the last year. Several design, engineering and consultant firms are using it and it has been thought in several workshops. As I checked with multiple of you, almost everyone told me that they will be happy to share their teaching materials; hence I started the teaching resources page. Please share your materials on the page. They can be in any format and any language. Thanks in advance!
I hope you enjoyed/are enjoying/will enjoy the longest night of the year. Happy Yalda!
Cheers,
-Mostapha
…