Skip to content
Snippets Groups Projects
Select Git revision
  • 26f1593d5447bd50725f807fd0fa3ba733684abf
  • master default protected
  • antenna-patterns
  • qt5-qopenglwidget
  • license-demo
  • isolated
  • isolated-fixedprofile
  • release_1.1
  • press-conference
  • rim-only
  • release_1.0
11 results

antenna_main.cpp

Blame
  • user avatar
    Oliver Bock authored
    fc050c7a
    History
    antenna_main.cpp 1.53 KiB
    // Copyright Bruce Allen 2017
    // Compile with gcc -o antenna antenna.c -lm
    
    // REMAINING THINGS TO CHECK:
    // (a) sign conventions for h, which arm is positive
    // (b) direction and origin conventions for the polarization axis
    // (c) double check the hand calculations
    
    #include <math.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <strings.h>
    #include "antenna_lib.h"
    
    // This function requires two floating point arguments on the command
    // line, iota and psi, angles in degrees.
    int main(int argc, char *argv[]) {
       // to loop over detectors
       int i;
    
       // to pass data in and out
       struct InputStruct myinput;
       struct OutputStruct myoutput;
       
       // check syntax crudely, issue usage message
       if (argc != 3) {
          fprintf(stderr,
    	      "Wrong argument count! Correct usage:\n"
    	      "%s float_iota_in_degrees float_psi_in_degrees\n",
    	      argv[0]);
          exit(1);
       }
    
       // pass inclination angle, polarization axis, orientation offsets
       myinput.iota = atof(argv[1]);
       myinput.psi = atof(argv[2]);
       for (i=0;i<3;i++) myinput.orientation[i]=0.0;
       
       printf("Iota = %f degrees\nPsi = %f degrees\n", myinput.iota, myinput.psi);
    
       // now compute responses
       get_antenna(&myoutput, &myinput);
    
       // degree character in UTF-8 character set (most likely terminal type!)
       int deg1=0xC2, deg2=0xB0;
       
       // Now display waveforms
       for (i=0; i<3; i++)
          printf("For detector %s the waveform is %.3f w^2 sin(2w[t%+.1f ms]%+.1f%c%c)\n", myoutput.name[i], myoutput.amp[i], myoutput.dt[i], myoutput.phase[i], deg1, deg2);
    
       return 0;
    }