Nektar++
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Nektar::LibUtilities::Kernel Class Reference

#include <kernel.h>

Public Member Functions

 Kernel ()
 The default constructor. More...
 
 Kernel (int order)
 
void UpdateKernelBspline ()
 The default destructor. More...
 
void UpdateKernelCoeffs ()
 This funciton updates the kernel coefficients. More...
 
void UpdateKernelBreaks (NekDouble h)
 This funciton updates the kernel breaks. More...
 
Array< TwoD, NekDoubleGetKernelBspline ()
 This funciton returns a 2D array representing the bspline of the appropriate order. More...
 
Array< OneD, NekDoubleGetKernelCoeffs ()
 This funciton returns a 1D array representing the kernel coefficients. More...
 
Array< OneD, NekDoubleGetKernelBreaks ()
 This funciton returns a 1D array representing the kernel breaks. More...
 
void UpdateKernelOrder (int order)
 This funciton sets the k_order variable. More...
 
void UpdateKernelNumOfCoeffs ()
 This funciton sets the k_ncoeffs variable. More...
 
void UpdateKernelWidth ()
 This funciton sets the kernel width size. More...
 
int GetKernelOrder ()
 This funciton returns the order of the kernel. More...
 
int GetKernelNumeOfCoeffs ()
 This funciton returns the number of kernel coefficients. More...
 
int GetKernelWidth ()
 This funciton returns the size of the kernel width. More...
 
void MoveKernelCenter (NekDouble x_value, Array< OneD, NekDouble > &outarray)
 This funciton moves the center of the kernel to the. More...
 
void FindMeshUnderKernel (Array< OneD, NekDouble > &inarray, NekDouble h, Array< OneD, NekDouble > &outarray)
 This funciton calculates the mesh breaks under the kernel support. More...
 
void EvaluateKernel (Array< OneD, NekDouble > inarray, NekDouble h, Array< OneD, NekDouble > &outarray)
 This funciton evaluates the kernel at input values. More...
 
void EvaluateBspline (Array< OneD, NekDouble > inarray, NekDouble h, NekDouble offset, Array< OneD, NekDouble > &outarray)
 This function evaluates the bspline at input values. More...
 
void Sort (Array< OneD, NekDouble > &inarray1, Array< OneD, NekDouble > &inarray2, Array< OneD, NekDouble > &outarray)
 This funciton performs the ordered merge of. More...
 

Protected Member Functions

NekDouble EvaluateBsplinePoly (NekDouble x_value, int interval)
 This funciton evaluates the piecewise bspline polynomial. More...
 

Protected Attributes

int k_order
 
int k_ncoeffs
 
int k_width
 
NekDouble k_center
 
Array< TwoD, NekDoubleb_spline
 
Array< OneD, NekDoublek_coeffs
 
Array< OneD, NekDoublek_breaks
 

Detailed Description

Definition at line 46 of file kernel.h.

Constructor & Destructor Documentation

◆ Kernel() [1/2]

Nektar::LibUtilities::Kernel::Kernel ( )

The default constructor.

◆ Kernel() [2/2]

Nektar::LibUtilities::Kernel::Kernel ( int  order)

Definition at line 41 of file kernel.cpp.

42 {
43  UpdateKernelOrder(order);
48  k_center = 0.0;
49 }
void UpdateKernelCoeffs()
This funciton updates the kernel coefficients.
Definition: kernel.cpp:185
void UpdateKernelBspline()
The default destructor.
Definition: kernel.cpp:51
void UpdateKernelOrder(int order)
This funciton sets the k_order variable.
Definition: kernel.h:106
void UpdateKernelNumOfCoeffs()
This funciton sets the k_ncoeffs variable.
Definition: kernel.h:114
void UpdateKernelWidth()
This funciton sets the kernel width size.
Definition: kernel.h:122

References k_center, UpdateKernelBspline(), UpdateKernelCoeffs(), UpdateKernelNumOfCoeffs(), UpdateKernelOrder(), and UpdateKernelWidth().

Member Function Documentation

◆ EvaluateBspline()

void Nektar::LibUtilities::Kernel::EvaluateBspline ( Array< OneD, NekDouble inarray,
NekDouble  h,
NekDouble  offset,
Array< OneD, NekDouble > &  outarray 
)

This function evaluates the bspline at input values.

Parameters
inarrayinput values.
hthe mesh spacing.
offset
outarraycontains the bspline values.

Definition at line 351 of file kernel.cpp.

353 {
354  int i;
355  NekDouble min_value = -k_order / 2.0;
356  NekDouble max_value = k_order / 2.0;
357 
358  int nvalues = inarray.size();
359 
360  // Make a copy for further modifications
361  Array<OneD, NekDouble> inarray_cp(nvalues);
362 
363  for (i = 0; i < nvalues; i++)
364  {
365  inarray_cp[i] = inarray[i] - offset;
366  inarray_cp[i] = inarray_cp[i] / h;
367  int interval = (int)floor(inarray_cp[i] -
368  min_value); // determines to which interval of
369  // the bspline the value belongs
370 
371  if (inarray_cp[i] >= min_value && inarray_cp[i] <= max_value)
372  {
373  if (interval >= k_order)
374  {
375  interval -= 1;
376  }
377  NekDouble shift = min_value + interval;
378  inarray_cp[i] -= shift;
379  outarray[i] = EvaluateBsplinePoly(inarray_cp[i], interval);
380  }
381  else
382  {
383  outarray[i] = 0.0;
384  }
385  }
386 }
NekDouble EvaluateBsplinePoly(NekDouble x_value, int interval)
This funciton evaluates the piecewise bspline polynomial.
Definition: kernel.cpp:388
double NekDouble

References EvaluateBsplinePoly(), and k_order.

Referenced by EvaluateKernel().

◆ EvaluateBsplinePoly()

NekDouble Nektar::LibUtilities::Kernel::EvaluateBsplinePoly ( NekDouble  x_value,
int  interval 
)
protected

This funciton evaluates the piecewise bspline polynomial.

Parameters
interval

Definition at line 388 of file kernel.cpp.

389 {
390  int i;
391  int deg = k_order - 1;
392  NekDouble poly_value = b_spline[interval][0];
393 
394  for (i = 0; i < deg; i++)
395  {
396  poly_value = poly_value * x_value + b_spline[interval][i + 1];
397  }
398 
399  return poly_value;
400 }
Array< TwoD, NekDouble > b_spline
Definition: kernel.h:206

References b_spline, and k_order.

Referenced by EvaluateBspline().

◆ EvaluateKernel()

void Nektar::LibUtilities::Kernel::EvaluateKernel ( Array< OneD, NekDouble inarray,
NekDouble  h,
Array< OneD, NekDouble > &  outarray 
)

This funciton evaluates the kernel at input values.

Parameters
inarray.
his the mesh spacing.
outarraycontains the kernel values

Definition at line 324 of file kernel.cpp.

326 {
327  int gamma, i;
328  int degree = k_order - 1;
329  int nvalues = inarray.size();
330  Array<OneD, NekDouble> bs_values(nvalues);
331 
332  for (i = 0; i < nvalues; i++)
333  {
334  outarray[i] = 0.0;
335  }
336 
337  for (gamma = -degree; gamma <= degree; gamma++)
338  {
339  int cIndex = gamma + degree;
340 
341  // Evaluate the bSpline values
342  EvaluateBspline(inarray, h, k_center + (gamma * h), bs_values);
343 
344  for (i = 0; i < nvalues; i++)
345  {
346  outarray[i] += k_coeffs[cIndex] * bs_values[i];
347  }
348  }
349 }
void EvaluateBspline(Array< OneD, NekDouble > inarray, NekDouble h, NekDouble offset, Array< OneD, NekDouble > &outarray)
This function evaluates the bspline at input values.
Definition: kernel.cpp:351
Array< OneD, NekDouble > k_coeffs
Definition: kernel.h:208

