source: pcp/src/wannier.h@ f70c2a

Last change on this file since f70c2a was e08f45, checked in by Frederik Heber <heber@…>, 17 years ago

Merge branch 'ConcaveHull' of ../espack2 into ConcaveHull

Conflicts:

molecuilder/src/boundary.cpp
molecuilder/src/boundary.hpp
molecuilder/src/builder.cpp
molecuilder/src/linkedcell.cpp
molecuilder/src/linkedcell.hpp
molecuilder/src/vector.cpp
molecuilder/src/vector.hpp
util/src/NanoCreator.c

Basically, this resulted from a lot of conversions two from spaces to one tab, which is my standard indentation. The mess was caused by eclipse auto-indenting. And in espack2:ConcaveHull was the new stuff, so all from ConcaveHull was replaced in case of doubt.
Additionally, vector had ofstream << operator instead ostream << ...

  • Property mode set to 100755
File size: 2.3 KB
Line 
1#ifndef WANNIER_H_
2#define WANNIER_H_
3
4/** \file wannier.h
5 * Header file for \ref wannier.c
6 *
7 * Contains declarations of functions which reside in \ref wannier.c
8 *
9 Project: ParallelCarParrinello
10 \author Frederik Heber
11 \date 2006
12
13 File: wannier.h
14 $Id: wannier.h,v 1.3 2007-10-08 15:43:29 heber Exp $
15*/
16
17#ifdef HAVE_CONFIG_H
18#include <config.h>
19#endif
20
21#include <gsl/gsl_complex.h>
22
23/** Structure contains all variables needed for diagonalization of a matrix with
24 * SerialDiagonalization() or ParallelDiagonalization()
25 */
26struct DiagonalizationData {
27 int Num; //!< Number of rows/columns
28 int AllocNum; //!< even number of rows/columns
29 int NumMatrices;//!< number of matrices to be simultaneously "actively" diagonalized
30 int extra; //!< number of additional matrices that are also, yet "passively" diagonalized (not considered in rotation angle evaluation)
31 gsl_matrix *U; //!< transformation matrix
32 gsl_matrix **A; //!< matrix to be diagonlized
33 int *top; //!< merry-go-round top row of indices
34 int *bot; //!< merry-go-round bottom row of indices
35 MPI_Comm *comm; //!< MPI communicator for ParallelDiagonalization()
36 int ProcRank; //!< Rank of this process, used in ParallelDiagonalization()
37 int ProcNum; //!< Number of process in communicator, used in ParallelDiagonalization()
38};
39
40
41void PrintGSLMatrix(struct Problem *P, gsl_matrix *U, int Num, const char *msg);
42void ComputeMLWF(struct Problem *P);
43void WriteWannierFile(struct Problem *P, double spread, double old_spread, double **WannierCentre, double *WannierSpread);
44int ParseWannierFile(struct Problem *P);
45void ChangeWannierCentres(struct Problem *P);
46void SerialDiagonalization(struct Problem *P, struct DiagonalizationData *DiagData);
47void ParallelDiagonalization(struct Problem *P, struct DiagonalizationData *DiagData);
48double CalculateSpread(struct Problem *P, int i);
49gsl_complex convertComplex (fftw_complex a);
50void InitDiagonalization(struct Problem *P, struct DiagonalizationData *DiagData, int Num, int NumMatrices, int extra);
51void FreeDiagonalization(struct DiagonalizationData *DiagData);
52void OrthogonalizePsis(struct Problem *P);
53void StrongOrthogonalizePsis(struct Problem *P);
54void Diagonalize(struct Problem *P, struct DiagonalizationData *DiagData);
55
56void CalculateSecondOrderReciprocalMoment(struct Problem *P);
57
58#endif /*WANNIER_H_*/
Note: See TracBrowser for help on using the repository browser.