@@ -276,6 +276,7 @@ static inline int CeedSingleOperatorAssembleAddDiagonal_Core(CeedOperator op, Ce
276
276
CeedElemRestriction assembled_elem_rstr ;
277
277
CeedInt num_input_fields , num_output_fields ;
278
278
CeedInt layout [3 ];
279
+
279
280
CeedCall (CeedOperatorGetQFunction (op , & qf ));
280
281
CeedCall (CeedQFunctionGetNumArgs (qf , & num_input_fields , & num_output_fields ));
281
282
CeedCall (CeedOperatorLinearAssembleQFunctionBuildOrUpdate (op , & assembled_qf , & assembled_elem_rstr , request ));
@@ -300,8 +301,10 @@ static inline int CeedSingleOperatorAssembleAddDiagonal_Core(CeedOperator op, Ce
300
301
for (CeedInt b = 0 ; b < num_active_bases ; b ++ ) {
301
302
// Assemble point block diagonal restriction, if needed
302
303
CeedElemRestriction diag_elem_rstr = active_elem_rstrs [b ];
304
+
303
305
if (is_pointblock ) {
304
306
CeedElemRestriction point_block_elem_rstr ;
307
+
305
308
CeedCall (CeedOperatorCreateActivePointBlockRestriction (diag_elem_rstr , & point_block_elem_rstr ));
306
309
diag_elem_rstr = point_block_elem_rstr ;
307
310
}
@@ -313,6 +316,7 @@ static inline int CeedSingleOperatorAssembleAddDiagonal_Core(CeedOperator op, Ce
313
316
// Assemble element operator diagonals
314
317
CeedScalar * elem_diag_array ;
315
318
CeedInt num_elem , num_nodes , num_qpts , num_components ;
319
+
316
320
CeedCall (CeedVectorSetValue (elem_diag , 0.0 ));
317
321
CeedCall (CeedVectorGetArray (elem_diag , CEED_MEM_HOST , & elem_diag_array ));
318
322
CeedCall (CeedElemRestrictionGetNumElements (diag_elem_rstr , & num_elem ));
@@ -547,6 +551,7 @@ static int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset, CeedVecto
547
551
// Early exit for empty operator
548
552
{
549
553
CeedInt num_elem = 0 ;
554
+
550
555
CeedCall (CeedOperatorGetNumElements (op , & num_elem ));
551
556
if (num_elem == 0 ) return CEED_ERROR_SUCCESS ;
552
557
}
@@ -558,6 +563,7 @@ static int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset, CeedVecto
558
563
} else {
559
564
// Operator fallback
560
565
CeedOperator op_fallback ;
566
+
561
567
CeedCall (CeedOperatorGetFallback (op , & op_fallback ));
562
568
if (op_fallback ) {
563
569
CeedCall (CeedSingleOperatorAssemble (op_fallback , offset , values ));
@@ -573,6 +579,7 @@ static int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset, CeedVecto
573
579
CeedCall (CeedOperatorLinearAssembleQFunctionBuildOrUpdate (op , & assembled_qf , & rstr_q , CEED_REQUEST_IMMEDIATE ));
574
580
CeedSize qf_length ;
575
581
CeedCall (CeedVectorGetLength (assembled_qf , & qf_length ));
582
+
576
583
CeedInt num_input_fields , num_output_fields ;
577
584
CeedOperatorField * input_fields ;
578
585
CeedOperatorField * output_fields ;
@@ -607,16 +614,18 @@ static int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset, CeedVecto
607
614
CeedCall (CeedElemRestrictionGetElementSize (active_rstr , & elem_size ));
608
615
CeedCall (CeedElemRestrictionGetNumComponents (active_rstr , & num_comp ));
609
616
CeedCall (CeedBasisGetNumQuadraturePoints (basis_in , & num_qpts ));
617
+
610
618
CeedInt local_num_entries = elem_size * num_comp * elem_size * num_comp * num_elem ;
611
619
612
- // Loop over elements and put in data structure
620
+ // loop over elements and put in data structure
613
621
const CeedScalar * assembled_qf_array ;
614
622
CeedCall (CeedVectorGetArrayRead (assembled_qf , CEED_MEM_HOST , & assembled_qf_array ));
623
+
615
624
CeedInt layout_qf [3 ];
616
625
CeedCall (CeedElemRestrictionGetELayout (rstr_q , & layout_qf ));
617
626
CeedCall (CeedElemRestrictionDestroy (& rstr_q ));
618
627
619
- // We store B_mat_in, B_mat_out, BTD, elem_mat in row-major order
628
+ // we store B_mat_in, B_mat_out, BTD, elem_mat in row-major order
620
629
const CeedScalar * * B_mats_in , * * B_mats_out ;
621
630
CeedCall (CeedOperatorAssemblyDataGetBases (data , NULL , NULL , & B_mats_in , & B_mats_out ));
622
631
const CeedScalar * B_mat_in = B_mats_in [0 ], * B_mat_out = B_mats_out [0 ];
@@ -644,10 +653,10 @@ static int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset, CeedVecto
644
653
}
645
654
}
646
655
}
647
- // Form element matrix itself (for each block component)
656
+ // form element matrix itself (for each block component)
648
657
CeedCall (CeedMatrixMatrixMultiply (ceed , BTD_mat , B_mat_in , elem_mat , elem_size , elem_size , num_qpts * num_eval_modes_in [0 ]));
649
658
650
- // Put element matrix in coordinate data structure
659
+ // put element matrix in coordinate data structure
651
660
for (CeedInt i = 0 ; i < elem_size ; i ++ ) {
652
661
for (CeedInt j = 0 ; j < elem_size ; j ++ ) {
653
662
vals [offset + count ] = elem_mat [i * elem_size + j ];
@@ -663,6 +672,7 @@ static int CeedSingleOperatorAssemble(CeedOperator op, CeedInt offset, CeedVecto
663
672
// LCOV_EXCL_STOP
664
673
}
665
674
CeedCall (CeedVectorRestoreArray (values , & vals ));
675
+
666
676
CeedCall (CeedVectorRestoreArrayRead (assembled_qf , & assembled_qf_array ));
667
677
CeedCall (CeedVectorDestroy (& assembled_qf ));
668
678
@@ -1081,8 +1091,8 @@ int CeedQFunctionAssemblyDataDestroy(CeedQFunctionAssemblyData *data) {
1081
1091
CeedCall (CeedDestroy (& (* data )-> ceed ));
1082
1092
CeedCall (CeedVectorDestroy (& (* data )-> vec ));
1083
1093
CeedCall (CeedElemRestrictionDestroy (& (* data )-> rstr ));
1084
- CeedCall (CeedFree (data ));
1085
1094
1095
+ CeedCall (CeedFree (data ));
1086
1096
return CEED_ERROR_SUCCESS ;
1087
1097
}
1088
1098
@@ -1099,6 +1109,7 @@ int CeedQFunctionAssemblyDataDestroy(CeedQFunctionAssemblyData *data) {
1099
1109
int CeedOperatorGetOperatorAssemblyData (CeedOperator op , CeedOperatorAssemblyData * data ) {
1100
1110
if (!op -> op_assembled ) {
1101
1111
CeedOperatorAssemblyData data ;
1112
+
1102
1113
CeedCall (CeedOperatorAssemblyDataCreate (op -> ceed , op , & data ));
1103
1114
op -> op_assembled = data ;
1104
1115
}
@@ -2054,7 +2065,6 @@ int CeedCompositeOperatorGetMultiplicity(CeedOperator op, CeedInt num_skip_indic
2054
2065
CeedCall (CeedElemRestrictionApply (elem_rstr , CEED_NOTRANSPOSE , ones_l_vec , ones_e_vec , CEED_REQUEST_IMMEDIATE ));
2055
2066
CeedCall (CeedElemRestrictionApply (elem_rstr , CEED_TRANSPOSE , ones_e_vec , sub_mult_l_vec , CEED_REQUEST_IMMEDIATE ));
2056
2067
CeedCall (CeedVectorGetArrayRead (sub_mult_l_vec , CEED_MEM_HOST , & sub_mult_array ));
2057
-
2058
2068
// ---- Flag every node present in the current suboperator
2059
2069
for (CeedInt j = 0 ; j < l_vec_len ; j ++ ) {
2060
2070
if (sub_mult_array [j ] > 0.0 ) mult_array [j ] += 1.0 ;
0 commit comments