References EvaluateBspline(), k_center, k_coeffs, and k_order.

◆ FindMeshUnderKernel()

void Nektar::LibUtilities::Kernel::FindMeshUnderKernel ( Array< OneD, NekDouble > &  inarray,
NekDouble  h,
Array< OneD, NekDouble > &  outarray 
)

This funciton calculates the mesh breaks under the kernel support.

Parameters
inarraycontains the local kernel breaks
his the mesh spacing
outarraycontains the coordinate of the mesh breaks under the kernel support

Definition at line 306 of file kernel.cpp.

308 {
309  int j;
310  NekDouble first = ceil(inarray[0] / h) * h;
311  int index = k_width;
312  NekDouble last = floor(inarray[index] / h) * h;
313  int count = (int)((last - first) / h) +
314  1; // number of mesh breaks under the kernel support
315  Array<OneD, NekDouble> mesh_breaks(count);
316  mesh_breaks[0] = first;
317  for (j = 1; j < count; j++)
318  {
319  mesh_breaks[j] = mesh_breaks[j - 1] + h;
320  }
321  outarray = mesh_breaks;
322 }

References k_width.

◆ GetKernelBreaks()

Array<OneD, NekDouble> Nektar::LibUtilities::Kernel::GetKernelBreaks ( )
inline

This funciton returns a 1D array representing the kernel breaks.

Definition at line 98 of file kernel.h.

99  {
100  return k_breaks;
101  }
Array< OneD, NekDouble > k_breaks
Definition: kernel.h:210

References k_breaks.

◆ GetKernelBspline()

Array<TwoD, NekDouble> Nektar::LibUtilities::Kernel::GetKernelBspline ( )
inline

This funciton returns a 2D array representing the bspline of the appropriate order.

Definition at line 81 of file kernel.h.

82  {
83  return b_spline;
84  }

References b_spline.

◆ GetKernelCoeffs()

Array<OneD, NekDouble> Nektar::LibUtilities::Kernel::GetKernelCoeffs ( )
inline

This funciton returns a 1D array representing the kernel coefficients.

Definition at line 90 of file kernel.h.

91  {
92  return k_coeffs;
93  }

References k_coeffs.

◆ GetKernelNumeOfCoeffs()

int Nektar::LibUtilities::Kernel::GetKernelNumeOfCoeffs ( )
inline

This funciton returns the number of kernel coefficients.

Definition at line 138 of file kernel.h.

139  {
140  return k_ncoeffs;
141  }

References k_ncoeffs.

◆ GetKernelOrder()

int Nektar::LibUtilities::Kernel::GetKernelOrder ( )
inline

This funciton returns the order of the kernel.

Definition at line 130 of file kernel.h.

131  {
132  return k_order;
133  }

References k_order.

◆ GetKernelWidth()

int Nektar::LibUtilities::Kernel::GetKernelWidth ( )
inline

This funciton returns the size of the kernel width.

Definition at line 146 of file kernel.h.

147  {
148  return k_width;
149  }

References k_width.

◆ MoveKernelCenter()

void Nektar::LibUtilities::Kernel::MoveKernelCenter ( NekDouble  x_value,
Array< OneD, NekDouble > &  outarray 
)

This funciton moves the center of the kernel to the.

Parameters
x_value.
outarrayis used to store the result

Definition at line 293 of file kernel.cpp.

295 {
296  int i;
297  for (i = 0; i < k_width + 1; i++)
298  {
299  outarray[i] = k_breaks[i] + x_value;
300  }
301 
302  // Update the center of the kernel
303  k_center = x_value;
304 }

References k_breaks, k_center, and k_width.

◆ Sort()

void Nektar::LibUtilities::Kernel::Sort ( Array< OneD, NekDouble > &  inarray1,
Array< OneD, NekDouble > &  inarray2,
Array< OneD, NekDouble > &  outarray 
)

This funciton performs the ordered merge of.

Parameters
inarray1and
inarray2and puts the result in
outarray

