Christian, thanks so much !

Your code seems to contain everything I wanted to calculate.

There's one minor mismatched declaration in ML_ADMQuantities which should be fixed anyhow.

####

[khi@zenith src]$ diff ML_ADMQuantities.c.ori ML_ADMQuantities.c
56c56
<   const char *groups[] = {"grid::coordinates","Grid::coordinates","McLachlan::ML_curv","McLachlan::ML_Gamma","McLachlan::ML_lapse","McLachlan::ML_log_confac","McLachlan::ML_metric","McLachlan::ML_shift","McLachlan::ML_trace_curv","ML_ADMQuantities::ML_Jadm","ML_ADMQuantities::ML_Madm"};
---
>   const char *groups[] = {"grid::coordinates","Grid::coordinates","ML_BSSN::ML_curv","ML_BSSN::ML_Gamma","ML_BSSN::ML_lapse","ML_BSSN::ML_log_confac","ML_BSSN::ML_metric","ML_BSSN::ML_shift","ML_BSSN::ML_trace_curv","ML_ADMQuantities::ML_Jadm","ML_ADMQuantities::ML_Madm"};

####

Thanks again,

Hee Il

2011/1/5 Christian D. Ott <cott@tapir.caltech.edu>

Dear Hee Il,

I agree that getting this right is tricky. You must set up your grid
functions that you want to reduce in MoL_PseudoEvolution in local
mode, then do the reduction in CCTK_Analysis in global mode.

I am attaching a Thorn called ZelmaniAnalysis that I use for the
kinds of things you want. The reduction works with Carpet.

Best,

 - Christian



On Wed, Jan 05, 2011 at 09:18:21PM +0900, Hee Il Kim wrote:
> Hi,
>
> Belated Happy New Year !
>
> I am writing a simple code for the calculation of ADM mass and angular
> momentum by using ML_ADMQuantities. As you know,  it requires reduction
> procedure for the summation of the integrand, e.g., density * volume
> measure. I've tried various reduction APIs including old deprecated one, but
> I could only succeed in the integration only over the coarsest grid level,
> which was not accurate.
>
> If I use the new reduction API in the reference manual of Cactus,
> CCTK_ReduceGridArrays;
>
> CCTK_ReduceGridArrays(const cGH *GH,
> int dest_processor,
> int local_reduce_handle,
> int param_table_handle,
> int N_input_arrays,
> const CCTK_INT input_array_variable_indices[],
> int M_output_values,
> const CCTK_INT output_value_type_codes[],
> void* const output_values[]);
>
> , I encounter the following error
> ....
> WARNING[L3,P0] (Cactus): CCTK_ReduceGridArrays: no grid array reduction
> registered
> WARNING level 0 in thorn ML_Analysis processor 0 host compute-0-5.local
>   (line 159 of Evaluate_ADMQuantities.F90):
>   -> Failed to integrate J_z
>
> Param_table_handle is not clear to me but it seems not causing the problem.
> The reduction operators are registered by CactusBase/LocalReduce.
>
> Could you let me know which reduction function I have to use for this
> calculation? I mean the integration over the whole grid levels. Should I do
> loop over refinenment levels;
> ...
> do loop over reflev
>   call CCTK_Reduce
> enddo
> ...
>
> Thanks in advance,
>
> Hee Il

> _______________________________________________
> Users mailing list
> Users@einsteintoolkit.org
> http://lists.einsteintoolkit.org/mailman/listinfo/users