StatFEM

Module description

StatFEMEUCLID.Inverse — Module
Inverse

This submodule contains functions for solving inverse problems to identify material parameters.

source

Structs

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,κ)->u
  • residual_model::HTTPModel - model providing the FEM residual
  • config::Dict{String,Any} - model config
  • μ::T - mean traction
source

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.

source
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.

source
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. κ

source
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.

source
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.

source