TanabeLab / JOS-3

MIT License
27 stars 11 forks source link

JOS-3 Solar radiation heat gain #12

Open adibantwal opened 2 years ago

adibantwal commented 2 years ago

Hi, hope you're well.

I am exploring the JOS-3 model, and I notice that the code does not seem to consider the solar radiation gain on an occupant. There is no input for this option. Can you comment on this and correct me if I'm wrong?

Thanks in advance, Aditya

yoshito-takahashi commented 2 years ago

Hi. I'm sorry for replying late to you. If you have the solar radiation heat gain at the skin in each body segments [W], please use the below function.

import jos3 model = jos3.JOS3() model._set_ex_q("skin", solar_radiation_heat_gain_at_the_skin)

In the report, I showed how to calculate the solar radiation heat gain at the skin when users have the data of upper and lower and, longwave and shortwave solar radiation data. However, this may be rare case. So, in the code, I made the function to input heat gain at the tissue directly.

Thank you.

adibantwal commented 2 years ago

Thank you for your response. I am able to use this function and it works well.

But how would we apply this to each body part? As this function is applying it to the whole skin

adibantwal commented 2 years ago

Hi, I think the function is not working properly

Case 1: No solar radiation on the human: no_solar.txt

Output: Figure_1

Case 2: 100 W Solar radiation: solar.txt

Output: Figure_2

As you can see, in both cases, the mean skin temperature is the same Can you please help with this?

Thanks in advance, Aditya Bantwal

yoshito-takahashi commented 2 years ago

Hi

OK, I will check it.

adibantwal commented 2 years ago

Thanks, please let me know what the issue is.

jakaortar commented 1 year ago

Hi, I would suggest to add a special function just for (SW solar) radiation for different body parts. You need to

  1. Put ...

    @property
    def SolarRad(self):
        """
        Getter
    
        Returns
        -------
        SolarRad : numpy.ndarray (18,)
            Solar radiation [W].
        """
        return self._solarRad
    @SolarRad.setter
    def SolarRad(self, inp):
        self._solarRad = _to17array(inp)

... to JOS3 class definition (in jos3.py).

2. self._solarRad = np.zeros(18) To initialization of JOS3 class (below # Default values of input condition)

3.

 # Extra solar gain [W]
 arrQ[INDEX["skin"]] += self._solarRad.copy()

just after line: arrQ += self.ex_q.copy()

THAT'S ALL! You define solar radiation for each body part with: model.SolarRad = x (x is int), one value for all or model.SolarRad = array, list (18 values, each for one body part)

Beware:

Hope it helps. I would be glad to hear what authors of JOS-3 think of that implementation.