|
gimme-alpha 0.1
|
#include <stdio.h>#include <stdlib.h>#include <libnextnano/read_nextnano_8x8kp_output.h>#include <libnextnano/read_nextnano_inputfile.h>#include <libcommon/textfile_common.h>#include <libcommon/gimme_alpha_types.h>
Include dependency graph for read_nextnano_8x8kp_output.c:Go to the source code of this file.
Functions | |
| int | read_nextnano_8x8kp_get_filename (char *buffer, int bufflen, int bands, int electron, int qcluster, int eignum, int kpar, int kz, int neumann, int wavefunc) |
| int | read_nextnano_8x8kp_get_eigvals_filename (char *buffer, int bufflen, int bands, int electron, int qcluster, int kpar, int neumann) |
| GList * | read_nextnano_8x8kp_get_eigfunc (GFile *base, GHashTable *input, int num, GList **titles) |
| GList * | read_nextnano_8x8kp_get_eigvals (GFile *base, GHashTable *input) |
| GList* read_nextnano_8x8kp_get_eigfunc | ( | GFile * | base, |
| GHashTable * | input, | ||
| int | num, | ||
| GList ** | titles | ||
| ) |
Definition at line 36 of file read_nextnano_8x8kp_output.c.
References DOUBLE_TYPE, read_nextnano_8x8kp_get_filename(), read_nextnano_extract_item(), and read_titled_whitespaced_data().
{
int err;
char *kpdir_s = read_nextnano_extract_item(input, "output-kp-data", 0, "destination-directory", &err);
if(err != 0) {
fprintf(stderr, "Error extracting item from nextnano input.\n");
return NULL;
}
GFile *kpdir = g_file_get_child(base, kpdir_s);
char eigfunc_file[1024] = {'\0'};
read_nextnano_8x8kp_get_filename(eigfunc_file, 1024, 8, 1, 1, num, 1, 1, 1, 1);
//fprintf(stderr, "got eigenfunction file of %s\n", eigfunc_file);
GFile *eigfunc_f = g_file_get_child(kpdir, eigfunc_file);
GError *err_func;
GFileInputStream *eigfunc_stream = g_file_read(eigfunc_f, NULL, &err_func);
if(eigfunc_stream == NULL) {
fprintf(stderr, "failed top open the eigenfunction file (%s): eigfunc error was %s\n", eigfunc_file, err_func->message);
g_object_unref(kpdir);
g_object_unref(eigfunc_f);
return NULL;
}
*titles = NULL;
GList *eigfunc = read_titled_whitespaced_data(G_INPUT_STREAM(eigfunc_stream), &err_func, titles, '!', DOUBLE_TYPE);
/*free the data structures*/
g_object_unref(kpdir);
g_object_unref(eigfunc_f);
g_object_unref(eigfunc_stream);
return eigfunc;
}
Here is the call graph for this function:| GList* read_nextnano_8x8kp_get_eigvals | ( | GFile * | base, |
| GHashTable * | input | ||
| ) |
Definition at line 66 of file read_nextnano_8x8kp_output.c.
References DOUBLE_TYPE, read_nextnano_8x8kp_get_eigvals_filename(), read_nextnano_extract_item(), and read_titled_whitespaced_data().
{
int err;
char *kpdir_s = read_nextnano_extract_item(input, "output-kp-data", 0, "destination-directory", &err);
if(err != 0) {
fprintf(stderr, "Error extracting item from nextnano input.\n");
return NULL;
}
GFile *kpdir = g_file_get_child(base, kpdir_s);
char eigval_file[1024] = {'\0'};
read_nextnano_8x8kp_get_eigvals_filename(eigval_file, 1024, 8, 1, 1, 1, 1);
GFile *eigval_f = g_file_get_child(kpdir, eigval_file);
GError *err_val;
GFileInputStream *eigval_stream = g_file_read(eigval_f, NULL, &err_val);
if(eigval_stream==NULL) {
fprintf(stderr, "failed to open the eigvalues stream (file %s): err was %s\n", eigval_file, err_val->message);
return NULL;
}
GList *eigval_titles = g_list_append(NULL, "num");
eigval_titles = g_list_append(eigval_titles, "value");
GList *eigvals = read_titled_whitespaced_data(G_INPUT_STREAM(eigval_stream), &err_val, &eigval_titles, '!', DOUBLE_TYPE);
/*Re-purpose the list so that it's a list of values.*/
GList *l;
GHashTable *t;
double *v;
for(l=g_list_first(eigvals); l != NULL; l = g_list_next(l)) {
t = l->data;
fprintf(stderr, " key=%g value=%g\n", *((double*)g_hash_table_lookup(t, "num")), *((double*)g_hash_table_lookup(t, "value")));
v = g_hash_table_lookup(t, "value");
l->data = malloc(sizeof(double));
*(double*)(l->data) = *(double*)v;
g_hash_table_unref(t);
}
/*Free our datastructures.*/
g_list_free(eigval_titles);
g_object_unref(kpdir);
g_object_unref(eigval_f);
g_object_unref(eigval_stream);
return eigvals;
}
Here is the call graph for this function:| int read_nextnano_8x8kp_get_eigvals_filename | ( | char * | buffer, |
| int | bufflen, | ||
| int | bands, | ||
| int | electron, | ||
| int | qcluster, | ||
| int | kpar, | ||
| int | neumann | ||
| ) |
Definition at line 32 of file read_nextnano_8x8kp_output.c.
Referenced by read_nextnano_8x8kp_get_eigvals().
{
return snprintf(buffer, bufflen, "kp_%dx%deigenvalues_qc%03d_%s_kpar%04d_1D_%s.dat", bands, bands, qcluster, (electron?"el":"hl"), kpar, (neumann?"neu":"dir"));
}
Here is the caller graph for this function:| int read_nextnano_8x8kp_get_filename | ( | char * | buffer, |
| int | bufflen, | ||
| int | bands, | ||
| int | electron, | ||
| int | qcluster, | ||
| int | eignum, | ||
| int | kpar, | ||
| int | kz, | ||
| int | neumann, | ||
| int | wavefunc | ||
| ) |
Definition at line 28 of file read_nextnano_8x8kp_output.c.
Referenced by read_nextnano_8x8kp_get_eigfunc().
{
return snprintf(buffer, bufflen, "kp_%dx%d_%s1D_qc%03d_%s%03d_kpar%04d_Kz%03d_%s.dat", bands, bands, (electron?"el":"hl"), qcluster, (wavefunc?"wv":"ev"), eignum, kpar, kz, (neumann?"neu":"dir"));
}
Here is the caller graph for this function: