Model Factory - Functions

Index

Models

PeriLab.Solver_Manager.Model_Factory.add_modelFunction
add_model(datamanager::Module, model_name::String)

Includes the models in the datamanager and checks if the model definition is correct or not.

Arguments

  • datamanager::Module: Datamanager
  • model_name::String: The block nodes

Returns

  • datamanager::Module: Datamanager
source
PeriLab.Solver_Manager.Model_Factory.compute_modelsMethod
compute_models(datamanager::Module, block_nodes::Dict{Int64,Vector{Int64}}, dt::Float64, time::Float64, options::Vector{String}, synchronise_field, to::TimerOutput)

Computes the models models

Arguments

  • datamanager::Module: The datamanager
  • block_nodes::Dict{Int64,Vector{Int64}}: The block nodes
  • dt::Float64: The time step
  • time::Float64: The current time of the solver
  • options::Vector{String}: The options
  • synchronise_field: The synchronise field
  • to::TimerOutput: The timer output

Returns

  • datamanager: The datamanager
source
PeriLab.Solver_Manager.Model_Factory.get_block_model_definitionFunction
get_block_model_definition(params::Dict, block_id_list::Int64, prop_keys::Vector{String}, properties)

Get block model definition.

Special case for pre calculation. It is set to all blocks, if no block definition is defined, but pre calculation is.

Arguments

  • params::Dict: Parameters.
  • block_id_list::Vector{Int64}: List of block id's.
  • prop_keys::Vector{String}: Property keys.
  • properties: Properties function.

Returns

  • properties: Properties function.
source
PeriLab.Solver_Manager.Model_Factory.init_modelsMethod
init_models(params::Dict, datamanager::Module, block_nodes::Dict{Int64,Vector{Int64}}, solver_options::Dict)

Initialize models

Arguments

  • params::Dict: Parameters.
  • datamanager::Module: Datamanager.
  • block_nodes::Dict{Int64,Vector{Int64}}: block nodes.
  • solver_options::Dict: Solver options.

Returns

  • datamanager::Data_Manager: Datamanager.
source
PeriLab.Solver_Manager.Model_Factory.read_propertiesMethod
read_properties(params::Dict, datamanager::Module, material_model::Bool)

Read properties of material.

Arguments

  • params::Dict: Parameters.
  • datamanager::Data_Manager: Datamanager.
  • material_model::Bool: Material model.

Returns

  • datamanager::Data_Manager: Datamanager.
source
PeriLab.Solver_Manager.Model_Factory.set_heat_capacityMethod
set_heat_capacity(params::Dict, block_nodes::Dict, heat_capacity::Vector{Float64})

Sets the heat capacity of the nodes in the dictionary.

Arguments

  • params::Dict: The parameters
  • block_nodes::Dict: The block nodes
  • heat_capacity::Vector{Float64}: The heat capacity array

Returns

  • heat_capacity::SubArray: The heat capacity array
source

Additive

PeriLab.Solver_Manager.Model_Factory.Additive.compute_modelMethod
compute_model(datamanager::Module, nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64,to::TimerOutput,)

Computes the addtive models

Arguments

  • datamanager::Module: The datamanager
  • nodes::AbstractVector{Int64}: The nodes
  • model_param::Dict: The model parameters
  • block::Int64: The block
  • time::Float64: The current time
  • dt::Float64: The time step

Returns

  • datamanager::Module: The datamanager
source
PeriLab.Solver_Manager.Model_Factory.Additive.init_modelMethod
init_model(datamanager::Module, nodes::AbstractVector{Int64}, block::Int64)

Initialize the additive models.

Arguments

  • datamanager::Module: The data manager module where the additive model will be initialized.
  • nodes::AbstractVector{Int64}: Nodes for the additive model.
  • block::Int64: Block identifier for the additive model.

Returns

  • datamanager: The modified data manager module with the initialized additive model.

Example

```julia datamanager = initmodel(mydata_manager, [1, 2, 3], 1)

source

Damage

PeriLab.Solver_Manager.Model_Factory.Damage.compute_modelMethod
compute_model(datamanager::Module, nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64,to::TimerOutput,)

Computes the damage model

Arguments

  • datamanager::Module: The datamanager
  • nodes::AbstractVector{Int64}: The nodes
  • model_param::Dict: The model parameters
  • block::Int64: The block
  • time::Float64: The current time
  • dt::Float64: The time step

Returns

  • datamanager::Module: The datamanager
source
PeriLab.Solver_Manager.Model_Factory.Damage.damage_indexMethod
damage_index(datamanager,::Union{SubArray, Vector{Int64})

Function calculates the damage index related to the neighborhood volume for a set of corresponding nodes. The damage index is defined as damaged volume in relation the neighborhood volume. damageIndex = sumi (brokenBondsi * volume_i) / volumeNeighborhood

Arguments

  • datamanager::Data_Manager: all model data
  • nodes::AbstractVector{Int64}: corresponding nodes to this model
source
PeriLab.Solver_Manager.Model_Factory.Damage.init_modelMethod
init_model(datamanager::Module, nodes::AbstractVector{Int64}, block::Int64)

Initialize the damage models.

Arguments

  • datamanager::Module: The data manager module where the degradation model will be initialized.
  • nodes::AbstractVector{Int64}: Nodes for the degradation model.
  • block::Int64: Block identifier for the degradation model.

Returns

  • datamanager: The modified data manager module with the initialized degradation model.

Example

```julia datamanager = initmodel(mydata_manager, [1, 2, 3], 1)

