Identification
Functions for material parameter identification using optimization algorithms (genetic algorithms, gradient-based methods, etc.).
-
arma::mat doe_uniform(const int&, const int&, const std::vector<parameters>&)
-
arma::mat doe_uniform_limit(const int&, const int&, const std::vector<parameters>&)
-
arma::mat doe_random(const int&, const int&, const std::vector<parameters>&)
-
void gen_initialize(generation&, int&, int&, int&, const int&, const int&, const std::vector<parameters>&, const double&)
-
void run_identification(const std::string&, const int&, const int&, const int&, const int&, const int&, int&, int&, const int&, const int&, const int& = 6, const double& = 1.E-12, const std::string& = "data/", const std::string& = "keys/", const std::string& = "results/", const std::string& = "material.dat", const std::string& = "id_params.txt", const std::string& = "simul.txt", const double& = 5, const double& = 0.01, const double& = 0.001, const double& = 10, const double& = 0.01)
-
void genetic(generation&, generation&, int&, const double&, const double&, const std::vector<parameters>&)
-
void to_run(generation&, generation&, generation&, const double&, const std::vector<parameters>&)
Genrun creation.
-
void find_best(generation&, generation&, const generation&, const generation&, const generation&, const int&, const int&, int&)
-
void write_results(std::ofstream&, const std::string &outputfile, const generation&, const int&, const int&, const int&)
-
arma::vec calcV(const std::vector<opti_data>&, const std::vector<opti_data>&, const int&, const int&)
This function constructs the vector of exp/num.
-
void calcS(arma::mat&, const arma::vec&, const arma::vec&, const int&, const arma::vec&)
This function constructs the sensitivity matrix.
-
arma::Col<int> checkS(const arma::mat&)
This function checks the sensitivity matrix. This ensures that if a parameter didn’t modify at all the result, the sensibility matrix doesn’t have a column of “0” (inversion) issues
-
arma::mat reduce_S(const arma::mat&, const arma::Col<int>&)
-
double calcC(const arma::vec&, arma::vec&, const arma::vec&)
This function computes the Cost function (Square differnces) from the components of experimental values and numerically evaluated values.
-
arma::mat Hessian(const arma::mat&, const arma::vec&)
-
arma::mat diagJtJ(const arma::mat&)
-
arma::vec bound_min(const int&, const arma::vec&, const std::vector<parameters>&, const double&, const double&)
-
arma::vec bound_max(const int&, const arma::vec&, const std::vector<parameters>&, const double&, const double&)
-
arma::vec dbound_min(const int&, const arma::vec&, const std::vector<parameters>&, const double&, const double&)
-
arma::vec dbound_max(const int&, const arma::vec&, const std::vector<parameters>&, const double&, const double&)
-
arma::vec calcW(const int&, const int&, const arma::Col<int>&, const arma::vec&, const std::vector<arma::vec>&, const std::vector<opti_data>&, const std::vector<opti_data>&)
-
arma::vec G_cost(const arma::mat &S, const arma::vec &W, const arma::vec &Dv, const arma::vec &L_min, const arma::vec &L_max)
-
arma::mat LevMarq(const arma::mat &H, const double &lambdaLM, const arma::vec &L_min, const arma::vec &L_max)
Levenberg-Marquardt matrix, with bounds.
-
arma::vec calcDp(const arma::mat&, const arma::vec&, const arma::vec&, const arma::vec&, const arma::vec&, const std::vector<parameters>&, const double&, const double&, const double&, const int&, arma::Col<int>&)
-
void read_parameters(const int&, std::vector<parameters>&)
-
void read_constants(const int&, std::vector<constants>&, const int&)
-
void read_data_exp(const int&, std::vector<opti_data>&)
-
void read_data_weights(const int&, arma::Col<int>&, arma::vec&, std::vector<arma::vec>&, std::vector<opti_data>&, const std::vector<opti_data>&)
-
void read_data_num(const int&, const std::vector<opti_data>&, std::vector<opti_data>&)
-
void ident_essentials(int&, int&, int&, const std::string&, const std::string&)
-
void ident_control(int&, int&, int&, int&, int&, int&, int&, double&, double&, double&, double&, double&, double&, const std::string&, const std::string&)
-
void read_gen(int&, arma::mat&, const int&)
-
void copy_parameters(const std::vector<parameters>&, const std::string&, const std::string&)
-
void copy_constants(const std::vector<constants>&, const std::string&, const std::string&)
-
void apply_parameters(const std::vector<parameters>&, const std::string&)
-
void apply_constants(const std::vector<constants>&, const std::string&)
-
void launch_solver(const generation&, const int&, std::vector<parameters>&, std::vector<constants>&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&)
-
void launch_odf(const generation&, std::vector<parameters>&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&)
-
void launch_func_N(const generation&, const int&, std::vector<parameters>&, std::vector<constants>&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&)
-
void run_simulation(const std::string&, const individual&, const int&, std::vector<parameters>&, std::vector<constants>&, std::vector<opti_data>&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&)
-
double calc_cost(const arma::vec&, arma::vec&, const arma::vec&, const std::vector<opti_data>&, const std::vector<opti_data>&, const int&, const int&)
-
arma::mat calc_sensi(const individual&, generation&, const std::string&, const int&, const int&, std::vector<parameters>&, std::vector<constants>&, arma::vec&, std::vector<opti_data>&, std::vector<opti_data>&, const std::string&, const std::string&, const std::string&, const std::string&, const int&, const arma::vec&, const std::string&)
-
class constants
- #include <constants.hpp>
Public Functions
-
constants()
-
constants(const int&, const int&)
-
constants(const int&, const double&, const arma::vec&, const std::string&, const int&, const std::vector<std::string>&)
-
~constants()
-
inline int dimfiles() const
-
void update(const int&)
-
void resize(const int&, const int&)
-
constants()
-
class generation
- #include <generation.hpp>
Public Functions
-
generation()
Default constructor.
-
generation(const int &npop, const int &nparam, int &id_start, const double &lambda = 0.)
Constructor with population size and parameter count.
- Parameters:
npop – Number of individuals
nparam – Number of parameters per individual
id_start – Starting id for individuals
lambda – Initial lambda value (default: 0.0)
-
generation(const generation &gen)
Copy constructor.
- Parameters:
gen – Generation to copy
-
~generation()
Destructor.
-
inline int size() const
Get the number of individuals in the population.
- Returns:
Population size
-
void construct(const int &npop, const int &nparam, int &id_start, const double &lambda = 0.)
Construct the population with given size and parameters.
- Parameters:
npop – Number of individuals
nparam – Number of parameters
id_start – Starting id
lambda – Initial lambda value
-
void classify()
Classify individuals by cost (fitness).
-
void newid(int &id_start)
Assign new unique ids to individuals.
- Parameters:
id_start – Starting id
-
void destruct()
Destroy the population (clear individuals).
-
virtual generation &operator=(const generation &gen)
Assignment operator.
- Parameters:
gen – Generation to assign
- Returns:
Reference to this object
Public Members
-
std::vector<individual> pop
Population of individuals.
Friends
-
friend std::ostream &operator<<(std::ostream &os, const generation &gen)
Stream output operator.
- Parameters:
os – Output stream
gen – Generation to output
- Returns:
Output stream
-
generation()
-
class individual
- #include <individual.hpp>
Class representing an individual in a genetic algorithm for parameter identification.
An individual encodes a candidate solution (set of parameters) and its associated cost (fitness). Used in evolutionary algorithms for model calibration or optimization.
The class stores:
Parameter vector (p)
Cost function value (cout)
Unique identifier (id) and rank in the population
Lambda: step size or regularization parameter
Public Functions
-
individual()
Default constructor.
-
individual(const int &np, const int &id, const double &lambda)
Constructor with number of parameters, id, and lambda.
- Parameters:
np – Number of parameters
id – Unique identifier
lambda – Step or regularization parameter
-
individual(const individual &ind)
Copy constructor.
- Parameters:
ind – Individual to copy
-
~individual()
Destructor.
-
void construct()
Allocate and initialize parameter vector.
-
virtual individual &operator=(const individual &ind)
Assignment operator.
- Parameters:
ind – Individual to assign
- Returns:
Reference to this object
Public Members
-
int np
Number of parameters.
-
double cout
Cost function value (fitness)
-
int id
Unique identifier.
-
int rank
Rank in the population.
-
arma::vec p
Parameter vector.
-
double lambda
Step or regularization parameter.
Friends
-
friend std::ostream &operator<<(std::ostream &os, const individual &ind)
Stream output operator.
- Parameters:
os – Output stream
ind – Individual to output
- Returns:
Output stream
-
class opti_data
- #include <opti_data.hpp>
Public Functions
-
opti_data()
-
opti_data(int, int)
-
opti_data(std::string, int, int, int, int, int)
-
virtual ~opti_data()
-
inline int dimdata() const
-
inline int diminfo() const
-
void constructc_data()
-
void constructdata()
-
void import(std::string, int = 0)
-
opti_data()
-
class parameters
- #include <parameters.hpp>
Public Functions
-
parameters()
-
parameters(const int&, const double&, const double&)
-
parameters(const int&, const double&, const double&, const std::string&, const int&, const std::vector<std::string>&)
-
parameters(const parameters&)
-
~parameters()
-
inline int dimfiles() const
-
void update(const double&)
-
void resize(const int&)
-
virtual parameters &operator=(const parameters&)
Public Members
-
int number
-
double value
-
double min_value
-
double max_value
-
std::string key
-
int ninput_files
-
std::vector<std::string> input_files
Friends
-
friend std::ostream &operator<<(std::ostream&, const parameters&)
-
parameters()