lib_material_m Module


Uses

  • module~~lib_material_m~~UsesGraph module~lib_material_m lib_material_m module~lib_input_m lib_input_m module~lib_material_m->module~lib_input_m module~lib_material_insulation_m lib_material_insulation_m module~lib_material_m->module~lib_material_insulation_m module~lib_material_metal_m lib_material_metal_m module~lib_material_m->module~lib_material_metal_m module~lib_material_nb3sn_m lib_material_nb3sn_m module~lib_material_m->module~lib_material_nb3sn_m module~lib_material_nbti_m lib_material_nbti_m module~lib_material_m->module~lib_material_nbti_m fortran_yaml_c fortran_yaml_c module~lib_input_m->fortran_yaml_c h5lt h5lt module~lib_input_m->h5lt hdf5 hdf5 module~lib_input_m->hdf5 module~krn_global_tools_m krn_global_tools_m module~lib_input_m->module~krn_global_tools_m module~lib_material_insulation_m->module~lib_input_m iso_c_binding iso_c_binding module~lib_material_insulation_m->iso_c_binding module~lib_material_insulation_m->module~krn_global_tools_m module~lib_material_metal_m->module~lib_input_m module~lib_material_metal_m->iso_c_binding module~lib_material_metal_m->module~krn_global_tools_m module~lib_material_nb3sn_m->module~lib_input_m module~lib_material_nb3sn_m->iso_c_binding module~lib_material_nb3sn_m->module~krn_global_tools_m module~lib_material_nbti_m->module~lib_input_m module~lib_material_nbti_m->iso_c_binding module~lib_material_nbti_m->module~krn_global_tools_m module~krn_global_tools_m->iso_c_binding ieee_arithmetic ieee_arithmetic module~krn_global_tools_m->ieee_arithmetic iso_fortran_env iso_fortran_env module~krn_global_tools_m->iso_fortran_env

Used by

  • module~~lib_material_m~~UsedByGraph module~lib_material_m lib_material_m module~cmp_fslink_init_m cmp_FSlink_init_m module~cmp_fslink_init_m->module~lib_material_m module~cmp_mesh2d_init_m cmp_mesh2D_init_m module~cmp_mesh2d_init_m->module~lib_material_m module~cmp_solid_init_m cmp_solid_init_m module~cmp_solid_init_m->module~lib_material_m module~cmp_sssrclink_init_m cmp_SSsrcLink_init_m module~cmp_sssrclink_init_m->module~lib_material_m module~cmp_strand_init_m cmp_strand_init_m module~cmp_strand_init_m->module~lib_material_m program~reims_p reims_p program~reims_p->module~lib_material_m module~cmp_fslink_calc_m cmp_FSlink_calc_m program~reims_p->module~cmp_fslink_calc_m module~cmp_mesh2d_calc_m cmp_mesh2D_calc_m program~reims_p->module~cmp_mesh2d_calc_m module~cmp_mesh2d_flux_m cmp_mesh2D_flux_m program~reims_p->module~cmp_mesh2d_flux_m module~cmp_mesh2d_hdf5_write_m cmp_mesh2D_hdf5_write_m program~reims_p->module~cmp_mesh2d_hdf5_write_m module~cmp_solid_calc_m cmp_solid_calc_m program~reims_p->module~cmp_solid_calc_m module~cmp_solid_flux_m cmp_solid_flux_m program~reims_p->module~cmp_solid_flux_m module~cmp_sssrclink_calc_m cmp_SSsrcLink_calc_m program~reims_p->module~cmp_sssrclink_calc_m module~cmp_strand_calc_m cmp_strand_calc_m program~reims_p->module~cmp_strand_calc_m module~cmp_strand_flux_m cmp_strand_flux_m program~reims_p->module~cmp_strand_flux_m module~cmp_fslink_calc_m->module~cmp_fslink_init_m module~cmp_mesh2d_calc_m->module~cmp_mesh2d_init_m module~cmp_mesh2d_flux_m->module~cmp_mesh2d_init_m module~cmp_mesh2d_hdf5_write_m->module~cmp_mesh2d_init_m module~cmp_solid_calc_m->module~cmp_solid_init_m module~cmp_solid_flux_m->module~cmp_solid_init_m module~cmp_sssrclink_calc_m->module~cmp_sssrclink_init_m module~cmp_strand_calc_m->module~cmp_strand_init_m module~cmp_strand_source_terms_m cmp_strand_source_terms_m module~cmp_strand_calc_m->module~cmp_strand_source_terms_m module~cmp_strand_flux_m->module~cmp_strand_init_m module~cmp_strand_source_terms_m->module~cmp_strand_init_m

