source_term_definition_strand Subroutine

public subroutine source_term_definition_strand(me, sim, Qext_Check)

Arguments

Type IntentOptional Attributes Name
type(strand_t), intent(inout) :: me
type(simulation_t), intent(in) :: sim
real(kind=dp), intent(out), optional :: Qext_Check

Calls

proc~~source_term_definition_strand~~CallsGraph proc~source_term_definition_strand source_term_definition_strand proc~solid_source_terms solid_source_terms proc~source_term_definition_strand->proc~solid_source_terms proc~material_critical_current_density material_t%material_critical_current_density proc~solid_source_terms->proc~material_critical_current_density proc~material_critical_current_density_der material_t%material_critical_current_density_der proc~solid_source_terms->proc~material_critical_current_density_der proc~material_critical_field material_t%material_critical_field proc~solid_source_terms->proc~material_critical_field proc~material_critical_temperature material_t%material_critical_temperature proc~solid_source_terms->proc~material_critical_temperature proc~material_current_sharing_temperature material_t%material_current_sharing_temperature proc~solid_source_terms->proc~material_current_sharing_temperature proc~material_heat_capacity material_t%material_heat_capacity proc~solid_source_terms->proc~material_heat_capacity proc~material_heat_capacity_der material_t%material_heat_capacity_der proc~solid_source_terms->proc~material_heat_capacity_der proc~material_resistivity material_t%material_resistivity proc~solid_source_terms->proc~material_resistivity proc~material_resistivity_der material_t%material_resistivity_der proc~solid_source_terms->proc~material_resistivity_der proc~material_strain material_t%material_strain proc~solid_source_terms->proc~material_strain proc~set_error set_error proc~solid_source_terms->proc~set_error proc~supercond_current supercond_current proc~solid_source_terms->proc~supercond_current proc~supercond_current->proc~set_error float float proc~supercond_current->float

Called by

proc~~source_term_definition_strand~~CalledByGraph proc~source_term_definition_strand source_term_definition_strand proc~full_physics_definition_strand full_physics_definition_strand proc~full_physics_definition_strand->proc~source_term_definition_strand proc~main_loop main_loop proc~main_loop->proc~source_term_definition_strand proc~main_loop->proc~full_physics_definition_strand program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

subroutine source_term_definition_strand(me,sim,Qext_Check)
  type(strand_t), intent(inout) :: me
  type(simulation_t), intent(in) :: sim
  real(dp), intent(out), optional :: Qext_Check

  real(dp) :: Spoint, DerSpoint, SJoule, DerSJoule, Joule
  integer :: i

      if(sim%explicit) then
        me%big%bmS=1.0_dp; me%big%bvS=0.0_dp
      endif

      do i=1,me%SC_Prop%NbCells
        ! Adding of source term contributions (external heating + Joule effect)
        call solid_source_terms(me,i,me%scen%Q_ext(i),Spoint,DerSpoint,SJoule,DerSJoule,Joule,sim)
        if (sim_error > 0) return

        if(present(Qext_Check)) Qext_Check=Qext_Check+me%scen%Q_ext(i)*me%SC_Prop%dxLoc(i)*sim%dt

        me%big%bmS(i)=me%big%bmS(i)-sim%dt*(DerSpoint+DerSJoule)
        me%big%bvS(i)=me%big%bvS(i)+sim%dt*(Spoint+SJoule)
        me%hdf%data(i,6) = Joule
      enddo

end subroutine source_term_definition_strand