NonlinearVariationalProblem.h

Note

The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.

class NonlinearVariationalProblem

This class represents a nonlinear variational problem:

Find u in V such that

F(u; v) = 0 for all v in V^,

where V is the trial space and V^ is the test space.

NonlinearVariationalProblem(const Form &F, Function &u)

Create nonlinear variational problem without boundary conditions. The Jacobian form is not specified which requires the use of a nonlinear solver that does not rely on the Jacobian.

NonlinearVariationalProblem(const Form &F, Function &u, const Form &J)

Create nonlinear variational problem without boundary conditions. The Jacobian form is specified which allows the use of a nonlinear solver that relies on the Jacobian (using Newton’s method).

NonlinearVariationalProblem(const Form &F, Function &u, const DirichletBC &bc)

Create nonlinear variational problem with a single boundary condition. The Jacobian form is not specified which requires the use of a nonlinear solver that does not rely on the Jacobian.

NonlinearVariationalProblem(const Form &F, Function &u, const DirichletBC &bc, const Form &J)

Create nonlinear variational problem with a single boundary condition. The Jacobian form is specified which allows the use of a nonlinear solver that relies on the Jacobian (using Newton’s method).

NonlinearVariationalProblem(const Form &F, Function &u, std::vector<const DirichletBC *> bcs)

Create nonlinear variational problem with a list of boundary conditions. The Jacobian form is not specified which requires the use of a nonlinear solver that does not rely on the Jacobian.

NonlinearVariationalProblem(const Form &F, Function &u, std::vector<const DirichletBC *> bcs, const Form &J)

Create nonlinear variational problem with a list of boundary conditions. The Jacobian form is specified which allows the use of a nonlinear solver that relies on the Jacobian (using Newton’s method).

NonlinearVariationalProblem(std::shared_ptr<const Form> F, std::shared_ptr<Function> u, std::vector<std::shared_ptr<const DirichletBC>> bcs)

Create nonlinear variational problem, shared pointer version. The Jacobian form is not specified which requires the use of a nonlinear solver that does not rely on the Jacobian.

NonlinearVariationalProblem(std::shared_ptr<const Form> F, std::shared_ptr<Function> u, std::vector<std::shared_ptr<const DirichletBC>> bcs, std::shared_ptr<const Form> J)

Create nonlinear variational problem, shared pointer version. The Jacobian form is specified which allows the use of a nonlinear solver that relies on the Jacobian (using Newton’s method).

void set_bounds(std::shared_ptr<const GenericVector> lb, std::shared_ptr<const GenericVector> ub)

Set the bounds for bound constrained solver

void set_bounds(const GenericVector &lb, const GenericVector &ub)

Set the bounds for bound constrained solver

void set_bounds(std::shared_ptr<const Function> lb_func, std::shared_ptr<const Function> ub_func)

Set the bounds for bound constrained solver

void set_bounds(const Function &lb_func, const Function &ub_func)

Set the bounds for bound constrained solver

std::shared_ptr<const Form> residual_form() const

Return residual form

std::shared_ptr<const Form> jacobian_form() const

Return Jacobian form

std::shared_ptr<Function> solution()

Return solution variable

std::shared_ptr<const Function> solution() const

Return solution variable (const version)

std::vector<std::shared_ptr<const DirichletBC>> bcs() const

Return boundary conditions

std::shared_ptr<const FunctionSpace> trial_space() const

Return trial space

std::shared_ptr<const FunctionSpace> test_space() const

Return test space

std::shared_ptr<const GenericVector> lower_bound() const

Return lower bound

std::shared_ptr<const GenericVector> upper_bound() const

Return upper bound

bool has_jacobian() const

Check whether Jacobian has been defined

bool has_lower_bound() const

Check whether lower bound has been defined

bool has_upper_bound() const

Check whether upper bound have has defined