You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Added `BUILD_TESTS` CMake option to conditionally build test executables instead of building them by default
* Test file renamed to `run_tests.sh`, and now runs tests without needing any of the sample projects (`samples/`)
* Deleted most of the `samples/[*]_selftest` directories, as they are no longer needed for testing. `context_selftest`, `energybalance_selftest`, and `radiation_selftest` were left because they are referenced in YouTube tutorials
* Added compiler warning suppression for third-party libraries (zlib, libpng, libjpeg) to reduce build noise
* Helios now builds with OpenMP parallelization enabled by default if available
## Context
- Added automatic filtering of zero-area primitives in addSphere(), addTube(), addDisk(), addCone(), and other geometric construction methods
- Improved tube generation robustness by handling degenerate cross products when axis vectors are parallel or near-vertical
- Added minimum size validation (1e-6) for patch primitives to prevent numerical precision issues
- Added debug warnings for malformed triangles with near-zero area
- Deprecated `Context::getPrimitiveDataType(uint, const char*)` and `Context::getObjectDataType(uint, const char*)` in favor of `Context::getPrimitiveDataType(const char*)` and `Context::getObjectDataType(const char*)`
- Added new `fzero()` function overload that returns convergence status
- Implemented linspace utility functions in `global.h`/`global.cpp` for float, vec2, vec3, and vec4 types
## Plant Architecture
- Fixed leaf prototype scale validation to ensure minimum positive values
- Updated petiole handling to preserve intended leaf generation
## Radiation
- Enhanced camera image processing pipeline with spectral correction and improved white balance workflow
- Added Gray Edge white balance algorithm implementation for color constancy
- Fixed gamma compression application in image processing pipeline
- Improved gain adjustment and histogram equalization for better image quality
- Substantially refactored `RadiationModel::updateGeometry()` and `RadiationModel::updateRadiativeProperties()` methods for improved efficiency:
- Replaced O(n) std::find operations with O(1) unordered_set lookups in geometry updates
- Added spectral integration caching to avoid redundant computations
- Implemented OpenMP parallelization for radiative property calculations
- Optimized map access patterns and reduced memory allocations
## Photosynthesis
- Improved temporal continuity in Farquhar model by initializing Ci with previous timestep values
- Enhanced convergence behavior with better initial guesses for intercellular CO2 concentration
## Stomatal Conductance
- Enhanced Ball-Woodrow-Berry model convergence with improved initial surface vapor pressure estimates
- Increased numerical solver tolerance and iteration limits for better stability in vapor pressure calculations
## Project Builder
- Removed `linspace` function from `ProjectBuilder.cpp` since it is now available in the Helios core
- `CMakeLists.txt` was missing the conditional include guards for the canopy generator plug-in, which would cause a linker error if the plug-in was not built
//! Use Newton-Raphson method to find the zero of a function with convergence status
1005
+
/**
1006
+
* \param[in] function Function to be evaluated. The function should take as its first argument the value at which the function should be evaluated, as second argument any function arguments.
1007
+
* \param[in] variables Vector of function arguments
1008
+
* \param[in] parameters Pointer to any additional parameters needed by the function
1009
+
* \param[in] init_guess Initial guess for the zero of the function.
1010
+
* \param[out] converged Boolean indicating whether the solver converged successfully.
1011
+
* \param[in] err_tol [optional] Maximum allowable relative error in solution.
1012
+
* \param[in] max_iterations [optional] Maximum number of iterations to allow before exiting solver.
1013
+
* \return Value of function zero (best estimate even if not converged).
0 commit comments