commit f0e7b9d1cfadab50345499e24adb2e179798925d
parent 5330b9a24aa257165481cc9d4f8ae36cf2b3f57e
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 24 Apr 2024 18:50:15 +0200
Make the programmable radiative environment time-dependent
Add time as an input parameter to the properties of the programmable
radiative environment, so that it can vary not only according to the
direction of the path that reaches it, but also according to when it is
reached.
Diffstat:
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/stardis-prog-properties.h.in b/src/stardis-prog-properties.h.in
@@ -649,14 +649,16 @@ stardis_spherical_source_diffuse_radiance
/* Retrieve the temperature of radiative paths that reach infinity */
STARDIS_API double
stardis_radiative_env_temperature
- (const double dir[3],
+ (const double time, /* [s] */
+ const double dir[3],
void* data);
/* Recover the reference temperature of radiative paths that reach
* infinity. It is used to linearize radiative transfer */
STARDIS_API double
stardis_radiative_env_reference_temperature
- (const double dir[3],
+ (const double time, /* [s] */
+ const double dir[3],
void* data);
/* Computes the expected temperature range for this radiative
diff --git a/src/stardis-radiative-env.c b/src/stardis-radiative-env.c
@@ -85,7 +85,7 @@ radenv_prog_get_temperature
const struct radiative_env_prog* radenv = NULL;
radenv = *((const struct radiative_env_prog* const*)sdis_data_cget(data));
- return radenv->temperature(ray->dir, radenv->data);
+ return radenv->temperature(ray->time, ray->dir, radenv->data);
}
static double
@@ -96,7 +96,7 @@ radenv_prog_get_reference_temperature
const struct radiative_env_prog* radenv = NULL;
radenv = *((const struct radiative_env_prog* const*)sdis_data_cget(data));
- return radenv->reference_temperature(ray->dir, radenv->data);
+ return radenv->reference_temperature(ray->time, ray->dir, radenv->data);
}
static res_T
diff --git a/src/stardis-radiative-env.h b/src/stardis-radiative-env.h
@@ -61,12 +61,14 @@ struct radiative_env_prog {
double
(*temperature)
- (const double dir[3],
+ (const double time, /* [s] */
+ const double dir[3],
void* data);
double
(*reference_temperature)
- (const double dir[3],
+ (const double time, /* [s] */
+ const double dir[3],
void* data);
double*