65 throw InvalidArgument(
"SweepResult::objective: solve did not converge at index " +
68 return solutions[i]->value(objective_expr);
78 if (sol.has_value()) {
85 if (sol.has_value()) {
86 result(j++) = sol->value(var);
97 std::vector<size_t> converged_indices;
98 for (
size_t i = 0; i <
solutions.size(); ++i) {
100 converged_indices.push_back(i);
103 if (converged_indices.empty()) {
106 auto first =
solutions[converged_indices[0]]->value(var);
107 NumericMatrix result(first.size(),
static_cast<int>(converged_indices.size()));
108 result.col(0) = first;
109 for (
size_t j = 1; j < converged_indices.size(); ++j) {
110 result.col(
static_cast<int>(j)) =
solutions[converged_indices[j]]->value(var);
Custom exception hierarchy for Janus framework.
Solution wrapper for extracting optimized values.
Input validation failed (e.g., mismatched sizes, invalid parameters).
Definition JanusError.hpp:31
Definition Diagnostics.hpp:19
JanusVector< SymbolicScalar > SymbolicVector
Eigen vector of MX elements.
Definition JanusTypes.hpp:72
JanusMatrix< NumericScalar > NumericMatrix
Eigen::MatrixXd equivalent.
Definition JanusTypes.hpp:66
JanusVector< NumericScalar > NumericVector
Eigen::VectorXd equivalent.
Definition JanusTypes.hpp:67
casadi::MX SymbolicScalar
CasADi MX symbolic scalar.
Definition JanusTypes.hpp:70
Result of a parametric sweep.
Definition OptiSweep.hpp:32
bool all_converged
Whether all solves converged successfully.
Definition OptiSweep.hpp:43
NumericVector values(const SymbolicScalar &var) const
Extract scalar variable values across converged sweep points.
Definition OptiSweep.hpp:74
NumericMatrix values(const SymbolicVector &var) const
Extract vector variable values across converged sweep points.
Definition OptiSweep.hpp:95
std::vector< double > param_values
Parameter values that were swept.
Definition OptiSweep.hpp:34
std::vector< bool > converged
Per-point convergence status (true = converged).
Definition OptiSweep.hpp:46
std::vector< std::optional< OptiSol > > solutions
Solutions at each parameter value (nullopt for failed solves).
Definition OptiSweep.hpp:37
std::vector< std::string > errors
Error messages for failed points (empty string if converged).
Definition OptiSweep.hpp:49
double objective(size_t i, const SymbolicScalar &objective_expr) const
Get objective value at sweep index.
Definition OptiSweep.hpp:60
std::vector< int > iterations
Number of iterations for each solve.
Definition OptiSweep.hpp:40
size_t size() const
Number of sweep points.
Definition OptiSweep.hpp:53