source

Degradation

PeriLab.Solver_Manager.Model_Factory.Degradation.compute_modelMethod
compute_model(datamanager::Module, nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64,to::TimerOutput,)

Computes the degradation models

Arguments

  • datamanager::Module: The datamanager
  • nodes::AbstractVector{Int64}: The nodes
  • model_param::Dict: The model parameters
  • block::Int64: The block
  • time::Float64: The current time
  • dt::Float64: The time step

Returns

  • datamanager::Module: The datamanager
source
PeriLab.Solver_Manager.Model_Factory.Degradation.init_modelMethod
init_model(datamanager::Module, nodes::AbstractVector{Int64}, block::Int64)

Initialize a degradation models.

Arguments

  • datamanager::Module: The data manager module where the degradation model will be initialized.
  • nodes::AbstractVector{Int64}: Nodes for the degradation model.
  • block::Int64: Block identifier for the degradation model.

Returns

  • datamanager: The modified data manager module with the initialized degradation model.

Example

```julia datamanager = initmodel(mydata_manager, [1, 2, 3], 1)

source

Material

PeriLab.Solver_Manager.Model_Factory.Material.compute_modelMethod
compute_model(datamanager::Module, nodes::AbstractVector{Int64}, model_param::Dict{String,Any}, block::Int64, time::Float64, dt::Float64,to::TimerOutput,)

Computes the material models

Arguments

  • datamanager::Module: The datamanager
  • nodes::AbstractVector{Int64}: The nodes
  • model_param::Dict{String,Any}: The model parameters
  • block::Int64: The block
  • time::Float64: The current time
  • dt::Float64: The time step

Returns

  • datamanager::Module: The datamanager
source
PeriLab.Solver_Manager.Model_Factory.Material.init_modelMethod
init_model(datamanager::Module, nodes::Union{SubArray,Vector{Int64}, block::Int64)

Initializes the material model.

Arguments

  • datamanager::Data_Manager: Datamanager
  • nodes::AbstractVector{Int64}: The nodes.
  • block::Int64: Block.

Returns

  • datamanager::Data_Manager: Datamanager.
source

Thermal

PeriLab.Solver_Manager.Model_Factory.Thermal.compute_modelMethod
compute_model(datamanager::Module, nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64,to::TimerOutput,)

Computes the thermal models

Arguments

  • datamanager::Module: The datamanager
  • nodes::AbstractVector{Int64}: The nodes
  • model_param::Dict: The model parameters
  • block::Int64: The block
  • time::Float64: The current time
  • dt::Float64: The time step

Returns

  • datamanager::Module: The datamanager
source
PeriLab.Solver_Manager.Model_Factory.Thermal.init_modelMethod
init_model(datamanager::Module, nodes::Union{SubArray,Vector{Int64}, block::Int64)

Initializes the thermal model.

Arguments

  • datamanager::Data_Manager: Datamanager
  • nodes::AbstractVector{Int64}: The nodes.
  • block::Int64: Block.

Returns

  • datamanager::Data_Manager: Datamanager.
source

Pre_Calculation

PeriLab.Solver_Manager.Model_Factory.Pre_Calculation.check_dependenciesMethod
check_dependencies(datamanager::Module, block_nodes::Dict{Int64,Vector{Int64}}

Check if materials are used which needs a form of pre calculation. If so, the option will be set.

Arguments

  • datamanager::Module: Datamanager.
  • block_nodes::Dict{Int64,Vector{Int64}}: block nodes.

Returns

  • datamanager::Data_Manager: Datamanager.
source
PeriLab.Solver_Manager.Model_Factory.Pre_Calculation.compute_modelMethod
compute_model(datamanager::Module, nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64,to::TimerOutput,)

Computes the pre calculation models

Arguments

  • datamanager::Module: The datamanager
  • nodes::AbstractVector{Int64}: The nodes
  • model_param::Dict: The model parameters
  • block::Int64: The block
  • time::Float64: The current time
  • dt::Float64: The time step

Returns

  • datamanager::Module: The datamanager
source

Surface_Correction