Exemplo n.º 1
0
int main(int argc, char **argv) 
{

  struct particle *ptcl;
  struct run_param this_run;
  float *mesh;

  if(argc != 3) {
    fprintf(stderr, "Usage :: %s <input_prefix> <nmesh>\n", argv[0]);
    exit(EXIT_FAILURE);
  }

  input_header_file(&this_run, argv[1]);

  ptcl = (struct particle *)malloc(sizeof(struct particle)*this_run.npart_total);

  int nmesh = atoi(argv[2]);
  int nmesh_p2 = nmesh+2;

  mesh = (float *) malloc(sizeof(float)*nmesh*nmesh*nmesh_p2);
    
  input_data_all(ptcl, &this_run, argv[1]);

  calc_mesh_density(ptcl, mesh, nmesh, &this_run);
  calc_power(mesh, &this_run, nmesh);

  free(mesh);
  free(ptcl);
}
Exemplo n.º 2
0
uint16_t
metering_get_power(void)
{
  uint16_t tmp;
  /*check whether measurement is up to date */
  if (clock_time() > clock_old)
    tmp = (clock_time() - clock_old);
  else
    tmp = (0xFFFF - clock_old + clock_time() + 1);

  if (tmp > OUT_OF_DATE_TIME * CLOCK_SECOND)
    metering_power = 0;

#if S0_ENABLE
  else if (metering_power != 0 && tmp > 2 * (((uint32_t)metering_reference_value*10) / (uint32_t)metering_power)) //S0 calibration is scaled
#else
  else if (metering_power != 0 && tmp > 2 * (metering_reference_value / metering_power))
#endif
      metering_power = calc_power(tmp);

  return metering_power;
}