mod_symmetries Module


Uses


Derived Types

type, public ::  symmetries_TYPE

Components

Type Visibility Attributes Name Initial
integer, public :: N = 5
integer, public :: nsym_used
integer, public :: nsym_found
double precision, public :: rotmat(64,3,3)
character(len=10), public :: rotname(64)
integer, public, allocatable :: isym_used(:)
integer, public, allocatable :: isym_found(:)
integer, public, allocatable :: isym_notused(:)

Functions

public function points_in_wedge(nfaces, nvec, dscal, npts, points, mode)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nfaces
double precision, intent(in) :: nvec(3,nfaces)
double precision, intent(in) :: dscal(nfaces)
integer, intent(in) :: npts
double precision, intent(in) :: points(3,npts)
character(len=*), intent(in) :: mode

Return Value logical

public function singlepoint_in_wedge(nfaces, nvec, dscal, point)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nfaces
double precision, intent(in) :: nvec(3,nfaces)
double precision, intent(in) :: dscal(nfaces)
double precision, intent(in) :: point(3)

Return Value logical


Subroutines

public subroutine unfold_visarrays(nkpts_all, nkpts_irr, kpt2irr_in, kpoints_in, kpt2irr_out, irr2kpt_out, kpoints_out)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nkpts_all
integer, intent(in) :: nkpts_irr
integer, intent(in) :: kpt2irr_in(nkpts_all)
double precision, intent(in) :: kpoints_in(3,nkpts_irr)
integer, intent(out), allocatable :: kpt2irr_out(:)
integer, intent(out), allocatable :: irr2kpt_out(:)
double precision, intent(out), allocatable :: kpoints_out(:,:)

public subroutine expand_visarrays(nsym, nkpts1, nkpts_irr1, kpt2irr1, irr2kpt1, kpt2irr, irr2kpt)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nsym
integer, intent(in) :: nkpts1
integer, intent(in) :: nkpts_irr1
integer, intent(in) :: kpt2irr1(nkpts1)
integer, intent(in) :: irr2kpt1(nkpts_irr1)
integer, intent(out), allocatable :: kpt2irr(:)
integer, intent(out), allocatable :: irr2kpt(:)

public subroutine expand_areas(nsym, nkpts_in, areas_in, areas_out)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nsym
integer, intent(in) :: nkpts_in
double precision, intent(in) :: areas_in(nkpts_in)
double precision, intent(out), allocatable :: areas_out(:)

public subroutine expand_spinvalues(nsym, ndegen, nsqa, nkpts_in, spinval_in, spinval_out)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nsym
integer, intent(in) :: ndegen
integer, intent(in) :: nsqa
integer, intent(in) :: nkpts_in
double precision, intent(in) :: spinval_in(ndegen,nsqa,nkpts_in)
double precision, intent(out), allocatable :: spinval_out(:,:,:)

public subroutine expand_torqvalues(nsym, ndegen, nkpts_in, torqval_in, torqval_out)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nsym
integer, intent(in) :: ndegen
integer, intent(in) :: nkpts_in
double precision, intent(in) :: torqval_in(3,ndegen,nkpts_in)
double precision, intent(out), allocatable :: torqval_out(:,:,:)

public subroutine rotate_kpoints(rotmat, nkpts_in, kpoints_in, nsym, isym, nkpts_out, kpoints_out)

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: rotmat(64,3,3)
integer, intent(in) :: nkpts_in
double precision, intent(in) :: kpoints_in(3,nkpts_in)
integer, intent(in) :: nsym
integer, intent(in) :: isym(nsym)
integer, intent(out) :: nkpts_out
double precision, intent(out), allocatable :: kpoints_out(:,:)

public subroutine get_2DIBZwedge_lines(recbv, nsym, rotmat, isym, nBZlines, nvec, dscal, bounds)

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: recbv(3,3)
integer, intent(in) :: nsym
double precision, intent(in) :: rotmat(64,3,3)
integer, intent(in) :: isym(nsym)
integer, intent(out) :: nBZlines
double precision, intent(out), allocatable :: nvec(:,:)
double precision, intent(out), allocatable :: dscal(:)
double precision, intent(out) :: bounds(3,2)

public subroutine get_IBZwedge_faces(recbv, nsym, rotmat, isym, nfaces, nvec, dscal, bounds)

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: recbv(3,3)
integer, intent(in) :: nsym
double precision, intent(in) :: rotmat(64,3,3)
integer, intent(in) :: isym(nsym)
integer, intent(out) :: nfaces
double precision, intent(out), allocatable :: nvec(:,:)
double precision, intent(out), allocatable :: dscal(:)
double precision, intent(out) :: bounds(3,2)

public subroutine set_symmetries(inc, lattice, symmetries)

Arguments

Type IntentOptional Attributes Name
type(inc_TYPE), intent(in) :: inc
type(lattice_TYPE), intent(in) :: lattice
type(symmetries_TYPE), intent(out) :: symmetries

private subroutine read_sym_inp(rotname, nsym, isymindex)

Arguments

Type IntentOptional Attributes Name
character(len=10), intent(in) :: rotname(64)
integer, intent(out) :: nsym
integer, intent(out), allocatable :: isymindex(:)