mod_fermisurf_2D Module


Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: nkpmax = 512
integer, private, parameter :: nedges = 5
integer, private :: tridiags(2,2) = -1
integer, private :: squedges(2,5) = -1
integer, private :: tricorners(3,2) = -1
integer, private :: triedges(3,2) = -1

Subroutines

public subroutine find_fermisurface_2D(inc, lattice, cluster, tgmatrx, symmetries, nCub3, nFSiter, nROOTiter, nstepsconnect, nCut_iter, roottype, rooteps, lrefine, nrefinenew, nkpts_int, kpoints_int, areas_int)

Arguments

Type IntentOptional Attributes Name
type(inc_TYPE), intent(in) :: inc
type(lattice_TYPE), intent(in) :: lattice
type(cluster_TYPE), intent(in) :: cluster
type(tgmatrx_TYPE), intent(inout) :: tgmatrx
type(symmetries_TYPE), intent(in) :: symmetries
integer, intent(inout) :: nCub3(3)
integer, intent(in) :: nFSiter
integer, intent(in) :: nROOTiter
integer, intent(in) :: nstepsconnect(:)
integer, intent(in) :: nCut_iter(:)
integer, intent(in) :: roottype(:)
double precision, intent(in) :: rooteps(:)
integer, intent(in) :: lrefine
integer, intent(in) :: nrefinenew
integer, intent(out) :: nkpts_int
double precision, intent(out), allocatable :: kpoints_int(:,:)
double precision, intent(out), allocatable :: areas_int(:)

private subroutine find_intesection_lines(inc, lattice, cluster, tgmatrx, symmetries, nCub3, bounds, nmarked, imarked, nsteps, niter, roottype, rooteps, nfaces, nvec, dscal, npoints_vis_tot, npoints_int_tot, kpoints_vis_all, kpoints_int_all, areas_int_all, vis2int_all)

Arguments

Type IntentOptional Attributes Name
type(inc_TYPE), intent(in) :: inc
type(lattice_TYPE), intent(in) :: lattice
type(cluster_TYPE), intent(in) :: cluster
type(tgmatrx_TYPE), intent(in) :: tgmatrx
type(symmetries_TYPE), intent(in) :: symmetries
integer, intent(in) :: nCub3(3)
double precision, intent(in) :: bounds(3,2)
integer, intent(in) :: nmarked
integer, intent(in) :: imarked(nmarked)
integer, intent(in) :: nsteps
integer, intent(in) :: niter
integer, intent(in) :: roottype
double precision, intent(in) :: rooteps
integer, intent(in) :: nfaces
double precision, intent(in) :: nvec(3,nfaces)
double precision, intent(in) :: dscal(nfaces)
integer, intent(out) :: npoints_vis_tot
integer, intent(out) :: npoints_int_tot
double precision, intent(out), allocatable :: kpoints_vis_all(:,:)
double precision, intent(out), allocatable :: kpoints_int_all(:,:)
double precision, intent(out), allocatable :: areas_int_all(:)
integer, intent(out), allocatable :: vis2int_all(:)

private subroutine find_intesection_lines_memopt(inc, lattice, cluster, tgmatrx, symmetries, nCub3, bounds, nmarked, imarked, nsteps, niter, roottype, rooteps, nfaces, nvec, dscal, npoints_vis_tot, npoints_int_tot, kpoints_vis_all, kpoints_int_all, areas_int_all, vis2int_all)

Arguments

Type IntentOptional Attributes Name
type(inc_TYPE), intent(in) :: inc
type(lattice_TYPE), intent(in) :: lattice
type(cluster_TYPE), intent(in) :: cluster
type(tgmatrx_TYPE), intent(in) :: tgmatrx
type(symmetries_TYPE), intent(in) :: symmetries
integer, intent(in) :: nCub3(3)
double precision, intent(in) :: bounds(3,2)
integer, intent(in) :: nmarked
integer, intent(in) :: imarked(nmarked)
integer, intent(in) :: nsteps
integer, intent(in) :: niter
integer, intent(in) :: roottype
double precision, intent(in) :: rooteps
integer, intent(in) :: nfaces
double precision, intent(in) :: nvec(3,nfaces)
double precision, intent(in) :: dscal(nfaces)
integer, intent(out) :: npoints_vis_tot
integer, intent(out) :: npoints_int_tot
double precision, intent(out), allocatable :: kpoints_vis_all(:,:)
double precision, intent(out), allocatable :: kpoints_int_all(:,:)
double precision, intent(out), allocatable :: areas_int_all(:)
integer, intent(out), allocatable :: vis2int_all(:)

private subroutine split_line(kline, eigw_line, kstore, eigw_store, kcounter, nfaces, nvec, dscal)

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: kline(3,2)
double complex, intent(in) :: eigw_line(2)
double precision, intent(inout) :: kstore(3,nkpmax)
double complex, intent(inout) :: eigw_store(nkpmax)
integer, intent(inout) :: kcounter
integer, intent(in) :: nfaces
double precision, intent(in) :: nvec(3,nfaces)
double precision, intent(in) :: dscal(nfaces)

private subroutine mark_squares_in_IBZ(nCub3, nfaces, nvec, dscal, bounds, nmarked, imarked)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nCub3(3)
integer, intent(in) :: nfaces
double precision, intent(in) :: nvec(3,nfaces)
double precision, intent(in) :: dscal(nfaces)
double precision, intent(in) :: bounds(3,2)
integer, intent(inout) :: nmarked
integer, intent(inout), allocatable :: imarked(:)

private subroutine cut_and_update_squares(ncut, nCub3, nmarked, imarked)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ncut
integer, intent(inout) :: nCub3(3)
integer, intent(inout) :: nmarked
integer, intent(inout), allocatable :: imarked(:)

private subroutine read_squaresrefine(nCub3, nmarked, imarked)

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: nCub3(3)
integer, intent(out) :: nmarked
integer, intent(out), allocatable :: imarked(:)

private subroutine squares2TXT(filename, nCub3, nmarked, imarked, bounds)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
integer, intent(in) :: nCub3(3)
integer, intent(in) :: nmarked
integer, intent(in) :: imarked(nmarked)
double precision, intent(in) :: bounds(3,2)

private subroutine init_square2triangles()

Arguments

None