source: util/CreateGaAs.c@ dac5c5

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

-initial commit
-Minimum set of files needed from ESPACK SVN repository
-Switch to three tantamount package parts instead of all relating to pcp (as at some time Ralf's might find inclusion as well)

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*
2 Project: CP
3 Jan Hamaekers
4 1999
5
6 File: CreateGaAs.c
7
8*/
9/*$Id: CreateGaAs.c,v 1.2 2007-09-03 16:28:58 heber Exp $*/
10
11#include<stdlib.h>
12#include<stdio.h>
13#include<math.h>
14
15int main(int argc, char** argv) {
16 int n[3], N[3];
17 double L[3], O[3];
18 double Fac;
19 FILE *targetbox, *targetpsi, *targetion;
20 char dummy[255];
21 L[0] = 10.47;
22 L[1] = 10.47;
23 L[2] = 10.47;
24 if(argc < 6) {
25 fprintf(stderr,"Not enough arguments\nUsage: CreateGaAs source target nmax\n");
26 exit(1);
27 }
28 sprintf(dummy, "%s.box", argv[1]);
29 targetbox = fopen(dummy, "w");
30 if(targetbox == 0) {
31 fprintf(stderr,"Could not open targetbox\n");
32 exit(1);
33 }
34 sprintf(dummy, "%s.psi", argv[1]);
35 targetpsi = fopen(dummy, "w");
36 if(targetpsi == 0) {
37 fprintf(stderr,"Could not open targetpsi\n");
38 exit(1);
39 }
40 sprintf(dummy, "%s.ion", argv[1]);
41 targetion = fopen(dummy, "w");
42 if(targetion == 0) {
43 fprintf(stderr,"Could not open targetion\n");
44 exit(1);
45 }
46 N[0] = atoi(argv[2]);
47 N[1] = atoi(argv[3]);
48 N[2] = atoi(argv[4]);
49 Fac = atof(argv[5]);
50 fprintf(targetbox, "%e\n0.0\t%e\n0.0\t0.0\t%e\n", N[0]*L[0], N[1]*L[1], N[2]*L[2]);
51 fprintf(targetpsi, "MaxPsiDouble\t%i\n", 16*N[0]*N[1]*N[2]);
52 fprintf(targetion, "%i 31 1.0 3 3 %e\n", 4*N[0]*N[1]*N[2],Fac);
53 for (n[0]=0; n[0]<N[0];n[0]++)
54 for (n[1]=0; n[1]<N[1];n[1]++)
55 for (n[2]=0; n[2]<N[2];n[2]++) {
56 O[0] = n[0]*L[0];
57 O[1] = n[1]*L[1];
58 O[2] = n[2]*L[2];
59 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+0.0, O[1]+0.0, O[2]+0.0);
60 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+L[0]*0.5, O[1]+L[1]*0.5, O[2]+0.0);
61 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+L[0]*0.5, O[1]+0.0, O[2]+L[2]*0.5);
62 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+0.0, O[1]+L[1]*0.5, O[2]+L[2]*0.5);
63 }
64 fprintf(targetion, "%i 33 1.0 3 3 %e\n", 4*N[0]*N[1]*N[2],Fac);
65 for (n[0]=0; n[0]<N[0];n[0]++)
66 for (n[1]=0; n[1]<N[1];n[1]++)
67 for (n[2]=0; n[2]<N[2];n[2]++) {
68 O[0] = n[0]*L[0]+L[0]*0.25;
69 O[1] = n[1]*L[1]+L[1]*0.25;
70 O[2] = n[2]*L[2]+L[2]*0.25;
71 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+0.0, O[1]+0.0, O[2]+0.0);
72 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+L[0]*0.5, O[1]+L[1]*0.5, O[2]+0.0);
73 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+L[0]*0.5, O[1]+0.0, O[2]+L[2]*0.5);
74 fprintf(targetion, "%e\t%e\t%e\t0\n", O[0]+0.0, O[1]+L[1]*0.5, O[2]+L[2]*0.5);
75 }
76 fclose(targetion);
77 fclose(targetbox);
78 fclose(targetpsi);
79 return(0);
80}
Note: See TracBrowser for help on using the repository browser.