@open3cl/engine 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,78 +3,77 @@ import tvs from './tv.js';
3
3
  import { mois_liste } from './utils.js';
4
4
 
5
5
  export function calc_sse_j(bv_list, ets, ca, zc, mois) {
6
- const ssej = bv_list.reduce((acc, bv) => {
7
- const typeAdjacence = parseInt(bv.donnee_entree.enum_type_adjacence_id);
8
-
9
- /**
10
- * 6.3 Traitement des espaces tampons solarisés
11
- * 10 - 'espace tampon solarisé (véranda,loggia fermée)'
12
- */
13
- if (typeAdjacence === 10 && ets) {
14
- // Certaines vérandas sont dupliqués dans les DPE.
15
- if (Array.isArray(ets)) {
16
- ets = ets[0];
17
- }
18
-
19
- const bver = ets.donnee_intermediaire.bver;
20
- const T = ets.donnee_intermediaire.coef_transparence_ets;
21
-
6
+ const baiesAdjVeranda = bv_list.filter((bv) => bv.donnee_entree.enum_type_adjacence_id === '10');
7
+ const baiesAdjExt = bv_list.filter((bv) => bv.donnee_entree.enum_type_adjacence_id === '1');
8
+
9
+ if (!ets) {
10
+ return baiesAdjExt.reduce((acc, bv) => {
11
+ return acc + getSsd(bv, zc, mois, bv.donnee_intermediaire.sw);
12
+ }, 0);
13
+ }
14
+
15
+ // Certaines vérandas sont dupliqués dans les DPE.
16
+ if (Array.isArray(ets)) {
17
+ ets = ets[0];
18
+ }
19
+
20
+ const bver = ets.donnee_intermediaire.bver;
21
+ const T = ets.donnee_intermediaire.coef_transparence_ets;
22
+
23
+ /**
24
+ * Surface sud équivalente représentant les apports solaires indirects dans le logement
25
+ */
26
+ let baies = ets.baie_ets_collection.baie_ets;
27
+
28
+ if (!Array.isArray(baies)) {
29
+ baies = [baies];
30
+ }
31
+
32
+ /**
33
+ * Surface sud équivalente représentant l’impact des apports solaires associés au rayonnement solaire
34
+ * traversant directement l’espace tampon pour arriver dans la partie habitable du logement
35
+ * Calculés pour les baies vitrées qui séparent le logement de l'espace tampon
36
+ * @type {number}
37
+ */
38
+ const Ssdj =
39
+ T *
40
+ baiesAdjVeranda.reduce((acc, bv) => {
22
41
  /**
23
42
  * Surface sud équivalente représentant l’impact des apports solaires associés au rayonnement solaire
24
43
  * traversant directement l’espace tampon pour arriver dans la partie habitable du logement
25
44
  * Calculés pour les baies vitrées qui séparent le logement de l'espace tampon
26
45
  * @type {number}
27
46
  */
28
- const Ssdj = getBaiesSurEspaceTampon(bv_list).reduce((acc, bv) => {
29
- return acc + T * getSsd(bv, zc, mois, bv.donnee_intermediaire.sw);
30
- }, 0);
31
-
32
- /**
33
- * Surface sud équivalente représentant les apports solaires indirects dans le logement
34
- */
35
- let baies = ets.baie_ets_collection.baie_ets;
36
-
37
- if (!Array.isArray(baies)) {
38
- baies = [baies];
39
- }
40
-
41
- const Sstj = baies.reduce((acc, bv) => {
42
- return acc + getSsd(bv, zc, mois, 0.8 * T + 0.024);
43
- }, 0);
44
-
45
- /**
46
- * Surface sud équivalente représentant l’impact des apports solaires associés au rayonnement
47
- * solaire entrant dans la partie habitable du logement après de multiples réflexions dans l’espace tampon solarisé
48
- * @type {number}
49
- */
50
- const Ssindj = Sstj - Ssdj;
51
-
52
- /**
53
- * Impact de l’espace tampon solarisé sur les apports solaires à travers les baies vitrées qui séparent le logement
54
- * de l'espace tampon
55
- * @type {number}
56
- */
57
- const SseVerandaj = Ssdj + Ssindj * bver;
58
-
59
- return acc + SseVerandaj;
60
- }
61
-
62
- // Pour les fenêtres qui ne donnent pas sur l'extérieur, pas de surface sud équivalente
63
- if (typeAdjacence !== 1) {
64
- return acc;
65
- }
47
+ return acc + getSsd(bv, zc, mois, bv.donnee_intermediaire.sw);
48
+ }, 0);
49
+
50
+ /**
51
+ * 6.3 Traitement des espaces tampons solarisés
52
+ * 10 - 'espace tampon solarisé (véranda,loggia fermée)'
53
+ */
54
+ const Sstj = baies.reduce((acc, bv) => {
55
+ return acc + getSsd(bv, zc, mois, 0.8 * T + 0.024);
56
+ }, 0);
66
57
 
58
+ /**
59
+ * Surface sud équivalente représentant l’impact des apports solaires associés au rayonnement
60
+ * solaire entrant dans la partie habitable du logement après de multiples réflexions dans l’espace tampon solarisé
61
+ * @type {number}
62
+ */
63
+ const ssIndj = Sstj - Ssdj;
64
+
65
+ /**
66
+ * Impact de l’espace tampon solarisé sur les apports solaires à travers les baies vitrées qui séparent le logement
67
+ * de l'espace tampon
68
+ * @type {number}
69
+ */
70
+ const SseVerandaj = Ssdj + ssIndj * bver;
71
+
72
+ const sseBaiesExt = baiesAdjExt.reduce((acc, bv) => {
67
73
  return acc + getSsd(bv, zc, mois, bv.donnee_intermediaire.sw);
68
74
  }, 0);
69
- return ssej;
70
- }
71
75
 
72
- /**
73
- * Retourne la liste des baies vitrées qui donnent sur l'espace tampon solarisé
74
- * @param baiesVitrees {BaieVitreeItem[]}
75
- */
76
- function getBaiesSurEspaceTampon(baiesVitrees) {
77
- return baiesVitrees.filter((bv) => bv.donnee_entree.enum_type_adjacence_id === '10');
76
+ return sseBaiesExt + SseVerandaj;
78
77
  }
79
78
 
80
79
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open3cl/engine",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Open Source 3CL-DPE engine",
5
5
  "main": "index.js",
6
6
  "directories": {