Hi,<br><br>Still I&#39;m confused with the carpet reduction. The basic reduction method in Christian&#39;s code was same with mine. But I thought what I did before should be improved. First of all my expression &quot;integration over only the coarsest level&quot; is very inaccurate. Anyway let me ask again.<br>
<br>What people do in reduction of , e.g. &quot;Mass = Integration of density * volume_measure&quot; is;<br><br>------  Method I --------<br>* In local mode at mol_pseudoevolution or poststep<br>define Integrand = density      ! note it&#39;s not &quot;density * volume_measure&quot;<br>
<br>* In global mode at analysis<br>CCTK_Reduce(Integrand --&gt; Mass_temp)<br>Mass = Mass_temp * product(cctk_delta_space)<br>------------------------------<br><br>Why do people define &quot;integrand = density&quot; not as &quot;density * volume_measure&quot;? However, if i do take the latter, then I get very weird result, so people might have not taken that. To my understanding, the above Method I will produce;<br>
<br>Result I: Mass = (Sum_reflev=0 of capret weighted density(i,j,k) * dV_0) + (Sum_reflev=1 of carpet weighted density(i,j,k) * dV_0) + ... <br><br>But what I wanted (expected) to get by defining integrand = density * volume_measure&quot; is more accurate one;<br>
<br>Result II: Mass = (Sum_reflev=0 of carpet weighted density(i,j,k) * dV_0) + (Sum_reflev=1 of carpet weighted density(i,j,k) * 1/8 * dV_0) + ...<br><br>What is the above Method I doing for? Result I or Result II, or something else?<br>
The new reduction API mentioned in the reference manual is still underdevelopment?<br><br>Thanks in advance,<br><br>Hee Il<br><br><br><br><div class="gmail_quote">2011/1/6 Hee Il Kim <span dir="ltr">&lt;<a href="mailto:heeilkim@gmail.com">heeilkim@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Christian, thanks so much !<br><br>Your code seems to contain everything I wanted to calculate.<br>
<br>There&#39;s one minor mismatched declaration in ML_ADMQuantities which should be fixed anyhow.<br><br>####<br><br>[khi@zenith src]$ diff ML_ADMQuantities.c.ori ML_ADMQuantities.c<br>
56c56<br>&lt;   const char *groups[] = {&quot;grid::coordinates&quot;,&quot;Grid::coordinates&quot;,&quot;McLachlan::ML_curv&quot;,&quot;McLachlan::ML_Gamma&quot;,&quot;McLachlan::ML_lapse&quot;,&quot;McLachlan::ML_log_confac&quot;,&quot;McLachlan::ML_metric&quot;,&quot;McLachlan::ML_shift&quot;,&quot;McLachlan::ML_trace_curv&quot;,&quot;ML_ADMQuantities::ML_Jadm&quot;,&quot;ML_ADMQuantities::ML_Madm&quot;};<br>

---<br>&gt;   const char *groups[] = {&quot;grid::coordinates&quot;,&quot;Grid::coordinates&quot;,&quot;ML_BSSN::ML_curv&quot;,&quot;ML_BSSN::ML_Gamma&quot;,&quot;ML_BSSN::ML_lapse&quot;,&quot;ML_BSSN::ML_log_confac&quot;,&quot;ML_BSSN::ML_metric&quot;,&quot;ML_BSSN::ML_shift&quot;,&quot;ML_BSSN::ML_trace_curv&quot;,&quot;ML_ADMQuantities::ML_Jadm&quot;,&quot;ML_ADMQuantities::ML_Madm&quot;};<br>

<br>####<br><br>Thanks again,<br><br>Hee Il<br><br><div class="gmail_quote">2011/1/5 Christian D. Ott <span dir="ltr">&lt;<a href="mailto:cott@tapir.caltech.edu" target="_blank">cott@tapir.caltech.edu</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Dear Hee Il,<br>
<br>
I agree that getting this right is tricky. You must set up your grid<br>
functions that you want to reduce in MoL_PseudoEvolution in local<br>
mode, then do the reduction in CCTK_Analysis in global mode.<br>
<br>
I am attaching a Thorn called ZelmaniAnalysis that I use for the<br>
kinds of things you want. The reduction works with Carpet.<br>
<br>
Best,<br>
<br>
 - Christian<br>
<div><div></div><div><br>
<br>
<br>
On Wed, Jan 05, 2011 at 09:18:21PM +0900, Hee Il Kim wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; Belated Happy New Year !<br>
&gt;<br>
&gt; I am writing a simple code for the calculation of ADM mass and angular<br>
&gt; momentum by using ML_ADMQuantities. As you know,  it requires reduction<br>
&gt; procedure for the summation of the integrand, e.g., density * volume<br>
&gt; measure. I&#39;ve tried various reduction APIs including old deprecated one, but<br>
&gt; I could only succeed in the integration only over the coarsest grid level,<br>
&gt; which was not accurate.<br>
&gt;<br>
&gt; If I use the new reduction API in the reference manual of Cactus,<br>
&gt; CCTK_ReduceGridArrays;<br>
&gt;<br>
&gt; CCTK_ReduceGridArrays(const cGH *GH,<br>
&gt; int dest_processor,<br>
&gt; int local_reduce_handle,<br>
&gt; int param_table_handle,<br>
&gt; int N_input_arrays,<br>
&gt; const CCTK_INT input_array_variable_indices[],<br>
&gt; int M_output_values,<br>
&gt; const CCTK_INT output_value_type_codes[],<br>
&gt; void* const output_values[]);<br>
&gt;<br>
&gt; , I encounter the following error<br>
&gt; ....<br>
&gt; WARNING[L3,P0] (Cactus): CCTK_ReduceGridArrays: no grid array reduction<br>
&gt; registered<br>
&gt; WARNING level 0 in thorn ML_Analysis processor 0 host compute-0-5.local<br>
&gt;   (line 159 of Evaluate_ADMQuantities.F90):<br>
&gt;   -&gt; Failed to integrate J_z<br>
&gt;<br>
&gt; Param_table_handle is not clear to me but it seems not causing the problem.<br>
&gt; The reduction operators are registered by CactusBase/LocalReduce.<br>
&gt;<br>
&gt; Could you let me know which reduction function I have to use for this<br>
&gt; calculation? I mean the integration over the whole grid levels. Should I do<br>
&gt; loop over refinenment levels;<br>
&gt; ...<br>
&gt; do loop over reflev<br>
&gt;   call CCTK_Reduce<br>
&gt; enddo<br>
&gt; ...<br>
&gt;<br>
&gt; Thanks in advance,<br>
&gt;<br>
&gt; Hee Il<br>
<br>
</div></div>&gt; _______________________________________________<br>
&gt; Users mailing list<br>
&gt; <a href="mailto:Users@einsteintoolkit.org" target="_blank">Users@einsteintoolkit.org</a><br>
&gt; <a href="http://lists.einsteintoolkit.org/mailman/listinfo/users" target="_blank">http://lists.einsteintoolkit.org/mailman/listinfo/users</a><br>
<br>
</blockquote></div><br>
</blockquote></div><br>