#include "cctk.h" #include "cctk_Parameters.h" #include "cctk_Arguments.h" #include "util_Table.h" #include #include void CoM_Local(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; int i,j,k,index; int nx = cctk_lsh[0]; int ny = cctk_lsh[1]; int nz = cctk_lsh[2]; for (k=0;k=0); ierr = CCTK_Reduce(cctkGH, -1, reduction_handle, 1, CCTK_VARIABLE_REAL, (void *)&denstotal, 1, varindex); assert(!ierr); varindex = CCTK_VarIndex("ReductionTest::dMx"); assert(varindex>=0); ierr = CCTK_Reduce(cctkGH, -1, reduction_handle, 1, CCTK_VARIABLE_REAL, (void *)Mx, 1, varindex); assert(!ierr); varindex = CCTK_VarIndex("ReductionTest::dMy"); assert(varindex>=0); ierr = CCTK_Reduce(cctkGH, -1, reduction_handle, 1, CCTK_VARIABLE_REAL, (void *)My, 1, varindex); assert(!ierr); varindex = CCTK_VarIndex("ReductionTest::dMz"); assert(varindex>=0); ierr = CCTK_Reduce(cctkGH, -1, reduction_handle, 1, CCTK_VARIABLE_REAL, (void *)Mz, 1, varindex); assert(!ierr); denstotal = sym_factor1*denstotal; *Mx = sym_factor2*(*Mx)/(denstotal); *My = sym_factor2*(*My)/(denstotal); *Mz = sym_factor3*(*Mz)/(denstotal); *Mr = sqrt( (*Mx)*(*Mx)+(*My)*(*My)+(*Mz)*(*Mz) ); CCTK_VInfo(CCTK_THORNSTRING,"Mr: %15.6E Mx: %15.6E My: %15.6E Mz %15.6E",*Mr,*Mx,*My,*Mz); }