Definition at line 402 of file kernel.cpp.

405 {
406  int j;
407  int kIndex = 0; // Keeps track of the kernel breaks
408  int mIndex = 0; // Keeps track of the mesh breaks
409  for (j = 0; j < outarray.size(); j++)
410  {
411  if (mIndex >= inarray2.size())
412  {
413  outarray[j] = inarray1[kIndex];
414  kIndex++;
415  }
416  else if (kIndex >= inarray1.size())
417  {
418  outarray[j] = inarray2[mIndex];
419  mIndex++;
420  }
421  else if (inarray1[kIndex] < inarray2[mIndex])
422  {
423  outarray[j] = inarray1[kIndex];
424  kIndex++;
425  }
426  else
427  {
428  outarray[j] = inarray2[mIndex];
429  mIndex++;
430  }
431  }
432 }

◆ UpdateKernelBreaks()

void Nektar::LibUtilities::Kernel::UpdateKernelBreaks ( NekDouble  h)

This funciton updates the kernel breaks.

Parameters
hrepresents the mesh spacing

Definition at line 281 of file kernel.cpp.

282 {
283  int i;
284  Array<OneD, NekDouble> temp(k_width + 1);
285  temp[0] = -(k_width / 2.0) * h; // it needs to get scaled by h
286  for (i = 1; i < k_width + 1; i++)
287  {
288  temp[i] = temp[i - 1] + h;
289  }
290  k_breaks = temp;
291 }

References k_breaks, and k_width.

◆ UpdateKernelBspline()

void Nektar::LibUtilities::Kernel::UpdateKernelBspline ( )

The default destructor.

This funciton updates the bspline to the appropriate order.

Definition at line 51 of file kernel.cpp.

