This section explains how to define a local p-refinement in a specific region in a mesh.
After the user defines the polynomial expansions to be used, one can also locally
change the polynomial order in a specific region in a mesh. Firstly, we introduce the
expansion entry REFIDS
which specifies the reference ID for a local p-refinement. In order
words, this is the ID that connects the composite to the local p-refinements to be
performed. This expansion entry must be added in the list of <E>
elements as follows
1<E COMPOSITE="C[0]" NUMMODES="3" FIELDS="u" TYPE="MODIFIED" REFIDS="0" />
Then, in the REFINEMENTS
section under NEKTAR
tag as shown below, the local p-refinements
are defined.
1<REFINEMENTS> 2 ... 3</REFINEMENTS>
The refinements entries are the reference ID (REF
) which must match the one determined in
the list of elements, the type of the method (TYPE
) to be used, the radius, the coordinates and
the number of modes. The example below shows the entries when only the expansion type is
provided. Note that the local p-refinements are set as a list of <R>
refinement regions.
1<R REF="0" 2 TYPE="STANDARD" 3 RADIUS="0.1" 4 COORDINATE1="0.1,0.2,0.1" 5 COORDINATE2="0.5,1.0,0.8" 6 NUMMODES="5" />
There are currently two methods implemented. The methods are STANDARD
and SPHERE
. In
these methods, the elements which the vertices lay within the surface (region) are refined
based on the number of modes provided. Note that the example above is for the STANDARD
method which creates a cylindrical surface for three-dimensional space problems. The
COORDINATE1
and COORDINATE2
give the bottom and the top of the cylindrical surface
and the RADIUS
provides its radius. For two-dimensional meshes in the xy-plane, a
parallelogram surface is defined based on the same entries. The radius entry, in
two-dimension, gives the length (diameter of a circle) of one pair of parallel sides.
In a one-dimensional problem (mesh in the x-axis only), a line is created and the
radius entry gives a extra length in both coordinates. Also, one important aspect to
notice of this method is that the mesh dimension must match the space dimension.
In order to set up a two- or one-dimensional surface, the user must provide the
number of coordinates in COORDINATE1
and COORDINATE2
which match the space
dimension.
One the other hand, the SPHERE
method does not require that the space dimension matches
the mesh dimension. In addition, two- and one-dimensional meshes can be refined even if they
exist in a three-dimensional space. Thus, although the STANDARD
method has additional
geometrical flexibility to define the desired surface in the domain, the SPHERE
method is more
general so that the user can apply it in any mesh. Regarding the set up for the SPHERE
method, the user must provide only COORDINATE1
which defines the center of the
sphere.
When the expansion basis is specified in detail as a combination of one-dimensional
bases in the list of elements under the EXPANSIONS
tag as shown below. The user
also defines the number of quadrature points as explained in the previous section.
1<E COMPOSITE="C[0]" 2 BASISTYPE="Modified_A,Modified_A,Modified_A" 3 NUMMODES="3,3,3" 4 POINTSTYPE="GaussLobattoLegendre,GaussLobattoLegendre,GaussLobattoLegendre" 5 NUMPOINTS="5,5,5" 6 FIELDS="u" 7 REFIDS="0" />
Thus, an additional entry must be provided in the list of refinement regions when a detailed description of the expansion basis is given. In this case, the number of quadrature points have to be also provided as follows
1<R REF="0" 2 RADIUS="0.1" 3 TYPE="SPHERE" 4 COORDINATE1="0.1,0.2,0.1" 5 NUMMODES="5,5,5" 6 NUMPOINTS="7,7,7" />
The p-refinement capability also allows the user to define multiple reference IDs (refinement regions) for each composite (see below). In other words, one can change the polynomial order in many locations in a mesh for a specific composite. It should be noted that if the user defines a region which is outside of the corresponding composite, the mesh is not going to be refined in the specified region.
1<E COMPOSITE="C[0]" NUMMODES="3" FIELDS="u" TYPE="MODIFIED" REFIDS="0,1,2" /> 2<E COMPOSITE="C[1]" NUMMODES="5" FIELDS="u" TYPE="MODIFIED" REFIDS="3,4" />
The local p-refinement is only supported by CG discretisation at the moment.