[aspect-devel] The input for limiting the mesh refinement area

Rene Gassmoeller rene.gassmoeller at mailbox.org
Fri Jan 29 07:54:18 PST 2016


Hi Nan,
I think it depends on what you want to do.
If you want to prescribe a high refinement (higher than what the
temperature refinement would give you anyway) at theta < 1.0472 you will
need a "minimum refinement function" in that region. If you want to
prevent the code from refining other regions, you will need to set a
"maximum refinement function" for theta > 1.0472.
As to the syntax of the "set Function expression". This function is
expected to return an integer that corresponds to the refinement level.
I.e. your current function is evaluated as a bool (0 or 1), so it allows
a maximum refinement level of 1 at theta < 1.0472, and a maximum
refinement level of 0 at theta > 1.0472. That is also the reason why
your global and adaptive refinement settings currently do not matter at
all, the code is not allowed to refine more than once anyway.

What you probably would want is something like the following:

set Function expression = if(theta<1.0472,6,3)

This will limit the maximum refinement level to 6 close to the pole and
3 everywhere else. Note that 6 can give you serious computational load
though. Try to start with 3 or 4 and work your way up, you will maybe
need more memory/cores than you have on a workstation.

Best,
Rene


On 01/29/2016 05:50 AM, Nan Zhang wrote:
> Hi all,
>
> I added the "maximum refinement function" into shell_simple_3d.prm like:
> **************************************************************
> ...
> subsection Mesh refinement
>   set Initial global refinement          = 2
>   set Initial adaptive refinement        = 4
>   set Time steps between mesh refinement = 15
>   set Strategy                           = temperature, maximum refinement
> function
>
>   subsection Maximum refinement function
>     set Coordinate system = spherical
>     set Function constants =
>     set Variable names = r,phi,theta
>     set Function expression = theta<1.0472      #60 degree
>   end
> end
> ...
> **************************************************************
> I tried to limit mesh refinement into a region of colatitude smaller than
> 60 degree. The mesh I got is attached. It seems that the north 60o region
> has been refined, or other region is coarsen? What I don't understand is
> the (1) how to connect the initial global refinement 2 with this figure?
> (2) as well as the initial adaptive refinement = 4? (3) how to see the
> "maximum refinement level" in the north 60o region?
>
> Bests,
> Nan
>
> On Thu, Jan 28, 2016 at 11:08 AM, Juliane Dannberg <dannberg at gfz-potsdam.de>
> wrote:
>
>> Hi Nan,
>>
>> I think there are plugins called "Minimum refinement function" and
>> "Maximum refinement function" that allow you to set a minimum and
>> maximum level of refinement as function of, for example, the radius.
>> Maybe this is what you are looking for? The syntax is:
>>
>> subsection Mesh refinement
>>   set Strategy                                 = temperature, maximum
>> refinement function
>>
>>   subsection Maximum refinement function
>>     set Coordinate system      = spherical
>>     set Function constants     =
>>     set Function expression    = 6 +
>> 2*sin((r+250000)*2*pi/250000)*sin(12*phi)
>>     set Variable names         = r,phi
>>   end
>> end
>>
>> Best,
>> Juliane
>
>
> _______________________________________________
> Aspect-devel mailing list
> Aspect-devel at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20160129/3e21aeef/attachment.html>


More information about the Aspect-devel mailing list