From 538f9330d9ffacffcc224fcbd0dcc6aeab71d9ae Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Sat, 1 Mar 2008 22:23:39 -0600 Subject: New thorn CarpetExtra/ReductionTest --- CarpetExtra/ReductionTest/src/CoM.c | 99 +++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 CarpetExtra/ReductionTest/src/CoM.c (limited to 'CarpetExtra/ReductionTest/src/CoM.c') diff --git a/CarpetExtra/ReductionTest/src/CoM.c b/CarpetExtra/ReductionTest/src/CoM.c new file mode 100644 index 000000000..6724ad7be --- /dev/null +++ b/CarpetExtra/ReductionTest/src/CoM.c @@ -0,0 +1,99 @@ +#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); +} + -- cgit v1.2.3