<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div> 
<div> 
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Gesendet:</b> Donnerstag, 24. August 2017 um 19:53 Uhr<br/>
<b>Von:</b> "Stefan Wierling" <stefanwierling@gmx.de><br/>
<b>An:</b> "Sahai, Amal" <sahai2@illinois.edu><br/>
<b>Cc:</b> "dune-fem@lists.dune-project.org" <dune-fem@lists.dune-project.org><br/>
<b>Betreff:</b> Aw: [dune-fem] LocalEvaluation</div>

<div name="quoted-content">
<div style="font-family: Verdana;font-size: 12.0px;">
<div>
<div>Hi Amal,</div>

<div> </div>

<div>the local evaluation issues can be found inside the file dune/fem-dg/pass/context.hh.</div>

<div> </div>

<div>But the most important question for you is:</div>

<div>What is a local evaluation context and why do we use it?</div>

<div> </div>

<div>The simplest local evaluation you can imagine is the evaluation of an n-dimensional quantity u in some local (quadrature point) x.</div>

<div>Thus, a local evaluation collects all information belonging to the quadrature point x and the "real" evaluation u(x) which is just a vector-like structure (or matrix...).</div>

<div> </div>

<div>Ok, that is simple and we could have done this without templated functions:</div>

<div>The problem is, that some member functions need more local evaluations than just a simple u(x), maybe a jacobian of u(x) or some additional local data.</div>

<div>One simple example are some numerical fluxes for second order PDEs.</div>

<div> </div>

<div>That means: By using templated member functions, we do not have to change interfaces (and in general we avoid long parameter lists in functions...).</div>

<div> </div>

<div>Another issue is, that it is also possible to pass a set of local evaluations through this interface.</div>

<div>You should have a look at the discretemodelcaller class (esp. in trunk version). Here, all local evaluation contexts (belonging to an entity) are created.</div>

<div> </div>

<div> </div>

<div>The idea behind the local evaluation concept is (at least for the trunk version) also the combination of two different concepts used in Dune-Fem-DG:</div>

<div>1. The pass-concept which is used for matrix-free evaluations of the instationary examples (navierstokes, euler, advdiff)</div>

<div>2. The pass-less concept which is used for the stationary examles (stokes, poisson)</div>

<div> </div>

<div> </div>

<div>If you want some quick help, you can also write me directly (stefanwierling@gmx.de).</div>

<div>I do not check my university mail account every day at the moment!</div>

<div> </div>

<div>Can you provide me some more information about your background, e.g.:</div>

<div>- What version are you using - the 2.4-release or the trunk version?</div>

<div>- What is your general Dune and Dune-Fem experience?</div>

<div>- What are your goals using Dune-Fem-Dg?</div>

<div> </div>

<div>One note: There has been massive changes regarding the local evaluation context between 2.4 release and the trunk version.</div>

<div> </div>

<div>I hope my explanation has answered your question.</div>
 

<div> </div>

<div>Best regards</div>

<div>Stefan Wierling</div>

<div> 
<div style="margin: 10.0px 5.0px 5.0px 10.0px;padding: 10.0px 0 10.0px 10.0px;border-left: 2.0px solid rgb(195,217,229);">
<div style="margin: 0 0 10.0px 0;"><b>Gesendet:</b> Mittwoch, 23. August 2017 um 22:55 Uhr<br/>
<b>Von:</b> "Sahai, Amal" <sahai2@illinois.edu><br/>
<b>An:</b> "dune-fem@lists.dune-project.org" <dune-fem@lists.dune-project.org><br/>
<b>Betreff:</b> [dune-fem] LocalEvaluation</div>

<div>I had a question regarding the template parameter LocalEvaluation that features in many of the functions in dune-fem-dg such as the following from discretemodelcommon.hh:<br/>
<br/>
template <class LocalEvaluation><br/>
double boundaryFlux(const LocalEvaluation& left,<br/>
RangeType& gLeft,<br/>
JacobianRangeType& gDiffLeft ) const /*@LST0E@*/<br/>
<br/>
<br/>
template <class LocalEvaluation><br/>
double numericalFlux(const LocalEvaluation& left,<br/>
const LocalEvaluation& right,<br/>
RangeType& gLeft,<br/>
RangeType& gRight,<br/>
JacobianRangeType& gDiffLeft,<br/>
JacobianRangeType& gDiffRight ) const<br/>
<br/>
What kind of structure/class is LocaEvaluation and where is it defined?<br/>
<br/>
Regards<br/>
Amal<br/>
_______________________________________________<br/>
dune-fem mailing list<br/>
dune-fem@lists.dune-project.org<br/>
<a href="http://lists.dune-project.org/mailman/listinfo/dune-fem" target="_blank">http://lists.dune-project.org/mailman/listinfo/dune-fem</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

<div> </div>

<div class="signature"> </div></div></body></html>