Model Factory - Functions
Index
PeriLab.Solver_Manager.Model_Factory.Additive.compute_modelPeriLab.Solver_Manager.Model_Factory.Additive.fields_for_local_synchronizationPeriLab.Solver_Manager.Model_Factory.Additive.init_fieldsPeriLab.Solver_Manager.Model_Factory.Additive.init_modelPeriLab.Solver_Manager.Model_Factory.Damage.compute_modelPeriLab.Solver_Manager.Model_Factory.Damage.damage_indexPeriLab.Solver_Manager.Model_Factory.Damage.fields_for_local_synchronizationPeriLab.Solver_Manager.Model_Factory.Damage.init_aniso_crit_valuesPeriLab.Solver_Manager.Model_Factory.Damage.init_fieldsPeriLab.Solver_Manager.Model_Factory.Damage.init_interface_crit_valuesPeriLab.Solver_Manager.Model_Factory.Damage.init_modelPeriLab.Solver_Manager.Model_Factory.Degradation.compute_modelPeriLab.Solver_Manager.Model_Factory.Degradation.fields_for_local_synchronizationPeriLab.Solver_Manager.Model_Factory.Degradation.init_fieldsPeriLab.Solver_Manager.Model_Factory.Degradation.init_modelPeriLab.Solver_Manager.Model_Factory.Material.check_material_symmetryPeriLab.Solver_Manager.Model_Factory.Material.compute_modelPeriLab.Solver_Manager.Model_Factory.Material.determine_isotropic_parameterPeriLab.Solver_Manager.Model_Factory.Material.distribute_force_densitiesPeriLab.Solver_Manager.Model_Factory.Material.fields_for_local_synchronizationPeriLab.Solver_Manager.Model_Factory.Material.init_fieldsPeriLab.Solver_Manager.Model_Factory.Material.init_modelPeriLab.Solver_Manager.Model_Factory.Pre_Calculation.check_dependenciesPeriLab.Solver_Manager.Model_Factory.Pre_Calculation.compute_modelPeriLab.Solver_Manager.Model_Factory.Pre_Calculation.init_fieldsPeriLab.Solver_Manager.Model_Factory.Pre_Calculation.init_modelPeriLab.Solver_Manager.Model_Factory.Thermal.compute_modelPeriLab.Solver_Manager.Model_Factory.Thermal.init_fieldsPeriLab.Solver_Manager.Model_Factory.Thermal.init_modelPeriLab.Solver_Manager.Model_Factory.add_modelPeriLab.Solver_Manager.Model_Factory.compute_modelsPeriLab.Solver_Manager.Model_Factory.get_block_model_definitionPeriLab.Solver_Manager.Model_Factory.init_modelsPeriLab.Solver_Manager.Model_Factory.read_propertiesPeriLab.Solver_Manager.Model_Factory.set_heat_capacity
Models
PeriLab.Solver_Manager.Model_Factory.add_model — Functionadd_model(model_name::String)Includes the models in the Data_Manager and checks if the model definition is correct or not.
Arguments
model_name::String: The block nodes
PeriLab.Solver_Manager.Model_Factory.compute_models — Methodcompute_models(block_nodes::Dict{Int64,Vector{Int64}}, dt::Float64, time::Float64, options::Vector{String}, synchronise_field)Computes the models models
Arguments
block_nodes::Dict{Int64,Vector{Int64}}: The block nodesdt::Float64: The time steptime::Float64: The current time of the solveroptions::Vector{String}: The optionssynchronise_field: The synchronise field
PeriLab.Solver_Manager.Model_Factory.get_block_model_definition — Functionget_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.
PeriLab.Solver_Manager.Model_Factory.init_models — Methodinit_models(params::Dict, block_nodes::Dict{Int64,Vector{Int64}}, solver_options::Dict)Initialize models
Arguments
params::Dict: Parameters.block_nodes::Dict{Int64,Vector{Int64}}: block nodes.solver_options::Dict: Solver options.
PeriLab.Solver_Manager.Model_Factory.read_properties — Methodread_properties(params::Dict, material_model::Bool)Read properties of material.
Arguments
params::Dict: Parameters.material_model::Bool: Material model.
PeriLab.Solver_Manager.Model_Factory.set_heat_capacity — Methodset_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 parametersblock_nodes::Dict: The block nodesheat_capacity::Vector{Float64}: The heat capacity array
Returns
heat_capacity::SubArray: The heat capacity array
Additive
PeriLab.Solver_Manager.Model_Factory.Additive.compute_model — Methodcompute_model(nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64)Computes the addtive models
Arguments
nodes::AbstractVector{Int64}: The nodesmodel_param::Dict: The model parametersblock::Int64: The blocktime::Float64: The current timedt::Float64: The time step
PeriLab.Solver_Manager.Model_Factory.Additive.fields_for_local_synchronization — Methodfields_for_local_synchronization(model, block)Defines all synchronization fields for local synchronization
Arguments
model::String: Model class.block::Int64: block ID
PeriLab.Solver_Manager.Model_Factory.Additive.init_fields — Methodinit_fields()Initialize additive model fields
PeriLab.Solver_Manager.Model_Factory.Additive.init_model — Methodinit_model(nodes::AbstractVector{Int64}, block::Int64)Initialize the additive models.
Arguments
nodes::AbstractVector{Int64}: Nodes for the additive model.block::Int64: Block identifier for the additive model.
Example
```julia initmodel(mydata_manager, [1, 2, 3], 1)
Damage
PeriLab.Solver_Manager.Model_Factory.Damage.compute_model — Methodcompute_model(nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64)Computes the damage model
Arguments
nodes::AbstractVector{Int64}: The nodesmodel_param::Dict: The model parametersblock::Int64: The blocktime::Float64: The current timedt::Float64: The time step
PeriLab.Solver_Manager.Model_Factory.Damage.damage_index — Methoddamage_index(::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
nodes::AbstractVector{Int64}: corresponding nodes to this model
PeriLab.Solver_Manager.Model_Factory.Damage.fields_for_local_synchronization — Methodfields_for_local_synchronization(model, block)Defines all synchronization fields for local synchronization
Arguments
model::String: Model class.block::Int64: block ID
PeriLab.Solver_Manager.Model_Factory.Damage.init_aniso_crit_values — Methodinit_aniso_crit_values(params::Dict, block_id::Int64)Initialize the anisotropic critical values
Arguments
params::Dict: The parametersblock_id::Int64: current block
PeriLab.Solver_Manager.Model_Factory.Damage.init_fields — Methodinit_fields()Initialize damage model fields
Arguments
params::Dict: Parameters.
PeriLab.Solver_Manager.Model_Factory.Damage.init_interface_crit_values — Methodinit_interface_crit_values(params::Dict, block_id::Int64)Initialize the critical values
Arguments
params::Dict: The parametersblock_id::Int64: current block
PeriLab.Solver_Manager.Model_Factory.Damage.init_model — Methodinit_model(nodes::AbstractVector{Int64}, block::Int64)Initialize the damage models.
Arguments
nodes::AbstractVector{Int64}: Nodes for the degradation model.block::Int64: Block identifier for the degradation model.
Example
```julia initmodel(mydata_manager, [1, 2, 3], 1)
Degradation
PeriLab.Solver_Manager.Model_Factory.Degradation.compute_model — Methodcompute_model(nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64)Computes the degradation models
Arguments
nodes::AbstractVector{Int64}: The nodesmodel_param::Dict: The model parametersblock::Int64: The blocktime::Float64: The current timedt::Float64: The time step
PeriLab.Solver_Manager.Model_Factory.Degradation.fields_for_local_synchronization — Methodfields_for_local_synchronization(model, block)Defines all synchronization fields for local synchronization
Arguments
model::String: Model class.block::Int64: block ID
PeriLab.Solver_Manager.Model_Factory.Degradation.init_fields — Methodinit_fields()
Initialize model fields
PeriLab.Solver_Manager.Model_Factory.Degradation.init_model — Methodinit_model(nodes::AbstractVector{Int64}, block::Int64)Initialize a degradation models.
Arguments
nodes::AbstractVector{Int64}: Nodes for the degradation model.block::Int64: Block identifier for the degradation model.
Example
```julia initmodel(mydata_manager, [1, 2, 3], 1)
Material
PeriLab.Solver_Manager.Model_Factory.Material.check_material_symmetry — Methodcheck_material_symmetry(dof::Int64, prop::Dict)Check the symmetry of the material.
Arguments
dof::Int64: The degree of freedom.prop::Dict: The material property.
Returns
prop::Dict: The material property.
PeriLab.Solver_Manager.Model_Factory.Material.compute_model — Methodcompute_model(nodes::AbstractVector{Int64}, model_param::Dict{String,Any}, block::Int64, time::Float64, dt::Float64)Computes the material models
Arguments
nodes::AbstractVector{Int64}: The nodesmodel_param::Dict{String,Any}: The model parametersblock::Int64: The blocktime::Float64: The current timedt::Float64: The time step
PeriLab.Solver_Manager.Model_Factory.Material.determine_isotropic_parameter — Methoddetermine_isotropic_parameter(prop::Dict)Determine the isotropic parameter.
Arguments
prop::Dict: The material property.
Returns
prop::Dict: The material property.
PeriLab.Solver_Manager.Model_Factory.Material.distribute_force_densities — Methoddistribute_force_densities(nodes::AbstractVector{Int64})Distribute the force densities.
Arguments
nodes::AbstractVector{Int64}: The nodes.
PeriLab.Solver_Manager.Model_Factory.Material.fields_for_local_synchronization — Methodfields_for_local_synchronization(model, block)Defines all synchronization fields for local synchronization
Arguments
model::String: Model class.block::Int64: block id
PeriLab.Solver_Manager.Model_Factory.Material.init_fields — Methodinit_fields()Initialize material model fields
PeriLab.Solver_Manager.Model_Factory.Material.init_model — Methodinit_model(nodes::Union{SubArray,Vector{Int64}, block::Int64)Initializes the material model.
Arguments
nodes::AbstractVector{Int64}: The nodes.block::Int64: Block.
Thermal
PeriLab.Solver_Manager.Model_Factory.Thermal.compute_model — Methodcompute_model(nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64)Computes the thermal models
Arguments
nodes::AbstractVector{Int64}: The nodesmodel_param::Dict: The model parametersblock::Int64: The blocktime::Float64: The current timedt::Float64: The time step
PeriLab.Solver_Manager.Model_Factory.Thermal.init_fields — Methodinit_fields()Initialize thermal model fields
PeriLab.Solver_Manager.Model_Factory.Thermal.init_model — Methodinit_model(nodes::Union{SubArray,Vector{Int64}, block::Int64)Initializes the thermal model.
Arguments
nodes::AbstractVector{Int64}: The nodes.block::Int64: Block.
Pre_Calculation
PeriLab.Solver_Manager.Model_Factory.Pre_Calculation.check_dependencies — Methodcheck_dependencies(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
block_nodes::Dict{Int64,Vector{Int64}}: block nodes.
PeriLab.Solver_Manager.Model_Factory.Pre_Calculation.compute_model — Methodcompute_model(nodes::AbstractVector{Int64}, model_param::Dict, block::Int64, time::Float64, dt::Float64)Computes the pre calculation models
Arguments
nodes::AbstractVector{Int64}: The nodesmodel_param::Dict: The model parametersblock::Int64: The blocktime::Float64: The current timedt::Float64: The time step
PeriLab.Solver_Manager.Model_Factory.Pre_Calculation.init_fields — Methodinit_fields()Initializes the fields.
PeriLab.Solver_Manager.Model_Factory.Pre_Calculation.init_model — Methodinit_model(nodes::Union{SubArray,Vector{Int64}, block::Int64)Initializes the model.
Arguments
nodes::AbstractVector{Int64}: The nodes.block::Int64: Block.