1 0 GfsPoisson GfsBox GfsGEdge {} {
    Time { iend = 1 }
    Refine LEVEL

    Solid ({
            double theta = atan2 (y, x);
            double radius = 0.30 + 0.15*cos (6.*theta);
            return radius*radius - x*x - y*y;
    })
    SurfaceBc P Dirichlet {
	double theta = atan2 (y, x);
	double r2 = x*x + y*y;
	return r2*r2*cos (3.*theta);
    }

    GModule hypre
    ApproxProjectionParams { 
	tolerance = 1e-30 
	erelax = 2 
	nitermin = CYCLE nitermax = CYCLE 
    }

    Init {} {
	Div = {
	    double theta = atan2 (y, x);
	    double r2 = x*x + y*y;
	    return 7.*r2*cos (3.*theta);
	}
    }
    OutputTime { istep = 1 } {
	awk '{if ($2 == 1) print CYCLE, $8;}' >> time
    }
    OutputProjectionStats { start = end } {
	awk '{if ($1 == "residual.infty:") print CYCLE, $3, $4;}' >> proj
    }
    OutputErrorNorm { start = end } {
	awk '{print LEVEL, $5, $7, $9}' >> error 
    } { v = P } {
	s = {
	    double theta = atan2 (y, x);
	    double r2 = x*x + y*y;
	    return r2*r2*cos (3.*theta);
	}
    }
    OutputSimulation { start = end } end-SOLVER.gfs
}
GfsBox {}