Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
(TranslationUnit [(Module MaxwellEddy [] [] [(Subroutine destroy_system [(sys)] [] [(Declaration [(sys "type" [] [(Attribute intent [(inout)] [])] ())]) (Declaration [(default "type" [] [] ())])] [(Print () []) (If (FuncCallOrArray allocated [g0] []) [(Print () [])] []) (If (FuncCallOrArray allocated [eps] []) [(Print () [])] []) (If (FuncCallOrArray allocated [mu] []) [(Print () [])] []) (If (FuncCallOrArray allocated [sigma] []) [(Print () [])] []) (If (FuncCallOrArray allocated [emask] []) [(Print () [])] []) (If (FuncCallOrArray allocated [mtr1] []) [(Print () [])] []) (If (FuncCallOrArray allocated [mtr2] []) [(Print () [])] []) (If (FuncCallOrArray allocated [mtr3] []) [(Print () [])] []) (If (FuncCallOrArray allocated [w0mask] []) [(Print () [])] []) (If (FuncCallOrArray allocated [w1mask] []) [(Print () [])] []) (SubroutineCall destroy_msr_matrix [a0]) (SubroutineCall destroy_msr_matrix [a1]) (SubroutineCall destroy [ehist]) (SubroutineCall destroy [bhist]) (= sys default)] []) (Subroutine set_initial_values [(sys) (t) (e) (b)] [] [(Declaration [(sys "type" [] [(Attribute intent [(inout)] [])] ())]) (Declaration [(t "real" [] [(Attribute intent [(in)] [])] ()) (e "real" [(() ())] [(Attribute intent [(in)] [])] ()) (b "real" [(() ())] [(Attribute intent [(in)] [])] ())])] [(= t t) (SubroutineCall create_history [ehist 3 t e]) (SubroutineCall create_history [bhist 3 t b])] []) (Subroutine set_param [(sys) (minitr) (maxitr) (tol) (red) (output_level)] [] [(Declaration [(sys "type" [] [(Attribute intent [(inout)] [])] ())]) (Declaration [(tol "real" [] [(Attribute intent [(in)] []) (Attribute optional [] [])] ()) (red "real" [] [(Attribute intent [(in)] []) (Attribute optional [] [])] ())]) (Declaration [(minitr "integer" [] [(Attribute intent [(in)] []) (Attribute optional [] [])] ()) (maxitr "integer" [] [(Attribute intent [(in)] []) (Attribute optional [] [])] ()) (output_level "integer" [] [(Attribute intent [(in)] []) (Attribute optional [] [])] ())])] [(If (FuncCallOrArray present [minitr] []) [(= minitr minitr)] []) (If (FuncCallOrArray present [maxitr] []) [(= maxitr maxitr)] []) (If (FuncCallOrArray present [tol] []) [(= tol tol)] []) (If (FuncCallOrArray present [red] []) [(= red red)] []) (If (FuncCallOrArray present [output_level] []) [(= output_level output_level)] [])] []) (Subroutine interpolate_fields [(sys) (t) (e) (b)] [] [(Declaration [(sys "type" [] [(Attribute intent [(in)] [])] ())]) (Declaration [(t "real" [] [(Attribute intent [(in)] [])] ())]) (Declaration [(e "real" [(() ())] [(Attribute intent [(out)] [])] ()) (b "real" [(() ())] [(Attribute intent [(out)] [])] ())])] [(SubroutineCall interpolate_solution [ehist t e]) (SubroutineCall interpolate_solution [bhist t b])] []) (Subroutine step [(sys) (t) (e) (b) (status) (set_bv) (bndry_src)] [] [(Declaration [(sys "type" [] [(Attribute intent [(inout)] []) (Attribute target [] [])] ())]) (Declaration [(t "real" [] [(Attribute intent [(out)] [])] ()) (e "real" [(() ())] [(Attribute intent [(out)] [])] ()) (b "real" [(() ())] [(Attribute intent [(out)] [])] ())]) (Declaration [(status "integer" [] [(Attribute intent [(out)] [])] ())]) (Declaration [(bndry_src () [] [(Attribute optional [] [])] ())]) (Interface2 () []) (Declaration [(r "real" [(1 nedge)] [] ()) (de "real" [(1 nedge)] [] ()) (g "real" [(1 nedge)] [] ())]) (Declaration [(e0 "real" [(() ())] [(Attribute pointer [] [])] ()) (b0 "real" [(() ())] [(Attribute pointer [] [])] ())]) (Declaration [(message "character" [] [] ())])] [(=> cg_sys sys) (= t (+ t dt)) (=> e0 (FuncCallOrArray most_recent_solution [ehist] [])) (=> b0 (FuncCallOrArray most_recent_solution [bhist] [])) (If (FuncCallOrArray present [bndry_src] []) [(If (not (FuncCallOrArray allocated [g0] [])) [(Print () []) (SubroutineCall bndry_src [t g0])] []) (SubroutineCall bndry_src [t g])] [(If (FuncCallOrArray allocated [g0] []) [(Print () [])] [])]) (SubroutineCall interpolate_solution [ehist t e]) (SubroutineCall set_bv [t e]) (SubroutineCall gather_boundary [edge_ip e]) (SubroutineCall tr_res [sys e0 b0 e r]) (If (FuncCallOrArray present [bndry_src] []) [(= r (+ r (* (* (Real "0.5_r8") dt) (+ g0 g))))] []) (SubroutineCall gather_boundary [edge_ip r]) (= de (Real "0.0_r8")) (SubroutineCall SolveCG [cg cg_ax cg_pc r de nedge_onP status]) (SubroutineCall gather_boundary [edge_ip de]) (If (/= status 0) [(Return)] []) (= e (+ e de)) (If (>= output_level 3) [(Print () [(Str "step |de|_max=") (FuncCallOrArray global_maxval [(FuncCallOrArray abs [de] [])] [])]) (SubroutineCall TLS_info [(FuncCallOrArray trim [message] [])])] []) (= b (- b0 (* (* (* (Real "0.5_r8") dt) (** delta 2)) (FuncCallOrArray curl [mesh (+ e0 e)] [])))) (= t t) (SubroutineCall record_solution [ehist t e]) (SubroutineCall record_solution [bhist t b]) (= g0 g)] []) (Subroutine initialize_system [(sys) (mesh) (eps) (mu) (sigma) (etasq) (delta) (dt) (emask)] [] [(Declaration [(sys "type" [] [(Attribute intent [(out)] [])] ())]) (Declaration [(mesh "type" [] [(Attribute intent [(in)] []) (Attribute target [] [])] ())]) (Declaration [(eps "real" [(() ())] [(Attribute intent [(in)] [])] ()) (mu "real" [(() ())] [(Attribute intent [(in)] [])] ()) (sigma "real" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(dt "real" [] [(Attribute intent [(in)] [])] ()) (etasq "real" [] [(Attribute intent [(in)] [])] ()) (delta "real" [] [(Attribute intent [(in)] [])] ())]) (Declaration [(emask "integer" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(i "integer" [] [] ()) (j "integer" [] [] ()) (k "integer" [] [] ()) (l "integer" [] [] ()) (m "integer" [] [] ()) (n "integer" [] [] ())]) (Declaration [(c "real" [(1 4) (1 6)] [] ()) (ctm2 "real" [(1 6) (1 4)] [] ()) (ctm2c "real" [(1 6) (1 6)] [] ()) (g "real" [(1 6) (1 4)] [] ()) (a0 "real" [(1 4) (1 4)] [] ()) (m1 "real" [(1 21)] [] ()) (m2 "real" [(1 10)] [] ())]) (Declaration [(ebedge "integer" [(() ())] [(Attribute allocatable [] [])] ())])] [(=> mesh mesh) (= dt dt) (= etasq etasq) (= delta delta) (Print () []) (= eps eps) (= mu mu) (= sigma sigma) (= emask emask) (Print () []) (= c (FuncCallOrArray reshape [(ArrayInitializer [(Real "0.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (u- (Real "1.0_r8")) (Real "0.0_r8") (u- (Real "1.0_r8")) (u- (Real "1.0_r8")) (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "0.0_r8") (Real "1.0_r8") (u- (Real "1.0_r8")) (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "0.0_r8")]) (FuncCallOrArray shape [c] [])] [])) (DoLoop j 1 ncell () [(= m2 (FuncCallOrArray W2_matrix_WE [mesh j] [])) (DoLoop k 1 6 () [(= (FuncCallOrArray ctm2 [k 1] []) (+ (+ (+ (* (FuncCallOrArray m2 [1] []) (FuncCallOrArray c [1 k] [])) (* (FuncCallOrArray m2 [2] []) (FuncCallOrArray c [2 k] []))) (* (FuncCallOrArray m2 [4] []) (FuncCallOrArray c [3 k] []))) (* (FuncCallOrArray m2 [7] []) (FuncCallOrArray c [4 k] [])))) (= (FuncCallOrArray ctm2 [k 2] []) (+ (+ (+ (* (FuncCallOrArray m2 [2] []) (FuncCallOrArray c [1 k] [])) (* (FuncCallOrArray m2 [3] []) (FuncCallOrArray c [2 k] []))) (* (FuncCallOrArray m2 [5] []) (FuncCallOrArray c [3 k] []))) (* (FuncCallOrArray m2 [8] []) (FuncCallOrArray c [4 k] [])))) (= (FuncCallOrArray ctm2 [k 3] []) (+ (+ (+ (* (FuncCallOrArray m2 [4] []) (FuncCallOrArray c [1 k] [])) (* (FuncCallOrArray m2 [5] []) (FuncCallOrArray c [2 k] []))) (* (FuncCallOrArray m2 [6] []) (FuncCallOrArray c [3 k] []))) (* (FuncCallOrArray m2 [9] []) (FuncCallOrArray c [4 k] [])))) (= (FuncCallOrArray ctm2 [k 4] []) (+ (+ (+ (* (FuncCallOrArray m2 [7] []) (FuncCallOrArray c [1 k] [])) (* (FuncCallOrArray m2 [8] []) (FuncCallOrArray c [2 k] []))) (* (FuncCallOrArray m2 [9] []) (FuncCallOrArray c [3 k] []))) (* (FuncCallOrArray m2 [10] []) (FuncCallOrArray c [4 k] []))))]) (= (FuncCallOrArray mtr3 [1 1 j] []) (* (/ dt (FuncCallOrArray mu [j] [])) ctm2)) (= ctm2c (* (/ (** (* (* (Real "0.5_r8") dt) delta) 2) (FuncCallOrArray mu [j] [])) (FuncCallOrArray matmul [ctm2 c] []))) (= m1 (FuncCallOrArray W1_matrix_WE [mesh j] [])) (= l 0) (DoLoop k 1 6 () [(DoLoop i 1 k () [(= l (+ l 1)) (= (FuncCallOrArray mtr1 [l j] []) (+ (* (+ (* etasq (FuncCallOrArray eps [j] [])) (* (* (Real "0.5_r8") dt) (FuncCallOrArray sigma [j] []))) (FuncCallOrArray m1 [l] [])) (FuncCallOrArray ctm2c [i k] []))) (= (FuncCallOrArray mtr2 [l j] []) (- (* (- (* etasq (FuncCallOrArray eps [j] [])) (* (* (Real "0.5_r8") dt) (FuncCallOrArray sigma [j] []))) (FuncCallOrArray m1 [l] [])) (FuncCallOrArray ctm2c [i k] [])))])])]) (Print () []) (= w1mask (== emask 0)) (= w0mask (Constant Unimplementedconstant)) (DoLoop j 1 nedge () [(If (not (FuncCallOrArray w1mask [j] [])) [(= (FuncCallOrArray w0mask [(FuncCallOrArray enode [1 j] [])] []) (Constant Unimplementedconstant))] [])]) (SubroutineCall gather_boundary [node_ip w0mask]) (SubroutineCall create_msr_matrix [nedge cedge a1]) (DoLoop j 1 ncell () [(= l 0) (DoLoop n 1 6 () [(DoLoop m 1 n () [(= l (+ l 1)) (SubroutineCall increment_msr_matrix_value [a1 (FuncCallOrArray cedge [m j] []) (FuncCallOrArray cedge [n j] []) (FuncCallOrArray mtr1 [l j] [])]) (If (== m n) [(Cycle)] []) (SubroutineCall increment_msr_matrix_value [a1 (FuncCallOrArray cedge [n j] []) (FuncCallOrArray cedge [m j] []) (FuncCallOrArray mtr1 [l j] [])])])])]) (Print () []) (= ebedge (FuncCallOrArray pack [(ArrayInitializer [j]) (/= emask 0)] [])) (SubroutineCall remove_dof [a1 ebedge]) (Print () []) (= g (FuncCallOrArray reshape [(ArrayInitializer [(u- (Real "1.0_r8")) (u- (Real "1.0_r8")) (u- (Real "1.0_r8")) (Real "0.0_r8") (Real "0.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "0.0_r8") (u- (Real "1.0_r8")) (u- (Real "1.0_r8")) (Real "0.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (u- (Real "1.0_r8")) (Real "0.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "0.0_r8") (Real "1.0_r8") (Real "1.0_r8")]) (FuncCallOrArray shape [g] [])] [])) (SubroutineCall create_msr_matrix [nnode cnode a0]) (DoLoop j 1 ncell () [(= a0 (* (+ (* etasq (FuncCallOrArray eps [j] [])) (* (* (Real "0.5_r8") dt) (FuncCallOrArray sigma [j] []))) (FuncCallOrArray matmul [(FuncCallOrArray transpose [g] []) (FuncCallOrArray sym_matmul [(FuncCallOrArray W1_matrix_WE [mesh j] []) g] [])] []))) (DoLoop k 1 4 () [(DoLoop i 1 4 () [(SubroutineCall increment_msr_matrix_value [a0 (FuncCallOrArray cnode [i j] []) (FuncCallOrArray cnode [k j] []) (FuncCallOrArray a0 [i k] [])])])])]) (Print () []) (= ebedge (FuncCallOrArray pack [(ArrayInitializer [j]) (not w0mask)] [])) (SubroutineCall remove_dof [a0 ebedge]) (Print () [])] []) (Subroutine remove_dof [(this) (dof)] [] [(Declaration [(this "type" [] [(Attribute intent [(inout)] [])] ())]) (Declaration [(dof "integer" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(j "integer" [] [] ()) (m "integer" [] [] ()) (n "integer" [] [] ()) (lmn "integer" [] [] ()) (lnm "integer" [] [] ())])] [(DoLoop j 1 (FuncCallOrArray size [dof] []) () [(= m (FuncCallOrArray dof [j] [])) (If (BoolOp (< m 1) boolopType1 (> m nrow)) [(Cycle)] []) (= (FuncCallOrArray diag [m] []) (Real "1.0_r8")) (DoLoop lmn (FuncCallOrArray xadj [m] []) (- (FuncCallOrArray xadj [(+ m 1)] []) 1) () [(= (FuncCallOrArray nonz [lmn] []) (Real "0.0_r8")) (= n (FuncCallOrArray adjncy [lmn] [])) (DoLoop lnm (FuncCallOrArray xadj [n] []) (- (FuncCallOrArray xadj [(+ n 1)] []) 1) () [(If (== (FuncCallOrArray adjncy [lnm] []) m) [(Exit)] [])]) (= (FuncCallOrArray nonz [lnm] []) (Real "0.0_r8"))])])] []) (Subroutine tr_res [(sys) (e) (b) (e0) (r)] [] [(Declaration [(sys "type" [] [(Attribute intent [(in)] [])] ())]) (Declaration [(e "real" [(() ())] [(Attribute intent [(in)] [])] ()) (e0 "real" [(() ())] [(Attribute intent [(in)] [])] ()) (b "real" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(r "real" [(() ())] [(Attribute intent [(out)] [])] ())]) (Declaration [(i "integer" [] [] ()) (j "integer" [] [] ()) (k "integer" [] [] ()) (l1 "integer" [] [] ()) (l2 "integer" [] [] ())]) (Declaration [(value "real" [] [] ()) (el "real" [(1 6)] [] ()) (e0l "real" [(1 6)] [] ()) (bl "real" [(1 4)] [] ())])] [(= r (Real "0.0_r8")) (DoLoop j 1 ncell () [(DoLoop k 1 6 () [(= i (FuncCallOrArray cedge [k j] [])) (= (FuncCallOrArray el [k] []) (FuncCallOrArray e [i] [])) (= (FuncCallOrArray e0l [k] []) (FuncCallOrArray e0 [i] []))]) (DoLoop k 1 4 () [(= (FuncCallOrArray bl [k] []) (FuncCallOrArray b [(FuncCallOrArray cface [k j] [])] []))]) (= l1 1) (DoLoop k 1 6 () [(= value (FuncCallOrArray r [(FuncCallOrArray cedge [k j] [])] [])) (= l2 l1) (DoLoop i 1 (- k 1) () [(= value (- (+ value (* (FuncCallOrArray mtr2 [l2 j] []) (FuncCallOrArray el [i] []))) (* (FuncCallOrArray mtr1 [l2 j] []) (FuncCallOrArray e0l [i] [])))) (= l2 (+ l2 1))]) (DoLoop i k 6 () [(= value (- (+ value (* (FuncCallOrArray mtr2 [l2 j] []) (FuncCallOrArray el [i] []))) (* (FuncCallOrArray mtr1 [l2 j] []) (FuncCallOrArray e0l [i] [])))) (= l2 (+ l2 i))]) (DoLoop i 1 4 () [(= value (+ value (* (FuncCallOrArray mtr3 [k i j] []) (FuncCallOrArray bl [i] []))))]) (= (FuncCallOrArray r [(FuncCallOrArray cedge [k j] [])] []) value) (= l1 (+ l1 k))])]) (Where (/= emask 0) [(= r (Real "0.0_r8"))] [])] []) (Subroutine hiptmair [(sys) (f) (u)] [] [(Declaration [(sys "type" [] [(Attribute intent [(in)] [])] ())]) (Declaration [(f "real" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(u "real" [(() ())] [(Attribute intent [(out)] [])] ())]) (Declaration [(nedge_onP "integer" [] [] ()) (nnode_onP "integer" [] [] ())]) (Declaration [(un "real" [(1 nnode)] [] ()) (rn "real" [(1 nnode)] [] ()) (r "real" [(1 nedge)] [] ())])] [(= nedge_onP nedge_onP) (= nnode_onP nnode_onP) (= u (Real "0.0_r8")) (SubroutineCall gs_relaxation [a1 (FuncCallOrArray f [nedge_onP] []) u (Str "f")]) (= r (- f (FuncCallOrArray matmul_msr [a1 u] []))) (= rn (FuncCallOrArray grad_t [mesh r] [])) (Where (not w0mask) [(= rn (Real "0.0_r8"))] []) (= un (Real "0.0_r8")) (SubroutineCall gs_relaxation [a0 (FuncCallOrArray rn [nnode_onP] []) un (Str "fb")]) (= u (+ u (FuncCallOrArray grad [mesh un] []))) (SubroutineCall gs_relaxation [a1 (FuncCallOrArray f [nedge_onP] []) u (Str "b")]) (SubroutineCall scatter_boundary_sum [edge_ip u]) (SubroutineCall gather_boundary [edge_ip u])] []) (Subroutine cg_ax [(x) (y)] [] [(Declaration [(x "real" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(y "real" [(() ())] [(Attribute intent [(out)] [])] ())])] [(= y (FuncCallOrArray matmul_msr [a1 x] [])) (SubroutineCall gather_boundary [edge_ip y])] []) (Subroutine cg_pc [(x) (y)] [] [(Declaration [(x "real" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(y "real" [(() ())] [(Attribute intent [(out)] [])] ())])] [(SubroutineCall hiptmair [cg_sys x y])] []) (Function joule_heat [(sys) (u)] () q () [] [(Declaration [(sys "type" [] [(Attribute intent [(in)] [])] ())]) (Declaration [(u "real" [(() ())] [(Attribute intent [(in)] [])] ())]) (Declaration [(q "real" [(1 ncell)] [] ())]) (Declaration [(i "integer" [] [] ()) (j "integer" [] [] ()) (k "integer" [] [] ()) (l1 "integer" [] [] ()) (l2 "integer" [] [] ())]) (Declaration [(value "real" [] [] ()) (ul "real" [(1 6)] [] ()) (m1 "real" [(1 21)] [] ())])] [(= q (Real "0.0_r8")) (DoLoop j 1 ncell () [(If (== (FuncCallOrArray sigma [j] []) (Real "0.0_r8")) [(Cycle)] []) (DoLoop k 1 6 () [(= (FuncCallOrArray ul [k] []) (FuncCallOrArray u [(FuncCallOrArray cedge [k j] [])] []))]) (= m1 (FuncCallOrArray W1_matrix_WE [mesh j] [])) (= l1 1) (DoLoop k 1 6 () [(= value (Real "0.0_r8")) (= l2 l1) (DoLoop i 1 (- k 1) () [(= value (+ value (* (FuncCallOrArray m1 [l2] []) (FuncCallOrArray ul [i] [])))) (= l2 (+ l2 1))]) (DoLoop i k 6 () [(= value (+ value (* (FuncCallOrArray m1 [l2] []) (FuncCallOrArray ul [i] [])))) (= l2 (+ l2 i))]) (= (FuncCallOrArray q [j] []) (+ (FuncCallOrArray q [j] []) (* (FuncCallOrArray ul [k] []) value))) (= l1 (+ l1 k))]) (= (FuncCallOrArray q [j] []) (/ (* (FuncCallOrArray sigma [j] []) (FuncCallOrArray q [j] [])) (FuncCallOrArray abs [(FuncCallOrArray volume [j] [])] [])))])] []) (Subroutine hiptmair_is_symmetric [(sys)] [] [(Declaration [(sys "type" [] [(Attribute intent [(in)] []) (Attribute target [] [])] ())]) (Declaration [(j "integer" [] [] ()) (jproc "integer" [] [] ()) (k "integer" [] [] ()) (kproc "integer" [] [] ()) (kstart "integer" [] [] ()) (lun "integer" [] [] ()) (nedge_onP "integer" [] [] ()) (n "integer" [] [] ()) (m "integer" [] [] ()) (bsize_vector "integer" [(1 nPE)] [] ())]) (Declaration [(ej "real" [] [(Attribute dimension [] [(1 nedge)])] ()) (ek "real" [] [(Attribute dimension [] [(1 nedge)])] ()) (tmp "real" [] [(Attribute dimension [] [(1 nedge)])] ())]) (Declaration [(pe "real" [(1 nedge) (1 (FuncCallOrArray global_size [] []))] [] ())]) (Declaration [(edge_type "character" [(1 nedge)] [] ()) (etype "character" [(1 (FuncCallOrArray global_size [] []))] [] ())]) (Declaration [(ej_dot_pek "real" [] [] ()) (ek_dot_pej "real" [] [] ()) (ej_dot_pej "real" [] [] ())])] [(= nedge_onP nedge_onP) (=> cg_sys sys) (SubroutineCall collate [bsize_vector (FuncCallOrArray onP_size [] [])]) (= (FuncCallOrArray tmp [nedge_onP] []) (Real "0.0_r8")) (= (FuncCallOrArray tmp [1] []) (Real "1.0_r8")) (SubroutineCall scatter_boundary_max [edge_ip tmp]) (Where (> tmp (Real "0.0_r8")) [(= edge_type (Str "B"))] [(= edge_type (Str "I"))]) (Where (/= emask 0) [(= edge_type (Str "*"))] []) (SubroutineCall collate [etype (FuncCallOrArray edge_type [nedge_onP] [])]) (If is_IOP [(Print () []) (Print () [nPE]) (Print () [bsize_vector])] []) (If is_IOP [(Print () [(Str "hiptmair_is_symmetric: computing matvecs...")])] []) (= n 0) (DoLoop jproc 1 nPE () [(DoLoop j 1 (FuncCallOrArray bsize_vector [jproc] []) () [(= n (+ n 1)) (= ej (Real "0.0_r8")) (If (== this_PE jproc) [(= (FuncCallOrArray ej [j] []) (Real "1.0_r8"))] []) (SubroutineCall gather_boundary [edge_ip ej]) (SubroutineCall hiptmair [sys ej (FuncCallOrArray pe [1 n] [])]) (= ej_dot_pej (FuncCallOrArray global_dot_product [(FuncCallOrArray ej [nedge_onP] []) (FuncCallOrArray pe [nedge_onP n] [])] [])) (If is_IOP [(Print () [jproc j (FuncCallOrArray etype [n] []) ej_dot_pej])] [])])]) (If is_IOP [(Print () [(Str "hiptmair_is_symmetric: matvecs done; computing dot products...")])] []) (Return) (= n 0) (DoLoop jproc 1 nPE () [(DoLoop j 1 (FuncCallOrArray bsize_vector [jproc] []) () [(= n (+ n 1)) (= ej (Real "0.0_r8")) (If (== this_PE jproc) [(= (FuncCallOrArray ej [j] []) (Real "1.0_r8"))] []) (SubroutineCall gather_boundary [edge_ip ej]) (= m n) (DoLoop kproc jproc nPE () [(= kstart 1) (If (== kproc jproc) [(= kstart (+ j 1))] []) (DoLoop k kstart (FuncCallOrArray bsize_vector [kproc] []) () [(= m (+ m 1)) (= ek (Real "0.0_r8")) (If (== this_PE kproc) [(= (FuncCallOrArray ek [k] []) (Real "1.0_r8"))] []) (SubroutineCall gather_boundary [edge_ip ek]) (= ej_dot_pek (FuncCallOrArray global_dot_product [(FuncCallOrArray ej [nedge_onP] []) (FuncCallOrArray pe [nedge_onP m] [])] [])) (= ek_dot_pej (FuncCallOrArray global_dot_product [(FuncCallOrArray ek [nedge_onP] []) (FuncCallOrArray pe [nedge_onP n] [])] [])) (If is_IOP [(Print () [jproc j (FuncCallOrArray etype [n] []) kproc k (FuncCallOrArray etype [m] []) ej_dot_pek ek_dot_pej])] [])])])])]) (Print () [])] [])])])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment