from __future__ import absolute_import

filename_mesh = './pipe_2df.mesh'

options = {
    'nls' : 'newton',
    'ls' : 'ls',

    'linearization' : {
        'kind' : 'strip',
        'min_level' : 1,
        'max_level' : 2,
        'eps' : 1e-1,
    },
}

field_1 = {
    'name' : '2_velocity',
    'dtype' : 'real',
    'shape' : (2,),
    'region' : 'Omega',
    'approx_order' : 2,
},

field_2 = {
    'name' : 'pressure',
    'dtype' : 'real',
    'shape' : (1,),
    'region' : 'Omega',
    'approx_order' : 1,
}

region_0 = {
    'name' : 'Omega',
    'select' : 'all',
}

region_1 = {
    'name' : 'Inlet',
    'select' : 'vertices in (y > 0.00001)',
    'kind' : 'facet',
}

region_2 = {
    'name' : 'Outlet',
    'select' : 'vertices in (y < -0.39999)',
    'kind' : 'facet',
}

region_3 = {
    'name' : 'Wall',
    'select' : 'vertices of surface -v (r.Inlet +v r.Outlet)',
    'kind' : 'facet',
}

material_1 = {
    'name' : 'fluid',
    'values' : {
        'viscosity' : 0.00365,
        'density' : 1050,
    },
}

variable_1 = {
    'name' : 'u',
    'kind' : 'unknown field',
    'field' : '2_velocity',
    'order' : 0,
}

variable_2 = {
    'name' : 'v',
    'kind' : 'test field',
    'field' : '2_velocity',
    'dual' : 'u',
}

variable_3 = {
    'name' : 'p',
    'kind' : 'unknown field',
    'field' : 'pressure',
    'order' : 1,
}

variable_4 = {
    'name' : 'q',
    'kind' : 'test field',
    'field' : 'pressure',
    'dual' : 'p',
}

ebc_1 = {
    'name' : 'Walls',
    'region' : 'Walls',
    'dofs' : {'u.all' : 0},
}

ebc_2 = {
    'name' : 'Inlet',
    'region' : 'Inlet',
    'dofs' : {'u.1' : 0.459, 'u.0' : 0},
}

ebc_3 = {
    'name' : 'Outlet',
    'region' : 'Outlet',
    'dofs' : {'p.all' : -20},
}

integral_1 = {
    'name' : 'i1',
    'order' : 2,
}

integral_2 = {
    'name' : 'i2',
    'order' : 3,
}

equations = {
    'balance' :
        """+ dw_div_grad.i2.Omega( fluid.viscosity, v, u )
           + dw_convect.i2.Omega( v, u )
           - dw_stokes.i2.Omega( v, p ) = 0""",
    'incompressibility' :
        """dw_stokes.i2.Omega( u, q ) = 0""",
}

solver_0 = {
    'name' : 'ls',
    'kind' : 'ls.scipy_direct',
}

solver_1 = {
    'name' : 'newton',
    'kind' : 'nls.newton',

    'i_max' : 5,
    'eps_a' : 1e-8,
    'eps_r' : 1.0,
    'macheps' : 1e-16,
    'lin_red' : 0.1,
    'ls_red' : 0.1,
    'ls_red_warp' : 0.001,
    'ls_on' : 0.99999,
    'ls_min' : 1e-5,
    'check' : 0,
    'delta' : 1e-6,
}