Variables

Type Visibility Attributes Name Initial
type(material_t), public, allocatable, target :: materials(:)
procedure(init_material_ext_if), public, pointer :: init_material_ext => null()

Abstract Interfaces

abstract interface

  • public function init_material_ext_if(cfg_len, cfg_str, c_pt, res_ptr, th_cond_ptr, stra_ptr, t_crit_ptr, bc_ptr, jc_ptr, tcs_ptr, heat_cap_ptr, density, E0, nPow) bind(C)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int), value :: cfg_len
    character(len=*) :: cfg_str
    type(c_ptr) :: c_pt
    type(c_funptr) :: res_ptr
    type(c_funptr) :: th_cond_ptr
    type(c_funptr) :: stra_ptr
    type(c_funptr) :: t_crit_ptr
    type(c_funptr) :: bc_ptr
    type(c_funptr) :: jc_ptr
    type(c_funptr) :: tcs_ptr
    type(c_funptr) :: heat_cap_ptr
    real(kind=dp) :: density
    real(kind=dp) :: E0
    integer :: nPow

    Return Value logical


Derived Types

type, public ::  material_t

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: material
real(kind=dp), public :: density = -1.0_dp
real(kind=dp), public :: E0 = -1.0_dp
integer, public :: nPow = -1
type(c_ptr), public :: res_cfg = C_NULL_PTR
type(c_ptr), public :: th_cond_cfg = C_NULL_PTR
type(c_ptr), public :: stra_cfg = C_NULL_PTR
type(c_ptr), public :: t_crit_cfg = C_NULL_PTR
type(c_ptr), public :: bc_cfg = C_NULL_PTR
type(c_ptr), public :: jc_cfg = C_NULL_PTR
type(c_ptr), public :: tcs_cfg = C_NULL_PTR
type(c_ptr), public :: heat_cap_cfg = C_NULL_PTR
procedure(itf_2var), public, pointer, nopass :: res => resistivity_not_implemented
procedure(itf_2var), public, pointer, nopass :: th_cond => thermal_conductivity_not_implemented
procedure(itf_2var), public, pointer, nopass :: stra => strain_not_implemented
procedure(itf_2var), public, pointer, nopass :: t_crit => critical_temperature_not_implemented
procedure(itf_2var), public, pointer, nopass :: bc => critical_field_not_implemented
procedure(itf_5var), public, pointer, nopass :: jc => critical_current_density_not_implemented
procedure(itf_8var), public, pointer, nopass :: tcs => current_sharing_temperature_not_implemented
procedure(itf_5var), public, pointer, nopass :: heat_cap => heat_capacity_not_implemented

Type-Bound Procedures

procedure, public :: resistivity => material_resistivity
procedure, public :: resistivity_der => material_resistivity_der
procedure, public :: thermal_conductivity => material_thermal_conductivity
procedure, public :: thermal_conductivity_der => material_thermal_conductivity_der
procedure, public :: strain => material_strain
procedure, public :: critical_temperature => material_critical_temperature
procedure, public :: critical_field => material_critical_field
procedure, public :: critical_current_density => material_critical_current_density
procedure, public :: critical_current_density_der => material_critical_current_density_der
procedure, public :: current_sharing_temperature => material_current_sharing_temperature
procedure, public :: heat_capacity => material_heat_capacity
procedure, public :: heat_capacity_der => material_heat_capacity_der

Functions

public function material_resistivity(me, T, B)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(in) :: B

Return Value real(kind=dp)

public function material_resistivity_der(me, T, B)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(in) :: B

Return Value real(kind=dp)

public function material_thermal_conductivity(me, T, B)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(inout), optional :: B

Return Value real(kind=dp)

public function material_thermal_conductivity_der(me, T, B)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(inout), optional :: B

Return Value real(kind=dp)

public function material_strain(me, B, I)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: B
real(kind=dp), intent(in) :: I