52 {
53  Array<TwoD, NekDouble> out_final(k_order, k_order);
54 
55  int i, j;
56 
57  if (k_order == 1.0)
58  {
59  b_spline[0][0] = 1.0;
60  }
61  else if (k_order == 2)
62  {
63  NekDouble out[2][2] = {{1.0, 0.0}, {-1.0, 1.0}};
64  for (i = 0; i < k_order; i++)
65  {
66  for (j = 0; j < k_order; j++)
67  {
68  out_final[i][j] = out[i][j];
69  }
70  }
71  }
72  else if (k_order == 3)
73  {
74  NekDouble out[3][3] = {
75  {0.5, 0.0, 0.0}, {-1.0, 1.0, 0.5}, {0.5, -1.0, 0.5}};
76  for (i = 0; i < k_order; i++)
77  {
78  for (j = 0; j < k_order; j++)
79  {
80  out_final[i][j] = out[i][j];
81  }
82  }
83  }
84  else if (k_order == 4)
85  {
86  NekDouble out[4][4] = {{1.0 / 6.0, 0, 0, 0},
87  {-0.5, 0.5, 0.5, 1.0 / 6.0},
88  {0.5, -1.0, 0, 2.0 / 3},
89  {-1.0 / 6.0, 0.5, -0.5, 1.0 / 6.0}};
90  for (i = 0; i < k_order; i++)
91  {
92  for (j = 0; j < k_order; j++)
93  {
94  out_final[i][j] = out[i][j];
95  }
96  }
97  }
98  else if (k_order == 5)
99  {
100  NekDouble out[5][5] = {
101  {1.0 / 24.0, 0, 0, 0, 0},
102  {-1.0 / 6, 1.0 / 6, 0.25, 1.0 / 6, 1.0 / 24},
103  {0.25, -0.5, -0.25, 0.5, 11.0 / 24},
104  {-1.0 / 6, 0.5, -0.25, -0.5, 11.0 / 24},
105  {1.0 / 24, -1.0 / 6.0, 0.25, -1.0 / 6, 1.0 / 24}};
106  for (i = 0; i < k_order; i++)
107  {
108  for (j = 0; j < k_order; j++)
109  {
110  out_final[i][j] = out[i][j];
111  }
112  }
113  }
114  else if (k_order == 6)
115  {
116  NekDouble out[6][6] = {
117  {1.0 / 1.020, 0, 0, 0, 0, 0},
118  {-1.0 / 24, 1.0 / 24, 1.0 / 12, 1.0 / 12, 1.0 / 24, 1.0 / 120},
119  {1.0 / 12, -1.0 / 6, -1.0 / 6, 1.0 / 6, 5.0 / 12, 13.0 / 60},
120  {-1.0 / 12, 0.25, 0, -1.0 / 2, 0, 11.0 / 20},
121  {1.0 / 24, -1.0 / 6, 1.0 / 6, 1.0 / 6, -5.0 / 12, 13.0 / 60},
122  {-1.0 / 120, 1.0 / 24, -1.0 / 12, 1.0 / 12, -1.0 / 24, 1.0 / 120}};
123  for (i = 0; i < k_order; i++)
124  {
125  for (j = 0; j < k_order; j++)
126  {
127  out_final[i][j] = out[i][j];
128  }
129  }
130  }
131  else if (k_order == 7)
132  {
133  NekDouble out[7][7] = {{1.0 / 720, 0, 0, 0, 0, 0, 0},
134  {-1.0 / 120, 1.0 / 120, 1.0 / 48, 1.0 / 36,
135  1.0 / 48, 1.0 / 120, 1.0 / 720},
136  {1.0 / 48, -1.0 / 24, -1.0 / 16, 1.0 / 36,
137  3.0 / 16, 5.0 / 24, 19.0 / 240},
138  {-1.0 / 36, 1.0 / 1.02, 1.0 / 24, -2.0 / 9,
139  -5.0 / 24, 1.0 / 3, 151.0 / 360},
140  {1.0 / 48, -1.0 / 12, 1.0 / 24, 2.0 / 9,
141  -5.0 / 24, -1.0 / 3, 151.0 / 360},
142  {-1.0 / 120, 1.0 / 24, -1.0 / 16, -1.0 / 36,
143  3.0 / 16, -5.0 / 24, 19.0 / 240},
144  {1.0 / 720, -1.0 / 120, 1.0 / 48, -1.0 / 36,
145  1.0 / 48, -1.0 / 120, 1.0 / 720}};
146  for (i = 0; i < k_order; i++)
147  {
148  for (j = 0; j < k_order; j++)
149  {
150  out_final[i][j] = out[i][j];
151  }
152  }
153  }
154  else if (k_order == 8)
155  {
156  NekDouble out[8][8] = {
157  {1.0 / 5040, 0, 0, 0, 0, 0, 0, 0},
158  {-1.0 / 720, 1.0 / 720, 1.0 / 240, 1.0 / 144, 1.0 / 144, 1.0 / 240,
159  1.0 / 720, 1.0 / 5040},
160  {1.0 / 240, -1.0 / 120, -1.0 / 60, 0, 1.0 / 18, 1.0 / 10, 7.0 / 90,
161  1.0 / 42},
162  {-1.0 / 144, 1.0 / 48, 1.0 / 48, -1.0 / 16, -19.0 / 144, 1.0 / 16,
163  49.0 / 144, 397.0 / 1680},
164  {1.0 / 144, -1.0 / 36, 0, 1.0 / 9, 0, -1.0 / 3, 0, 151.0 / 315},
165  {-1.0 / 240, 1.0 / 48, -1.0 / 48, -1.0 / 16, 19.0 / 144, 1.0 / 16,
166  -49.0 / 144, 397.0 / 1680},
167  {1.0 / 720, -1.0 / 120, 1.0 / 60, 0, -1.0 / 18, 1.0 / 10, -7.0 / 90,
168  1.0 / 42},
169  {-1.0 / 5040, 1.0 / 720, -1.0 / 240, 1.0 / 144, -1.0 / 144,
170  1.0 / 240, -1.0 / 720, 1.0 / 5040}};
171  for (i = 0; i < k_order; i++)
172  {
173  for (j = 0; j < k_order; j++)
174  {
175  out_final[i][j] = out[i][j];
176  }
177  }
178  }
179 
180  b_spline = out_final;
181 
182  ASSERTL0(k_order <= 8, "Order is not supported");
183 }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:215

