fermisurfer  2.0.0
fermisurfer
Functions
section.cpp File Reference

Functions for the 2D Fermi line. More...

#include <wx/wx.h>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include "basic_math.hpp"
#include "variable.hpp"
Include dependency graph for section.cpp:

Go to the source code of this file.

Functions

static void proj_2d (GLfloat axis2d[2][3], GLfloat vec[3])
 Project 3D \(k\)-vector into 2D plane. More...
 
static void set2daxis (GLfloat secvec[3], GLfloat axis2d[2][3])
 Set Projection axis for 2D plane. More...
 
int bragg_vert2d (int nbragg, GLfloat bragg[26][3], GLfloat brnrm[26], GLfloat secvec[3], GLfloat secscale, int jbr, int nbr, GLfloat vert[3], GLfloat vert2[3])
 Judge wheser this line is the edge of 1st BZ (or the premitive BZ) More...
 
void calc_2dbz ()
 Compute boundary of 2D BZ. More...
 
void calc_section ()
 Compute Fermi-line. More...
 

Detailed Description

Functions for the 2D Fermi line.

Definition in file section.cpp.

Function Documentation

◆ bragg_vert2d()

int bragg_vert2d ( int  nbragg,
GLfloat  bragg[26][3],
GLfloat  brnrm[26],
GLfloat  secvec[3],
GLfloat  secscale,
int  jbr,
int  nbr,
GLfloat  vert[3],
GLfloat  vert2[3] 
)

Judge wheser this line is the edge of 1st BZ (or the premitive BZ)

Parameters
[in]jbr[in] Index of a Bragg plane
[in]nbr[in]
[in,out]vert[inout] start point of line
[in]vert2[in] end point of line

Definition at line 108 of file section.cpp.

References bragg, brnrm, nbragg, secscale, secvec, and solve3().

Referenced by calc_2dbz().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calc_2dbz()

void calc_2dbz ( )

Compute boundary of 2D BZ.

Modify : nbzl2d, bzl2d_proj

Definition at line 181 of file section.cpp.

References axis2d, bragg, bragg_vert2d(), brnrm, bzl2d, bzl2d_proj, fbz, nbragg, nbzl2d, proj_2d(), secscale, secvec, and set2daxis().

Referenced by compute_patch_segment(), and MyApp::OnInit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calc_section()

void calc_section ( )

Compute Fermi-line.

Modify : n2d, clr2d, kv2d

Definition at line 276 of file section.cpp.

References axis2d, clr, clr2d, eigsort(), fbz, get_thread(), kv2d, kvp, n2d, nb, nthreads, ntri, proj_2d(), secscale, secvec, and terminal.

Referenced by compute_patch_segment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ proj_2d()

static void proj_2d ( GLfloat  axis2d[2][3],
GLfloat  vec[3] 
)
static

Project 3D \(k\)-vector into 2D plane.

Modify: kv2d

Parameters
[in,out]vec[in,out] Line ends to be projected

Definition at line 48 of file section.cpp.

References axis2d.

Referenced by calc_2dbz(), and calc_section().

Here is the caller graph for this function:

◆ set2daxis()

static void set2daxis ( GLfloat  secvec[3],
GLfloat  axis2d[2][3] 
)
static

Set Projection axis for 2D plane.

Modify : axis2d

Definition at line 69 of file section.cpp.

References axis2d, and secvec.

Referenced by calc_2dbz().

Here is the caller graph for this function: