This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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