dft_tools/test/c++/converters/vasp/tet_weights.cpp

34 lines
601 B
C++

#include "testing.hpp"
int main()
{
double e[4], en, ci_sum, ct, res[4];
int inds[4];
int i;
char mess[128];
e[0] = -1.5;
e[1] = -1.309017;
e[2] = -1.0;
e[3] = -0.5;
en = -0.55;
printf("\n Test case 2\n\n");
dos_corner_weights(en, e, inds, res);
dos_tet_weights(en, e, inds, &ct);
for(i = 0, ci_sum = 0.0; i < 4; i++)
{
printf(" res[%d] = %20.15lf\n", i, res[i]);
ci_sum += res[i];
}
printf(" Difference: %le\n", fabs(ci_sum - ct));
sprintf(mess, "Difference between 'ci_sum' and 'ct' is too large");
ASSERT(fabs(ci_sum - ct) < 1e-12, mess);
}