fenicsx.fluid_dynamics package

Submodules

fenicsx.fluid_dynamics.steady_ns module

class fenicsx.fluid_dynamics.steady_ns.fixedValueVelocity(u_fixed: ndarray, t: float, gdim: int)[source]

Bases: object

fenicsx.fluid_dynamics.steady_ns.lid(x)[source]
fenicsx.fluid_dynamics.steady_ns.lid_velocity_expression(x)[source]
fenicsx.fluid_dynamics.steady_ns.noslip_boundary(x)[source]
class fenicsx.fluid_dynamics.steady_ns.ns_steady_nl(domain: dolfinx.mesh.Mesh, ct: dolfinx.cpp.mesh.MeshTags_int32, ft: dolfinx.cpp.mesh.MeshTags_int32, bound_markers: dict, degree_u: int = 2)[source]

Bases: object

F_fun(snes: petsc4py.PETSc.SNES, x: petsc4py.PETSc.Vec, F_vec: petsc4py.PETSc.Vec) None[source]

Assemble the residual.

J_fun(snes: petsc4py.PETSc.SNES, x: petsc4py.PETSc.Vec, J_mat: petsc4py.PETSc.Mat, P_mat: petsc4py.PETSc.Mat) None[source]

Assemble the jacobian.

assemble(maxIter=20, verbose=False)[source]
create_snes_solution() petsc4py.PETSc.Vec[source]

Create a petsc4py.PETSc.Vec to be passed to petsc4py.PETSc.SNES.solve.

The returned vector will be initialized with the initial guess provided in self._solution.

obj_fun(snes: petsc4py.PETSc.SNES, x: petsc4py.PETSc.Vec) float64[source]

Compute the norm of the residual.

parameters(nu: float)[source]
set_bc(boundary_type: dict, boundary_value: dict)[source]
set_cavity_bc()[source]
solve()[source]
update_solution(x: petsc4py.PETSc.Vec) None[source]

Update self._solution with data in x.

fenicsx.fluid_dynamics.transient_ns module

class fenicsx.fluid_dynamics.transient_ns.drag_lift(domain: dolfinx.mesh.Mesh, ft: dolfinx.cpp.mesh.MeshTags_int32, physical_param: dict, obstacle_mark: int, points=[[0.15, 0.2, 0], [0.25, 0.2, 0]])[source]

Bases: object

compute(t: float, dt: float, u_new: dolfinx.fem.Function, p_new: dolfinx.fem.Function)[source]
class fenicsx.fluid_dynamics.transient_ns.pressure_projection(domain: dolfinx.mesh.Mesh, ct: dolfinx.cpp.mesh.MeshTags_int32, ft: dolfinx.cpp.mesh.MeshTags_int32, physical_param: dict, bound_markers: dict, time_adv='EI')[source]

Bases: object

advance(u_tilde: dolfinx.fem.Function)[source]
assembleForm(direct=False)[source]
class fenicsx.fluid_dynamics.transient_ns.tentative_velocity(domain: dolfinx.mesh.Mesh, ct: dolfinx.cpp.mesh.MeshTags_int32, ft: dolfinx.cpp.mesh.MeshTags_int32, inlet, physical_param: dict, bound_markers: dict, time_adv='EI')[source]

Bases: object

advance(t)[source]
assembleForm(direct=False)[source]
class fenicsx.fluid_dynamics.transient_ns.update_velocity(domain: dolfinx.mesh.Mesh, ct: dolfinx.cpp.mesh.MeshTags_int32, ft: dolfinx.cpp.mesh.MeshTags_int32, physical_param: dict, time_adv='EI')[source]

Bases: object

advance(u_tilde: dolfinx.fem.Function, phi)[source]
assembleForm(direct=False)[source]

Module contents

models/fenicsx/fluid_dynamics.

OFELIA: FEniCSx models for Fluid Dynamics.