ms_film Module

MultiScale FE solution of the Reynolds equation

Description of the film module

This module can be used for a two-scale solution of the lubrication problems (more particularly for rough surface problems)

Definition of MS_FE_film

MS_FE_FILM is a data structure containing a FE_FILM which is the Top Scale or macro-scale of the problem and a table of FE_FILM which is the Bottom Scale or micro-scale

Solution procedure

This module can be used to create a MS_FE_FILM, assemble the MS_FE_FILM, and solve it. Some post-treatements like fluxes, forces are available.


Uses

  • module~~ms_film~~UsesGraph module~ms_film ms_film module~film film module~ms_film->module~film module~surfile surfile module~ms_film->module~surfile module~num_param num_param module~ms_film->module~num_param module~solver solver module~ms_film->module~solver module~data_arch data_arch module~ms_film->module~data_arch module~fluid_law fluid_law module~ms_film->module~fluid_law module~mesh mesh module~ms_film->module~mesh module~data_film_hd data_film_hd module~ms_film->module~data_film_hd module~bspline bspline module~ms_film->module~bspline omp_lib omp_lib module~ms_film->omp_lib module~film->module~surfile module~film->module~num_param module~film->module~solver module~film->module~data_arch module~film->module~fluid_law module~film->module~mesh module~film->module~data_film_hd module~film->omp_lib module~elements elements module~film->module~elements module~surfile->module~data_arch module~sort_arrays sort_arrays module~surfile->module~sort_arrays iso_c_binding iso_c_binding module~surfile->iso_c_binding module~num_param->module~data_arch iso_fortran_env iso_fortran_env module~num_param->iso_fortran_env module~solver->module~data_arch hsl_ma48_double hsl_ma48_double module~solver->hsl_ma48_double module~solver->iso_fortran_env module~solver->module~sort_arrays module~mumps_wrapper mumps_wrapper module~solver->module~mumps_wrapper module~gen_param gen_param module~solver->module~gen_param module~mumfpack mumfpack module~solver->module~mumfpack module~solver->iso_c_binding module~sulu_wrapper sulu_wrapper module~solver->module~sulu_wrapper module~data_arch->iso_fortran_env module~fluid_law->module~data_arch module~mesh->module~data_arch module~data_film_hd->module~data_arch module~data_film_hd->module~fluid_law module~bspline->iso_fortran_env module~sort_arrays->module~data_arch module~gen_param->module~data_arch module~mumfpack->iso_c_binding module~elements->module~data_arch module~sulu_wrapper->iso_c_binding

Used by

  • module~~ms_film~~UsedByGraph module~ms_film ms_film module~test_musst test_musst module~test_musst->module~ms_film module~inout_files inout_files module~test_musst->module~inout_files module~inout_files->module~ms_film program~main main program~main->module~test_musst

Contents


Variables

TypeVisibility AttributesNameInitial
type(SCALE_SURF), private :: scal_tmp

object SCALE_SURF

logical(kind=I4), private, parameter:: SMOOTH_MS =.true.

at the end of the iterative process, the pressure field can be smoothed


Derived Types

type, public :: MS_FE_FILM

MS_FE_FILM is the top-scale FE_FILM plus all of the bottom-scale FE_FILM

Components

TypeVisibility AttributesNameInitial
type(FE_FILM), public :: ts_fe_f

top-scale fe_film

type(FE_FILM), public, dimension(:), allocatable:: bs_fe_f

bottom-scale fe_film

Type-Bound Procedures

procedure, public :: ms_fx

force computation along

procedure, public :: ms_fy

force computation along

procedure, public :: ms_fz

force computation along


Functions

private function ms_fz(ms_fe_f)

Read more…

Arguments

Type IntentOptional AttributesName
class(MS_FE_FILM), intent(inout) :: ms_fe_f

MS FE film

Return Value real(kind=R8)

private function ms_fx(ms_fe_f)

Read more…

Arguments

Type IntentOptional AttributesName
class(MS_FE_FILM), intent(inout) :: ms_fe_f

Return Value real(kind=R8)

private function ms_fy(ms_fe_f)

Read more…

Arguments

Type IntentOptional AttributesName
class(MS_FE_FILM), intent(inout) :: ms_fe_f

Return Value real(kind=R8)


Subroutines

public subroutine multi_scale_create_rect_fe_film(data_f, bs_nx, bs_ny, num_pts, num_pbs, ms_fe_f)

Read more…

Arguments

Type IntentOptional AttributesName
type(DATA_FILM), intent(inout) :: data_f

data of the film

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

number of nodes in direction for the bottom scale

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

number of nodes in direction for the bottom scale

type(NUM_PAR), intent(in) :: num_pts

numerical parameters for iterative solution, top scale

type(NUM_PAR), intent(in) :: num_pbs

numerical parameters for iterative solution, bottom scale

type(MS_FE_FILM), intent(inout) :: ms_fe_f

MS FE film

public subroutine multi_scale_solve_fe_film(ms_fe_f, ms_mat, bc)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(inout) :: ms_fe_f

multi-scale FE film

type(MS_MAT_SOLV), intent(inout) :: ms_mat

multi-scale solver matrices

real(kind=R8), intent(in), dimension(MAX_NNC):: bc

boundary conditions at the corners

private subroutine interp_ts_bs_splin(ms_fe_f)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(inout) :: ms_fe_f

public subroutine save_ms_field(ms_fe_f, file_name, code, nodal)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(in) :: ms_fe_f
character(len=*), intent(in) :: file_name

filename like "./out/pressure.sur"

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

saved information like P_N

logical(kind=I4), intent(in) :: nodal

if false : cell value, if true : nodal value

public subroutine ms_fe_f_2_mat(ms_fe_f, code, nodal, mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(in) :: ms_fe_f
integer(kind=I4), intent(in) :: code

saved information like P_N

logical(kind=I4), intent(in) :: nodal

if false : cell value, if true : nodal value

real(kind=R8), intent(inout), allocatable:: mat(:,:)

output matrix containing the information

private subroutine mat_2_ms_fe_f(ms_fe_f, code, nodal, mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(inout) :: ms_fe_f
integer(kind=I4), intent(in) :: code

saved information like P_N

logical(kind=I4), intent(in) :: nodal

if false : cell value, if true : nodal value

real(kind=R8), intent(in), dimension(:,:):: mat

input matrix containing the information

private subroutine smooth_ms_fe_f(ms_fe_f, code, nodal)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(inout) :: ms_fe_f
integer(kind=I4), intent(in) :: code

saved information like P_N

logical(kind=I4), intent(in) :: nodal

if false : cell value, if true : nodal value

private subroutine smooth_mat(mat, nx, ny, s)

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=R8), intent(inout), dimension(nx, ny):: mat

matrix

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

matrix x size

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

matrix y size

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

kernel size

private subroutine multi_scale_assembly_fe_film_reynolds(ms_fe_f, ms_mat, ass_c)

Read more…

Arguments

Type IntentOptional AttributesName
type(MS_FE_FILM), intent(inout) :: ms_fe_f
type(MS_MAT_SOLV), intent(inout) :: ms_mat

solver type matrices table

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

assembly type