References ASSERTL0, b_spline, and k_order.

Referenced by Kernel().

◆ UpdateKernelCoeffs()

void Nektar::LibUtilities::Kernel::UpdateKernelCoeffs ( )

This funciton updates the kernel coefficients.

Definition at line 185 of file kernel.cpp.

186 {
187  int i;
188  Array<OneD, NekDouble> out_final(k_ncoeffs);
189 
190  if (k_order == 2)
191  {
192  NekDouble out[3] = {-1.0 / 12, 7.0 / 6, -1.0 / 12};
193  for (i = 0; i < k_ncoeffs; i++)
194  {
195  out_final[i] = out[i];
196  }
197  }
198  else if (k_order == 3)
199  {
200  NekDouble out[5] = {37.0 / 1920, -97.0 / 480, 437.0 / 320, -97.0 / 480,
201  37.0 / 1920};
202  for (i = 0; i < k_ncoeffs; i++)
203  {
204  out_final[i] = out[i];
205  }
206  }
207  else if (k_order == 4)
208  {
209  NekDouble out[7] = {-41.0 / 7560, 311.0 / 5040, -919.0 / 2520,
210  12223.0 / 7560, -919.0 / 2520, 311.0 / 5040,
211  -41.0 / 7560};
212  for (i = 0; i < k_ncoeffs; i++)
213  {
214  out_final[i] = out[i];
215  }
216  }
217  else if (k_order == 5)
218  {
219  NekDouble out[9] = {
220  153617.0 / 92897280, -35411.0 / 1658880, 3153959.0 / 23224320,
221  -6803459.0 / 11612160, 18017975.0 / 9289728, -6803459.0 / 11612160,
222  3153959.0 / 23224320, -35411.0 / 1658880, 153617.0 / 92897280};
223  for (i = 0; i < k_ncoeffs; i++)
224  {
225  out_final[i] = out[i];
226  }
227  }
228  else if (k_order == 6)
229  {
230  NekDouble out[11] = {
231  -4201.0 / 7983360, 30773.0 / 3991680, -20813.0 / 380160,
232  2825.0 / 11088, -1179649.0 / 1330560, 1569217.0 / 665280,
233  -1179649.0 / 1330560, 2825.0 / 11088, -20813.0 / 380160,
234  30773.0 / 3991680, -4201.0 / 7983360};
235  for (i = 0; i < k_ncoeffs; i++)
236  {
237  out_final[i] = out[i];
238  }
239  }
240  else if (k_order == 7)
241  {
242  NekDouble out[13] = {13154671847.0 / 76517631590400.0,
243  -18073154507.0 / 6376469299200.0,
244  287360344573.0 / 12752938598400.0,
245  -2217732343517.0 / 19129407897600.0,
246  1240941746699.0 / 2833986355200.0,
247  -275386671493.0 / 212548976640.0,
248  2648644782397.0 / 910924185600.0,
249  -275386671493.0 / 212548976640.0,
250  1240941746699.0 / 2833986355200.0,
251  -2217732343517.0 / 19129407897600.0,
252  287360344573.0 / 12752938598400.0,
253  -18073154507.0 / 6376469299200.0,
254  13154671847.0 / 76517631590400.0};
255  for (i = 0; i < k_ncoeffs; i++)
256  {
257  out_final[i] = out[i];
258  }
259  }
260  else if (k_order == 8)
261  {
262  NekDouble out[15] = {
263  -800993.0 / 14010796800.0, 73587167.0 / 70053984000.0,
264  -651305719.0 / 70053984000.0, 3714581677.0 / 70053984000.0,
265  -3085236289.0 / 14010796800.0, 1426328231.0 / 2001542400.0,
266  -43268401973.0 / 23351328000.0, 42401344373.0 / 11675664000.0,
267  -43268401973.0 / 23351328000.0, 1426328231.0 / 2001542400.0,
268  -3085236289.0 / 14010796800.0, 3714581677.0 / 70053984000.0,
269  -651305719.0 / 70053984000.0, 73587167.0 / 70053984000.0,
270  -800993.0 / 14010796800.0};
271  for (i = 0; i < k_ncoeffs; i++)
272  {
273  out_final[i] = out[i];
274  }
275  }
276 
277  k_coeffs = out_final;
278  ASSERTL0(k_order <= 8, "Order is not supported");
279 }