Return Value real(kind=dp)

public function material_critical_temperature(me, B, St)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: B
real(kind=dp), intent(in) :: St

Return Value real(kind=dp)

public function material_critical_field(me, T, St)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(in) :: St

Return Value real(kind=dp)

public function material_critical_current_density(me, T, B, St, Tc0, Bc)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(in) :: B
real(kind=dp), intent(in) :: St
real(kind=dp), intent(in) :: Tc0
real(kind=dp), intent(in) :: Bc

Return Value real(kind=dp)

public function material_critical_current_density_der(me, T, B, St, Tc0, Bc)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(in) :: B
real(kind=dp), intent(in) :: St
real(kind=dp), intent(in) :: Tc0
real(kind=dp), intent(in) :: Bc

Return Value real(kind=dp)

public function material_current_sharing_temperature(me, B, St, Jop, Bc0, Jc0, Tc, Tc0, Bc)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: B
real(kind=dp), intent(in) :: St
real(kind=dp), intent(in) :: Jop
real(kind=dp), intent(in) :: Bc0
real(kind=dp), intent(in) :: Jc0
real(kind=dp), intent(in) :: Tc
real(kind=dp), intent(in) :: Tc0
real(kind=dp), intent(in) :: Bc

Return Value real(kind=dp)

public function material_heat_capacity(me, T, B, TC, TCS, TC0)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(inout), optional :: B
real(kind=dp), intent(inout), optional :: TC
real(kind=dp), intent(inout), optional :: TCS
real(kind=dp), intent(inout), optional :: TC0

Return Value real(kind=dp)

public function material_heat_capacity_der(me, T, B, TC, TCS, TC0)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout) :: me
real(kind=dp), intent(in) :: T
real(kind=dp), intent(inout), optional :: B
real(kind=dp), intent(inout), optional :: TC
real(kind=dp), intent(inout), optional :: TCS
real(kind=dp), intent(inout), optional :: TC0

Return Value real(kind=dp)

public function resistivity_not_implemented(c_pt, T, B) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: T
real(kind=dp), value :: B

Return Value real(kind=dp)

public function thermal_conductivity_not_implemented(c_pt, T, B) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: T
real(kind=dp), value :: B

Return Value real(kind=dp)

public function strain_not_implemented(c_pt, B, I) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: B
real(kind=dp), value :: I

Return Value real(kind=dp)

public function critical_temperature_not_implemented(c_pt, B, St) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: B
real(kind=dp), value :: St

Return Value real(kind=dp)

public function critical_field_not_implemented(c_pt, T, St) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: T
real(kind=dp), value :: St

Return Value real(kind=dp)

public function critical_current_density_not_implemented(c_pt, T, B, St, Tc0, Bc) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: T
real(kind=dp), value :: B
real(kind=dp), value :: St
real(kind=dp), value :: Tc0
real(kind=dp), value :: Bc

Return Value real(kind=dp)

public function current_sharing_temperature_not_implemented(c_pt, B, St, Jop, Bc0, Jc0, Tc, Tc0, Bc) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: B
real(kind=dp), value :: St
real(kind=dp), value :: Jop
real(kind=dp), value :: Bc0
real(kind=dp), value :: Jc0
real(kind=dp), value :: Tc
real(kind=dp), value :: Tc0
real(kind=dp), value :: Bc

Return Value real(kind=dp)

public function heat_capacity_not_implemented(c_pt, T, B, TC, TCS, TC0) result(ret_val) bind(C)

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: c_pt
real(kind=dp), value :: T
real(kind=dp), value :: B
real(kind=dp), value :: TC
real(kind=dp), value :: TCS
real(kind=dp), value :: TC0

Return Value real(kind=dp)


Subroutines

public subroutine load_materials(cfgs)

Arguments

Type IntentOptional Attributes Name
class(input_t), intent(in) :: cfgs(:)

public subroutine set_material(mat, cfg, built_in_name)

Arguments

Type IntentOptional Attributes Name
type(material_t), intent(inout) :: mat
class(input_t), intent(in) :: cfg
character(len=*), intent(in) :: built_in_name

public subroutine material_init(me, cfg)

Arguments

Type IntentOptional Attributes Name
class(material_t), intent(inout), pointer :: me
class(input_t), intent(in), target :: cfg