Skip to content

Commit 13a7d54

Browse files
committed
fortran - add tab view fns
1 parent 62e2d41 commit 13a7d54

19 files changed

+136
-1
lines changed

interface/ceed-fortran.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ CEED_EXTERN void fCeedIsDeterministic(int *ceed, int *is_deterministic, int *err
8585
#define fCeedGetPreferredMemType FORTRAN_NAME(ceedgetpreferredmemtype, CEEDGETPREFERREDMEMTYPE)
8686
CEED_EXTERN void fCeedGetPreferredMemType(int *ceed, int *type, int *err) { *err = CeedGetPreferredMemType(Ceed_dict[*ceed], (CeedMemType *)type); }
8787

88+
#define fCeedSetNumViewTabs FORTRAN_NAME(ceedsetnumviewtabs, CEEDSETNUMVIEWTABS)
89+
CEED_EXTERN void fCeedSetNumViewTabs(int *ceed, int *num_tabs, int *err) { *err = CeedSetNumViewTabs(Ceed_dict[*ceed], *num_tabs); }
90+
8891
#define fCeedView FORTRAN_NAME(ceedview, CEEDVIEW)
8992
CEED_EXTERN void fCeedView(int *ceed, int *err) { *err = CeedView(Ceed_dict[*ceed], stdout); }
9093

@@ -192,6 +195,9 @@ CEED_EXTERN void fCeedVectorNorm(int *vec, int *type, CeedScalar *norm, int *err
192195
#define fCeedVectorReciprocal FORTRAN_NAME(ceedvectorreciprocal, CEEDVECTORRECIPROCAL)
193196
CEED_EXTERN void fCeedVectorReciprocal(int *vec, int *err) { *err = CeedVectorReciprocal(CeedVector_dict[*vec]); }
194197

198+
#define fCeedVectorSetNumViewTabs FORTRAN_NAME(ceedvectorsetnumviewtabs, CEEDVECTORSETNUMVIEWTABS)
199+
CEED_EXTERN void fCeedVectorSetNumViewTabs(int *vec, int *num_tabs, int *err) { *err = CeedVectorSetNumViewTabs(CeedVector_dict[*vec], *num_tabs); }
200+
195201
#define fCeedVectorView FORTRAN_NAME(ceedvectorview, CEEDVECTORVIEW)
196202
CEED_EXTERN void fCeedVectorView(int *vec, int *err) { *err = CeedVectorView(CeedVector_dict[*vec], "%12.8f", stdout); }
197203

@@ -449,6 +455,11 @@ CEED_EXTERN void fCeedElemRestrictionGetELayout(int *elemr, int *layout, int *er
449455
for (int i = 0; i < 3; i++) layout[i] = layout_c[i];
450456
}
451457

458+
#define fCeedElemRestrictionSetNumViewTabs FORTRAN_NAME(ceedelemrestrictionsetnumviewtabs, CEEDELEMRESTRICTIONSETNUMVIEWTABS)
459+
CEED_EXTERN void fCeedElemRestrictionSetNumViewTabs(int *elemr, int *num_tabs, int *err) {
460+
*err = CeedElemRestrictionSetNumViewTabs(CeedElemRestriction_dict[*elemr], *num_tabs);
461+
}
462+
452463
#define fCeedElemRestrictionView FORTRAN_NAME(ceedelemrestrictionview, CEEDELEMRESTRICTIONVIEW)
453464
CEED_EXTERN void fCeedElemRestrictionView(int *elemr, int *err) { *err = CeedElemRestrictionView(CeedElemRestriction_dict[*elemr], stdout); }
454465

@@ -575,6 +586,9 @@ CEED_EXTERN void fCeedBasisCreateHcurl(int *ceed, int *topo, int *num_comp, int
575586
}
576587
}
577588

589+
#define fCeedBasisSetNumViewTabs FORTRAN_NAME(ceedbasissetnumviewtabs, CEEDBASISSETNUMVIEWTABS)
590+
CEED_EXTERN void fCeedBasisSetNumViewTabs(int *basis, int *num_tabs, int *err) { *err = CeedBasisSetNumViewTabs(CeedBasis_dict[*basis], *num_tabs); }
591+
578592
#define fCeedBasisView FORTRAN_NAME(ceedbasisview, CEEDBASISVIEW)
579593
CEED_EXTERN void fCeedBasisView(int *basis, int *err) { *err = CeedBasisView(CeedBasis_dict[*basis], stdout); }
580594

@@ -688,6 +702,11 @@ CEED_EXTERN void fCeedQFunctionContextRestoreData(int *ctx, CeedScalar *data, in
688702
*offset = 0;
689703
}
690704

705+
#define fCeedQFunctionContextSetNumViewTabs FORTRAN_NAME(ceedqfunctioncontextsetnumviewtabs, CEEDQFUNCTIONCONTEXTSETNUMVIEWTABS)
706+
CEED_EXTERN void fCeedQFunctionContextSetNumViewTabs(int *ctx, int *num_tabs, int *err) {
707+
*err = CeedQFunctionContextSetNumViewTabs(CeedQFunctionContext_dict[*ctx], *num_tabs);
708+
}
709+
691710
#define fCeedQFunctionContextView FORTRAN_NAME(ceedqfunctioncontextview, CEEDQFUNCTIONCONTEXTVIEW)
692711
CEED_EXTERN void fCeedQFunctionContextView(int *ctx, int *err) { *err = CeedQFunctionContextView(CeedQFunctionContext_dict[*ctx], stdout); }
693712

@@ -849,6 +868,11 @@ CEED_EXTERN void fCeedQFunctionSetContext(int *qf, int *ctx, int *err) {
849868
*err = CeedQFunctionContextDestroy(&fctx);
850869
}
851870

871+
#define fCeedQFunctionSetNumViewTabs FORTRAN_NAME(ceedqfunctionsetnumviewtabs, CEEDQFUNCTIONSETNUMVIEWTABS)
872+
CEED_EXTERN void fCeedQFunctionSetNumViewTabs(int *qf, int *num_tabs, int *err) {
873+
*err = CeedQFunctionSetNumViewTabs(CeedQFunction_dict[*qf], *num_tabs);
874+
}
875+
852876
#define fCeedQFunctionView FORTRAN_NAME(ceedqfunctionview, CEEDQFUNCTIONVIEW)
853877
CEED_EXTERN void fCeedQFunctionView(int *qf, int *err) {
854878
CeedQFunction qf_ = CeedQFunction_dict[*qf];

tests/output/t107-vector-f.out

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,14 @@ CeedVector length 10
99
17.00000000
1010
18.00000000
1111
19.00000000
12+
CeedVector length 10
13+
10.00000000
14+
11.00000000
15+
12.00000000
16+
13.00000000
17+
14.00000000
18+
15.00000000
19+
16.00000000
20+
17.00000000
21+
18.00000000
22+
19.00000000
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
CeedElemRestriction from (4, 1) to 3 elements with 2 nodes each and component stride 1
2+
CeedElemRestriction from (4, 1) to 3 elements with 2 nodes each and component stride 1
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
CeedElemRestriction from (6, 1) to 3 elements with 2 nodes each and strides [1, 2, 2]
2+
CeedElemRestriction from (6, 1) to 3 elements with 2 nodes each and strides [1, 2, 2]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
Blocked CeedElemRestriction from (6, 1) to 3 elements with 2 nodes each and strides [1, 2, 2]
2+
Blocked CeedElemRestriction from (6, 1) to 3 elements with 2 nodes each and strides [1, 2, 2]

tests/output/t300-basis-f.out

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,20 @@ CeedBasis in a H^1 space on a line element
3232
[1] -0.51670214 -0.48795249 1.33790510 -0.33325047
3333
[2] 0.33325047 -1.33790510 0.48795249 0.51670214
3434
[3] -0.18899664 0.63510411 -2.78794489 2.34183742
35+
CeedBasis in a H^1 space on a line element
36+
P: 4
37+
Q: 4
38+
dimension: 1
39+
field components: 1
40+
qref1d: -0.86113631 -0.33998104 0.33998104 0.86113631
41+
qweight1d: 0.34785485 0.65214515 0.65214515 0.34785485
42+
interp1d:
43+
[0] 0.62994317 0.47255875 -0.14950343 0.04700152
44+
[1] -0.07069480 0.97297619 0.13253993 -0.03482132
45+
[2] -0.03482132 0.13253993 0.97297619 -0.07069480
46+
[3] 0.04700152 -0.14950343 0.47255875 0.62994317
47+
grad1d:
48+
[0] -2.34183742 2.78794489 -0.63510411 0.18899664
49+
[1] -0.51670214 -0.48795249 1.33790510 -0.33325047
50+
[2] 0.33325047 -1.33790510 0.48795249 0.51670214
51+
[3] -0.18899664 0.63510411 -2.78794489 2.34183742

tests/output/t320-basis-f.out

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,24 @@ CeedBasis in a H^1 space on a triangle element
1919
[5] 0.20000000 -2.40000000 0.00000000 0.00000000 2.40000000 -0.20000000
2020
[6] -0.33333333 -1.33333333 0.00000000 0.00000000 1.33333333 0.33333333
2121
[7] 0.20000000 -0.80000000 0.00000000 -1.60000000 0.80000000 1.40000000
22+
CeedBasis in a H^1 space on a triangle element
23+
P: 6
24+
Q: 4
25+
dimension: 2
26+
field components: 1
27+
qref: 0.20000000 0.60000000 0.33333333 0.20000000 0.20000000 0.20000000 0.33333333 0.60000000
28+
qweight: 0.26041667 0.26041667 -0.28125000 0.26041667
29+
interp:
30+
[0] 0.12000000 0.48000000 -0.12000000 0.48000000 0.16000000 -0.12000000
31+
[1] -0.12000000 0.48000000 0.12000000 0.16000000 0.48000000 -0.12000000
32+
[2] -0.11111111 0.44444444 -0.11111111 0.44444444 0.44444444 -0.11111111
33+
[3] -0.12000000 0.16000000 -0.12000000 0.48000000 0.48000000 0.12000000
34+
grad:
35+
[0] -1.40000000 1.60000000 -0.20000000 -0.80000000 0.80000000 0.00000000
36+
[1] 0.20000000 -1.60000000 1.40000000 -0.80000000 0.80000000 0.00000000
37+
[2] -0.33333333 0.00000000 0.33333333 -1.33333333 1.33333333 0.00000000
38+
[3] 0.20000000 0.00000000 -0.20000000 -2.40000000 2.40000000 0.00000000
39+
[4] -1.40000000 -0.80000000 0.00000000 1.60000000 0.80000000 -0.20000000
40+
[5] 0.20000000 -2.40000000 0.00000000 0.00000000 2.40000000 -0.20000000
41+
[6] -0.33333333 -1.33333333 0.00000000 0.00000000 1.33333333 0.33333333
42+
[7] 0.20000000 -0.80000000 0.00000000 -1.60000000 0.80000000 1.40000000

tests/output/t402-qfunction-f.out

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,20 @@ User CeedQFunction - mass
2626
EvalMode: "interpolation"
2727
CeedQFunctionContext
2828
Context Data Size: 40
29+
User CeedQFunction - mass
30+
2 input fields:
31+
Input field 0:
32+
Name: "qdata"
33+
Size: 1
34+
EvalMode: "none"
35+
Input field 1:
36+
Name: "u"
37+
Size: 1
38+
EvalMode: "interpolation"
39+
1 output field:
40+
Output field 0:
41+
Name: "v"
42+
Size: 1
43+
EvalMode: "interpolation"
44+
CeedQFunctionContext
45+
Context Data Size: 40

tests/output/t413-qfunction-f.out

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,18 @@ Gallery CeedQFunction - MassApply
2828
Name: "v"
2929
Size: 1
3030
EvalMode: "interpolation"
31+
Gallery CeedQFunction - MassApply
32+
2 input fields:
33+
Input field 0:
34+
Name: "u"
35+
Size: 1
36+
EvalMode: "interpolation"
37+
Input field 1:
38+
Name: "qdata"
39+
Size: 1
40+
EvalMode: "none"
41+
1 output field:
42+
Output field 0:
43+
Name: "v"
44+
Size: 1
45+
EvalMode: "interpolation"

tests/t003-ceed-f.f90

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ program test
1212

1313
call ceedview(ceed,err)
1414

15+
call ceedsetnumviewtabs(ceed,1,err)
16+
call ceedview(ceed,err)
17+
1518
call ceeddestroy(ceed,err)
1619

1720
end

0 commit comments

Comments
 (0)