@@ -337,22 +337,55 @@ class HydroSystem {
337337 double GetRIRFval (int row, int col, int st);
338338
339339 // ─────────────────────────────────────────────────────────────────────────
340- // Radiation Convolution Configuration
340+ // Radiation Configuration
341341 // ─────────────────────────────────────────────────────────────────────────
342342 // These types are defined in the radiation module (single source of truth):
343- // - hydrochrono::hydro::RadiationConvolutionMode (enum)
343+ // - hydrochrono::hydro::RadiationMethod (enum: kRirfConvolution, kStateSpace)
344+ // - hydrochrono::hydro::RadiationConvolutionMode (enum: Baseline, TaperedDirect)
344345 // - hydrochrono::hydro::TaperedDirectOptions (struct)
345- // See: src/hydro/force_components/radiation_component.h
346- // src/hydro/radiation/radiation_rirf_processing.h
346+ // - hydrochrono::hydro::StateSpaceOptions (struct)
347+ // See: include/hydroc/radiation/radiation_types.h
348+
349+ /* *
350+ * @brief Set the radiation damping calculation method.
351+ *
352+ * Selects the overall approach:
353+ * - kRirfConvolution: Direct RIRF convolution (default)
354+ * - kStateSpace: State-space exponential approximation
355+ *
356+ * @note State-space method not yet implemented. This value is stored but
357+ * currently has no effect; runtime always uses RIRF convolution.
358+ *
359+ * @param method RadiationMethod::kRirfConvolution or ::kStateSpace
360+ */
361+ void SetRadiationMethod (hydrochrono::hydro::RadiationMethod method);
362+
363+ /* *
364+ * @brief Set options for state-space radiation approximation.
365+ *
366+ * Only applies when RadiationMethod == kStateSpace.
367+ *
368+ * @note State-space method not yet implemented. Options stored for future use.
369+ *
370+ * @param opts StateSpaceOptions struct with max_order and r2_threshold
371+ */
372+ void SetStateSpaceOptions (const hydrochrono::hydro::StateSpaceOptions& opts);
347373
348374 /* *
349375 * @brief Set the radiation convolution mode. Default is Baseline.
376+ *
377+ * Only applies when RadiationMethod == kRirfConvolution.
378+ *
350379 * @param mode RadiationConvolutionMode::Baseline or ::TaperedDirect
351380 */
352381 void SetRadiationConvolutionMode (hydrochrono::hydro::RadiationConvolutionMode mode);
353382
354383 /* *
355384 * @brief Set options for TaperedDirect preprocessing.
385+ *
386+ * Only applies when RadiationMethod == kRirfConvolution and
387+ * RadiationConvolutionMode == TaperedDirect.
388+ *
356389 * @param opts TaperedDirectOptions struct with smoothing, tapering, and export settings
357390 */
358391 void SetTaperedDirectOptions (const hydrochrono::hydro::TaperedDirectOptions& opts);
@@ -468,8 +501,16 @@ class HydroSystem {
468501 // Profiling enable flag: stored here because chrono_coupler_ is created lazily.
469502 bool profiling_enabled_ = false ;
470503
471- // Convolution kernel preprocessing (optional)
472- // Uses canonical types from radiation module (single source of truth)
504+ // ─────────────────────────────────────────────────────────────────────────
505+ // Radiation configuration (uses canonical types from radiation module)
506+ // ─────────────────────────────────────────────────────────────────────────
507+
508+ // Top-level method selection (state-space not yet implemented)
509+ hydrochrono::hydro::RadiationMethod radiation_method_ =
510+ hydrochrono::hydro::RadiationMethod::kRirfConvolution ;
511+ hydrochrono::hydro::StateSpaceOptions state_space_opts_;
512+
513+ // Convolution kernel preprocessing (only applies when method == kRirfConvolution)
473514 hydrochrono::hydro::RadiationConvolutionMode convolution_mode_;
474515 bool rirf_processed_ready_ = false ;
475516 std::vector<Eigen::Tensor<double , 3 >> rirf_processed_; // per body [dof x col x step]
0 commit comments