solstice-pp

Post-processing utilities for the solstice app
git clone git://git.meso-star.com/solstice-pp.git
Log | Files | Refs | README | LICENSE

cyl.yaml (5955B)


      1 # Copyright (C) CNRS 2017
      2 #
      3 # This program is free software: you can redistribute it and/or modify
      4 # it under the terms of the GNU General Public License as published by
      5 # the Free Software Foundation, either version 3 of the License, or
      6 # (at your option) any later version.
      7 #
      8 # This program is distributed in the hope that it will be useful,
      9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     11 # GNU General Public License for more details.
     12 #
     13 # You should have received a copy of the GNU General Public License
     14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
     15 
     16 # TUTORIAL MICROSOL-R
     17 # This YAML file describes the parabolic-trough collector and receiver systems
     18 # where concentrated solar fluxes are computed with SOLSTICE.
     19 # http://www.equipex-socrate.fr/equipements/microsol-r.html
     20 
     21 ################################################################################
     22 # Sun & Atmosphere
     23 ################################################################################
     24 # Only the Direct Normal Irradiation (DNI) from the sun is set. As an example
     25 # here, no solar spectrum is considered, but we also could define a solar
     26 # intensity spectrum.
     27 - sun: &sun
     28     dni: 1000
     29 
     30 ################################################################################
     31 # Materials
     32 ################################################################################
     33 - medium: &air
     34     refractive_index: 1
     35     extinction: 0
     36 
     37 - medium: &glass
     38     refractive_index: 1.2
     39     extinction: 0.02
     40 
     41 - medium: &vacuum
     42     refractive_index: 1
     43     extinction: 0
     44 
     45 # Define a material purely absorbant (e.g. for pylons)
     46 - material: &occultant
     47     front: {matte: {reflectivity: 0}}
     48     back:  {matte: {reflectivity: 0}}
     49 
     50 # Define a specular material for the reflectors
     51 - material: &specular
     52     front: {mirror: {reflectivity: 0.9, slope_error: 0}}
     53     back:  {matte:  {reflectivity: 0.0}}
     54 
     55 # Define a diffusely reflecting material for the receiver
     56 - material: &lambertian
     57     front: {matte: {reflectivity: 0.06}}
     58     back:  {matte: {reflectivity: 0.0}}
     59 
     60 # Define a refractive interface between air and glass
     61 - material: &refractive_out
     62     front:
     63       dielectric: # --> Front|Back
     64         medium_i: *air   # medium travelling in before hitting Front
     65         medium_t: *glass # medium of refraction
     66     back:
     67       dielectric: # Front|Back <---
     68         medium_i: *glass # medium travelling in before hitting Back
     69         medium_t: *air   # medium of refraction
     70 
     71 # Define a refractive interface between glass and vacuum
     72 - material: &refractive_in
     73     front:
     74       dielectric: # --> Front|Back
     75         medium_i: *glass  # medium travelling in before hitting Front
     76         medium_t: *vacuum # medium of refraction
     77     back:
     78       dielectric: # Front|Back <---
     79         medium_i: *vacuum # medium travelling in before hitting Back
     80         medium_t: *glass  # medium of refraction
     81 
     82 ################################################################################
     83 # Geometries
     84 ################################################################################
     85 # Define the geometry of the parabolic-cylinder mirror surface
     86 - geometry: &reflector
     87   - material: *specular
     88     transform: {translation: [0, 0, 0], rotation: [0, 0, 0]}
     89     parabolic-cylinder:
     90       focal: 1.73
     91       slices: 32
     92       clip:
     93         - operation: AND
     94           vertices: [[-6, -2.38], [-6, 2.38], [ 6, 2.38], [ 6, -2.38]]
     95 
     96 # Define the tube surface  of the receiver
     97 - geometry: &tube_steel_g
     98   - material: *lambertian
     99     transform: {translation: [0, 0, 0], rotation: [0, 90, 0]}
    100     cylinder:
    101       height: 12
    102       radius: 0.07
    103       slices: 128
    104       stacks: 128
    105 
    106 # Define the tube surface of the internal glass interface
    107 - geometry: &tube_glass_in_g
    108   - material: *refractive_in
    109     transform: {translation: [0, 0, 0], rotation: [0, 90, 0]}
    110     cylinder: {height: 12, radius: 0.119, slices: 256, stacks: 32 }
    111 
    112 # Define the tube surface of the external glass interface
    113 - geometry: &tube_glass_out_g
    114   - material: *refractive_out
    115     transform: {translation: [0, 0, 0], rotation: [0, 90, 0]}
    116     cylinder: {height: 12, radius: 0.125, slices: 256, stacks: 32 }
    117 
    118 ################################################################################
    119 # Template of the parabolic trough (includes tubes and mirror)
    120 ################################################################################
    121 # Create a template to link the tracking (pivot) with the surfaces of the
    122 # parabolic-trough geometry
    123 - template: &parab_trough_t
    124     name: pt_pivot
    125     transform: {translation: [0, 0, 0],rotation: [0, 0, 0]}
    126     x_pivot:
    127       target: { sun: *sun }
    128       ref_point: [0, 0, 0]
    129     children:
    130 # Include the reflector
    131     - name: pt_reflector
    132       primary: 1
    133       transform: { rotation: [0, 0, 0]}
    134       geometry: *reflector
    135 # Include the glass tube internal interface
    136     - name: tube_glass_in
    137       primary: 0
    138       transform: { translation: [0, 0, 1.73], rotation: [0, 0, 0]}
    139       geometry: *tube_glass_in_g
    140 # Include the glass tube external interface
    141     - name: tube_glass_out
    142       primary: 0
    143       transform: { translation: [0, 0, 1.73], rotation: [0, 0, 0]}
    144       geometry: *tube_glass_out_g
    145 # Include the receiver tube
    146     - name: tube_steel
    147       primary: 0
    148       transform: { translation: [0, 0, 1.73], rotation: [0, 0, 0]}
    149       geometry: *tube_steel_g
    150 
    151 ################################################################################
    152 # Entities defined to appear in the scene to simulate
    153 ################################################################################
    154 # Define the parabolic-trough module and locate it inside the scene
    155 - entity:
    156     name: parab_trough_e
    157     transform: {translation: [0, 0, 0], rotation: [0, 0, 0]}
    158     children: [*parab_trough_t]
    159 # Define another one in another location
    160 - entity:
    161     name: pt_2_e
    162     transform: {translation: [0, 10, 0], rotation: [0, 0, 0]}
    163     children: [*parab_trough_t]
    164