assembly_FE_film_reynolds Subroutine

public subroutine assembly_FE_film_reynolds(fe_f, mat, ass_c)


Arguments

Type IntentOptional AttributesName
type(FE_FILM), intent(inout) :: fe_f

FE_film data type

type(MAT_SOLV), intent(inout) :: mat

matrices for solving

integer(kind=I4), intent(in) :: ass_c

assembly type


Calls

proc~~assembly_fe_film_reynolds~~CallsGraph proc~assembly_fe_film_reynolds assembly_FE_film_reynolds proc~elementary_assembly_fe_film_reynolds elementary_assembly_FE_film_reynolds proc~assembly_fe_film_reynolds->proc~elementary_assembly_fe_film_reynolds proc~assemble_in_mat_sol assemble_in_mat_sol proc~assembly_fe_film_reynolds->proc~assemble_in_mat_sol proc~compute_prc_tables_reynolds_supg compute_prc_tables_reynolds_supg proc~elementary_assembly_fe_film_reynolds->proc~compute_prc_tables_reynolds_supg proc~dj4 dj4 proc~compute_prc_tables_reynolds_supg->proc~dj4 proc~length_width_elem length_width_elem proc~compute_prc_tables_reynolds_supg->proc~length_width_elem proc~ni4_up_2d ni4_up_2d proc~compute_prc_tables_reynolds_supg->proc~ni4_up_2d proc~ni4_up_1d ni4_up_1d proc~ni4_up_2d->proc~ni4_up_1d

Called by

proc~~assembly_fe_film_reynolds~~CalledByGraph proc~assembly_fe_film_reynolds assembly_FE_film_reynolds proc~solve_fe_film solve_FE_film proc~solve_fe_film->proc~assembly_fe_film_reynolds proc~compute_corner_fluxes compute_corner_fluxes proc~compute_corner_fluxes->proc~assembly_fe_film_reynolds proc~elementary_full_domain_fe_film_reynolds elementary_full_domain_FE_film_reynolds proc~elementary_full_domain_fe_film_reynolds->proc~solve_fe_film proc~elementary_full_domain_fe_film_reynolds->proc~compute_corner_fluxes proc~multi_scale_solve_fe_film multi_scale_solve_fe_film proc~multi_scale_solve_fe_film->proc~solve_fe_film proc~solve_fe_prob solve_fe_prob proc~solve_fe_prob->proc~solve_fe_film proc~solve_fe_prob->proc~compute_corner_fluxes proc~solve_ms_prob solve_ms_prob proc~solve_ms_prob->proc~multi_scale_solve_fe_film proc~test_rough_fe test_rough_fe proc~test_rough_fe->proc~solve_fe_prob proc~test_bearing_x_fe test_bearing_x_fe proc~test_bearing_x_fe->proc~solve_fe_prob proc~test_pocket_fe test_pocket_fe proc~test_pocket_fe->proc~solve_fe_prob proc~test_bearing_y_fe test_bearing_y_fe proc~test_bearing_y_fe->proc~solve_fe_prob proc~test_slider_fe test_slider_fe proc~test_slider_fe->proc~solve_fe_prob proc~run_test run_test proc~run_test->proc~test_rough_fe proc~run_test->proc~test_bearing_x_fe proc~run_test->proc~test_pocket_fe proc~run_test->proc~test_bearing_y_fe proc~run_test->proc~test_slider_fe proc~test_slider_ms test_slider_ms proc~run_test->proc~test_slider_ms proc~test_rough_ms test_rough_ms proc~run_test->proc~test_rough_ms proc~test_slider_ms->proc~solve_ms_prob proc~test_rough_ms->proc~solve_ms_prob program~main main program~main->proc~run_test

Contents


Source Code

   subroutine assembly_FE_film_reynolds(fe_f, mat, ass_c)
   implicit none
   type(FE_FILM),    intent(inout) :: fe_f     !! *FE_film data type*
   type(MAT_SOLV),   intent(inout) :: mat      !! *matrices for solving*
   integer(kind=I4), intent(in)    :: ass_c    !! *assembly type*

      integer(kind=I4), dimension(2)                :: compt
      integer(kind=I4), dimension(MAX_NNE)          :: tind4
      real(kind=R8),    dimension(MAX_NNE)          :: b4
      real(kind=R8),    dimension(MAX_NNE, MAX_NNE) :: k4

      integer(kind=I4) :: e, i, ii, el_t, el_n

      ! assembly
      compt(1:2) = 1
      mat%b = 0._R8

      do e = 1, fe_f%m%ne
         call elementary_assembly_FE_film_reynolds(fe_f = fe_f,   & !
                                                  ke_ij = k4,     & ! elementary matrix         : OUT
                                                   be_i = b4,     & ! elementary rhs member     : OUT
                                                  ind_e = tind4,  & ! elementary index member   : OUT
                                                      e = e,      & ! element number
                                                  ass_c = ass_c)    ! assembly type
         do i = 1, 4
            ii = tind4(i)
            mat%b(ii) = mat%b(ii) + b4(i)
         enddo

         el_t = fe_f%m%el_t(e)
         el_n = fe_f%m%el_n(e)

         ! assembly of the elemental matrix in the solver matrix
         if (ass_c == ASS) then
            call assemble_in_mat_sol(mat = mat,    &
                                     num = e,      &
                                    nelt = el_t,   &
                                   nline = el_n,   &
                                    tind = tind4,  &
                                   m_elt = k4,     &
                                   compt = compt)
         endif

      enddo

      if (ass_c == ASS) mat%eltptr(1) = 1
   return
   endsubroutine assembly_FE_film_reynolds