StatFEM
Module description
StatFEMEUCLID.Inverse — Module
InverseThis submodule contains functions for solving inverse problems to identify material parameters.
Structs
StatFEMEUCLID.Inverse.AikaikeInformationCriterion — Type
struct AikaikeInformationCriterionOne choice of information criterion for model selection (short form: AIC) See the implementation of evaluate_criterion for the formula
StatFEMEUCLID.Inverse.BayesianInformationCriterion — Type
struct BayesianInformationCriterionOne choice of information criterion for model selection (short form: BIC) See the implementation of evaluate_criterion for the formula
StatFEMEUCLID.Inverse.InverseModelConfig — Type
struct InverseModelConfig{T}Common combination of arguments needed for inverse models, so they are combined in a struct.
Fields
fem_model::HTTPModel- model providing the FEM evaluation (F,κ)->uresidual_model::HTTPModel- model providing the FEM residualconfig::Dict{String,Any}- model configμ::T- mean traction
Functions
StatFEMEUCLID.Inverse.EUCLID — Method
EUCLID(
model_config::InverseModelConfig{T},
lasso_sweep::Vector{T},
κ_0::Vector{T},
sensor_set::AbstractSensorSet{T},
measurements::Vector{T}
;
optimizer::Optim.AbstractOptimizer=BFGS(linesearch = LineSearches.BackTracking()),
optimizer_options::Optim.Options = Optim.Options(),
upper=NaN,
lower=NaN,
threshold::T = 1.0e-9,
selection_criterion::Type{C} = BIC,
f_penalty::Function=κ::Vector{T}->0,
g_penalty::Function=(G,κ)->nothing,
show_info::Bool=false,
use_gradient=false
) where {T <: Real, C <: AbstractModelSelectionCriterion}Perform the Efficient Unsupervised Constitutive Law identification & Discovery (EUCLID). Internally, this performs a LASSO regularization along the given lasso_sweep.
StatFEMEUCLID.Inverse.create_residual_objective — Method
create_residual_objective(residual_model::HTTPModel, fem_solution::Vector{T}; config::Dict{String, Any} = empty_config()) where {T <: AbstractFloat}Returns an optimization objective w.r.t. the material parameters of a model.
StatFEMEUCLID.Inverse.create_residual_objective_and_gradient — Method
create_residual_objective_and_gradient(residual_model::HTTPModel, fem_solution::Vector{T}; config::Dict{String, Any} = empty_config()) where {T <: AbstractFloat}Returns an optimization objective w.r.t. the material parameters κ of a model as well as its derivative wr.t. κ
StatFEMEUCLID.Inverse.evaluate_criterion — Method
evaluate_criterion(n_κ::Int64, n_sensor::Int64, rmse::Float64, ::Type{AbstractModelSelectionCriterion})Evaluate the model selection criterion
StatFEMEUCLID.Inverse.evaluate_criterion — Method
evaluate_criterion(n_κ::Int64, n_sensor::Int64, rmse::Float64, ::Type{AikaikeInformationCriterion})Evaluate the model selection criterion based on AIC
StatFEMEUCLID.Inverse.evaluate_criterion — Method
evaluate_criterion(n_κ::Int64, n_sensor::Int64, rmse::Float64, criterion::Type{BayesianInformationCriterion})Evaluate the model selection criterion based on BIC
StatFEMEUCLID.Inverse.model_rmse — Method
model_rmse(u_κ,sensor_set,measurements)Calculate the RMSE (root mean squared error) between a given FEM solution u and a set of measurements.
StatFEMEUCLID.Inverse.model_rmse — Method
model_rmse(fem_model::HTTPModel,μ_T::T,server_config::Dict{String,Any},κ::Vector{T},sensor_set,measurements::Vector{T}) where {T}Calculate the RMSE (root mean squared error) between an FEM solution for given set of material parameters κ and a given set of measurements.