3.3 Refinements

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.