Skip to content

Commit 2fef8ca

Browse files
committed
Add {ND,RT}_R{1,2}D@[CBTYPE][OBTYPE]_[DIM]_[ORDER] to FEC factory
1 parent 0f5b6cc commit 2fef8ca

File tree

2 files changed

+36
-8
lines changed

2 files changed

+36
-8
lines changed

fem/fe_coll.cpp

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -308,13 +308,25 @@ FiniteElementCollection *FiniteElementCollection::New(const char *name)
308308
FiniteElement::INTEGRAL,
309309
BasisType::GetType(name[12]));
310310
}
311-
else if (!strncmp(name, "RT_R1D",6))
311+
else if (!strncmp(name, "RT_R1D_", 7))
312312
{
313-
fec = new RT_R1D_FECollection(atoi(name+11),atoi(name + 7));
313+
fec = new RT_R1D_FECollection(atoi(name + 11), atoi(name + 7));
314314
}
315-
else if (!strncmp(name, "RT_R2D",6))
315+
else if (!strncmp(name, "RT_R1D@", 7))
316316
{
317-
fec = new RT_R2D_FECollection(atoi(name+11),atoi(name + 7));
317+
fec = new RT_R1D_FECollection(atoi(name + 14), atoi(name + 10),
318+
BasisType::GetType(name[7]),
319+
BasisType::GetType(name[8]));
320+
}
321+
else if (!strncmp(name, "RT_R2D_", 7))
322+
{
323+
fec = new RT_R2D_FECollection(atoi(name + 11), atoi(name + 7));
324+
}
325+
else if (!strncmp(name, "RT_R2D@", 7))
326+
{
327+
fec = new RT_R2D_FECollection(atoi(name + 14), atoi(name + 10),
328+
BasisType::GetType(name[7]),
329+
BasisType::GetType(name[8]));
318330
}
319331
else if (!strncmp(name, "RT_", 3))
320332
{
@@ -336,13 +348,25 @@ FiniteElementCollection *FiniteElementCollection::New(const char *name)
336348
BasisType::GetType(name[9]),
337349
BasisType::GetType(name[10]));
338350
}
339-
else if (!strncmp(name, "ND_R1D",6))
351+
else if (!strncmp(name, "ND_R1D_", 7))
352+
{
353+
fec = new ND_R1D_FECollection(atoi(name + 11), atoi(name + 7));
354+
}
355+
else if (!strncmp(name, "ND_R1D@", 7))
356+
{
357+
fec = new ND_R1D_FECollection(atoi(name + 14), atoi(name + 10),
358+
BasisType::GetType(name[7]),
359+
BasisType::GetType(name[8]));
360+
}
361+
else if (!strncmp(name, "ND_R2D_", 7))
340362
{
341-
fec = new ND_R1D_FECollection(atoi(name+11),atoi(name + 7));
363+
fec = new ND_R2D_FECollection(atoi(name + 11), atoi(name + 7));
342364
}
343-
else if (!strncmp(name, "ND_R2D",6))
365+
else if (!strncmp(name, "ND_R2D@", 7))
344366
{
345-
fec = new ND_R2D_FECollection(atoi(name+11),atoi(name + 7));
367+
fec = new ND_R2D_FECollection(atoi(name + 14), atoi(name + 10),
368+
BasisType::GetType(name[7]),
369+
BasisType::GetType(name[8]));
346370
}
347371
else if (!strncmp(name, "ND_", 3))
348372
{

fem/fe_coll.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,19 @@ class FiniteElementCollection
120120
| ND_Trace_[DIM]_[ORDER] | H^{1/2} | * | 1 / 0 | H_CURL | H^{1/2}-conforming trace elements for H(curl) defined on the interface between mesh elements (faces) |
121121
| ND_Trace@[CBTYPE][OBTYPE]_[DIM]_[ORDER] | H^{1/2} | * | 1 / 0 | H_CURL | H^{1/2}-conforming trace elements for H(curl) defined on the interface between mesh elements (faces) |
122122
| ND_R1D_[DIM]_[ORDER] | H(curl) | * | 1 / 0 | H_CURL | 3D H(curl)-conforming Nedelec vector elements in 1D. |
123+
| ND_R1D@[CBTYPE][OBTYPE]_[DIM]_[ORDER] | H(curl) | * | * / * | H_CURL | 3D H(curl)-conforming Nedelec vector elements in 1D. |
123124
| ND_R2D_[DIM]_[ORDER] | H(curl) | * | 1 / 0 | H_CURL | 3D H(curl)-conforming Nedelec vector elements in 2D. |
125+
| ND_R2D@[CBTYPE][OBTYPE]_[DIM]_[ORDER] | H(curl) | * | * / * | H_CURL | 3D H(curl)-conforming Nedelec vector elements in 2D. |
124126
| RT_[DIM]_[ORDER] | H(div) | * | 1 / 0 | H_DIV | Raviart-Thomas vector elements |
125127
| RT@[CBTYPE][OBTYPE]_[DIM]_[ORDER] | H(div) | * | * / * | H_DIV | Raviart-Thomas vector elements |
126128
| RT_Trace_[DIM]_[ORDER] | H^{1/2} | * | 1 / 0 | INTEGRAL | H^{1/2}-conforming trace elements for H(div) defined on the interface between mesh elements (faces) |
127129
| RT_ValTrace_[DIM]_[ORDER] | H^{1/2} | * | 1 / 0 | VALUE | H^{1/2}-conforming trace elements for H(div) defined on the interface between mesh elements (faces) |
128130
| RT_Trace@[BTYPE]_[DIM]_[ORDER] | H^{1/2} | * | 1 / 0 | INTEGRAL | H^{1/2}-conforming trace elements for H(div) defined on the interface between mesh elements (faces) |
129131
| RT_ValTrace@[BTYPE]_[DIM]_[ORDER] | H^{1/2} | * | 1 / 0 | VALUE | H^{1/2}-conforming trace elements for H(div) defined on the interface between mesh elements (faces) |
130132
| RT_R1D_[DIM]_[ORDER] | H(div) | * | 1 / 0 | H_DIV | 3D H(div)-conforming Raviart-Thomas vector elements in 1D. |
133+
| RT_R1D@[CBTYPE][OBTYPE]_[DIM]_[ORDER] | H(div) | * | * / * | H_DIV | 3D H(div)-conforming Raviart-Thomas vector elements in 1D. |
131134
| RT_R2D_[DIM]_[ORDER] | H(div) | * | 1 / 0 | H_DIV | 3D H(div)-conforming Raviart-Thomas vector elements in 2D. |
135+
| RT_R2D@[CBTYPE][OBTYPE]_[DIM]_[ORDER] | H(div) | * | * / * | H_DIV | 3D H(div)-conforming Raviart-Thomas vector elements in 2D. |
132136
| L2_[DIM]_[ORDER] | L2 | * | 0 | VALUE | Discontinuous L2 elements |
133137
| L2_T[BTYPE]_[DIM]_[ORDER] | L2 | * | 0 | VALUE | Discontinuous L2 elements |
134138
| L2Int_[DIM]_[ORDER] | L2 | * | 0 | INTEGRAL | Discontinuous L2 elements |

0 commit comments

Comments
 (0)