References ASSERTL0, k_coeffs, k_ncoeffs, and k_order.

Referenced by Kernel().

◆ UpdateKernelNumOfCoeffs()

void Nektar::LibUtilities::Kernel::UpdateKernelNumOfCoeffs ( )
inline

This funciton sets the k_ncoeffs variable.

Definition at line 114 of file kernel.h.

115  {
116  k_ncoeffs = 2 * (k_order - 1) + 1;
117  }

References k_ncoeffs, and k_order.

Referenced by Kernel().

◆ UpdateKernelOrder()

void Nektar::LibUtilities::Kernel::UpdateKernelOrder ( int  order)
inline

This funciton sets the k_order variable.

Definition at line 106 of file kernel.h.

107  {
108  k_order = order;
109  }

References k_order.

Referenced by Kernel().

◆ UpdateKernelWidth()

void Nektar::LibUtilities::Kernel::UpdateKernelWidth ( )
inline

This funciton sets the kernel width size.

Definition at line 122 of file kernel.h.

123  {
124  k_width = 3 * (k_order - 1) + 1;
125  }

References k_order, and k_width.

Referenced by Kernel().

Member Data Documentation

◆ b_spline

Array<TwoD, NekDouble> Nektar::LibUtilities::Kernel::b_spline
protected

2D array representing the bspline

Definition at line 206 of file kernel.h.

Referenced by EvaluateBsplinePoly(), GetKernelBspline(), and UpdateKernelBspline().

◆ k_breaks

Array<OneD, NekDouble> Nektar::LibUtilities::Kernel::k_breaks
protected

1D array representing the kernel breaks

Definition at line 210 of file kernel.h.

Referenced by GetKernelBreaks(), MoveKernelCenter(), and UpdateKernelBreaks().

◆ k_center

NekDouble Nektar::LibUtilities::Kernel::k_center
protected

holds the center of the kernel

Definition at line 205 of file kernel.h.

Referenced by EvaluateKernel(), Kernel(), and MoveKernelCenter().

◆ k_coeffs

Array<OneD, NekDouble> Nektar::LibUtilities::Kernel::k_coeffs
protected

1D array representing the kernel coefficients

Definition at line 208 of file kernel.h.

Referenced by EvaluateKernel(), GetKernelCoeffs(), and UpdateKernelCoeffs().

◆ k_ncoeffs

int Nektar::LibUtilities::Kernel::k_ncoeffs
protected

Represents the number of kernel coefficients

Definition at line 203 of file kernel.h.

Referenced by GetKernelNumeOfCoeffs(), UpdateKernelCoeffs(), and UpdateKernelNumOfCoeffs().

◆ k_order

int Nektar::LibUtilities::Kernel::k_order
protected

bsplines are obtained by convolving the characteristic fucntion with itself (k_order - 1) times

Definition at line 200 of file kernel.h.

Referenced by EvaluateBspline(), EvaluateBsplinePoly(), EvaluateKernel(), GetKernelOrder(), UpdateKernelBspline(), UpdateKernelCoeffs(), UpdateKernelNumOfCoeffs(), UpdateKernelOrder(), and UpdateKernelWidth().

◆ k_width

int Nektar::LibUtilities::Kernel::k_width
protected

Represents the width of the kernel

Definition at line 204 of file kernel.h.

Referenced by FindMeshUnderKernel(), GetKernelWidth(), MoveKernelCenter(), UpdateKernelBreaks(), and UpdateKernelWidth().