driver1D Program

Uses

  • program~~driver1d~~UsesGraph program~driver1d driver1D iso_fortran_env iso_fortran_env program~driver1d->iso_fortran_env module~mod_linalg mod_linalg program~driver1d->module~mod_linalg module~mod_misc mod_misc program~driver1d->module~mod_misc module~mod_assembly mod_assembly program~driver1d->module~mod_assembly module~mod_io mod_io program~driver1d->module~mod_io module~mod_linalg->iso_fortran_env module~mod_misc->iso_fortran_env module~mod_assembly->iso_fortran_env module~mod_legendre mod_legendre module~mod_assembly->module~mod_legendre module~mod_io->iso_fortran_env lib_array lib_array module~mod_io->lib_array module~mod_legendre->iso_fortran_env

Calls

program~~driver1d~~CallsGraph program~driver1d driver1D proc~read_gmsh_file_1d read_gmsh_file_1D program~driver1d->proc~read_gmsh_file_1d interface~assemble assemble program~driver1d->interface~assemble proc~linsolve_quick linsolve_quick program~driver1d->proc~linsolve_quick proc~write_out_solution write_out_solution program~driver1d->proc~write_out_solution proc~print_header print_header proc~read_gmsh_file_1d->proc~print_header proc~linsolve linsolve proc~linsolve_quick->proc~linsolve dgetrf dgetrf proc~linsolve->dgetrf dgetrs dgetrs proc~linsolve->dgetrs

Contents

Source Code


Variables

Type AttributesNameInitial
real(kind=wp), parameter:: diff =0.1_wp
real(kind=wp), parameter:: vel =-5._wp
integer :: num_nodes
integer, dimension(:), allocatable:: nodes2vertex
integer, dimension(:,:), allocatable:: cells
real(kind=wp), dimension(:), allocatable:: points
real(kind=wp), dimension(:), allocatable:: GlobalB
real(kind=wp), dimension(:), allocatable:: GlobalX
real(kind=wp), dimension(:,:), allocatable:: GlobalA
logical :: dg

Source Code

program driver1D
    use, intrinsic :: iso_fortran_env, only: wp=>real64
    use :: mod_linalg,    only: linsolve_quick
    use :: mod_misc,      only: r8mat_print
    use :: mod_io,        only: read_gmsh_file_1D, write_out_solution
    use :: mod_assembly,  only: initialize_global_mats, assemble, set_BCs

    implicit none

    real(wp), parameter                   :: diff = 0.1_wp, vel = -5._wp

    integer                               :: num_nodes
    integer,  dimension(:),   allocatable :: nodes2vertex
    integer,  dimension(:,:), allocatable :: cells
    real(wp), dimension(:),   allocatable :: points, GlobalB, GlobalX
    real(wp), dimension(:,:), allocatable :: GlobalA
    logical                               :: dg

    ! dg = .true.
    dg = .false.

    call read_gmsh_file_1D(num_nodes, nodes2vertex, cells, points, dg)
    ! stop

    call initialize_global_mats(num_nodes, GlobalA, GlobalB, GlobalX)

    call assemble(points, cells, diff, vel, GlobalA)

    call set_BCs(points, GlobalB, GlobalA)

    ! call r8mat_print(num_nodes, num_nodes, GlobalA, 'Global Stiffness matrix:')
    ! stop

    call linsolve_quick(num_nodes, GlobalA, 1, GlobalB, GlobalX)
    ! call r8mat_print(num_nodes, 1, GlobalB, 'Global RHS:')
    ! call r8mat_print(num_nodes, 1, GlobalX, 'Global Solution Vector:')

    call write_out_solution(num_nodes, points, GlobalX)

end program driver1D