1#ifndef _RHEOLEF_PROBLEM_MIXED_H
2#define _RHEOLEF_PROBLEM_MIXED_H
172#include "rheolef/problem.h"
177template <
class T,
class M = rheo_default_memory_model>
242template<
class T,
class M>
256template<
class T,
class M>
273template<
class T,
class M>
291template<
class T,
class M>
296 return _s.initialized();
298template<
class T,
class M>
305template<
class T,
class M>
312template<
class T,
class M>
319template<
class T,
class M>
326template<
class T,
class M>
331 if (_init_s_done)
return;
333 if (_mp.uu().dis_nnz() == 0) {
340 if (_c.uu().dis_nnz() == 0) {
345 if (_pmp.initialized()) { _s.set_preconditioner (_pmp.get_solver()); }
346 if ( _pa.initialized()) { _s.set_inner_solver ( _pa.get_solver()); }
348template<
class T,
class M>
358 vec<T,M> f =
lh.u() - _a.ub()*uh.
b() - _b.bu().trans_mult(ph.
b());
360 if (_c.uu().dis_nnz() == 0) {
361 g = kh.
u() - _b.ub()*uh.
b();
363 g = kh.
u() - _b.ub()*uh.
b() + _c.ub()*ph.
b();
field lh(Float epsilon, Float t, const test &v)
see the problem page for the full documentation
const vec< T, M > & b() const
const vec< T, M > & u() const
problem_basic< T, M > _pmp
void set_inner_problem(const problem &pa)
solver_abtb_basic< T, M > _s
solver_basic< T, M >::determinant_type determinant_type
problem_basic< T, M > _pa
solver_basic< T, M >::size_type size_type
void set_preconditionner(const problem &pmp)
const solver_option & option() const
void solve(const field_basic< T, M > &lh, const field_basic< T, M > &kh, field_basic< T, M > &uh, field_basic< T, M > &ph) const
void set_metric(const form &mp)
rep::determinant_type determinant_type
see the solver_option page for the full documentation
see the vec page for the full documentation
problem_mixed_basic< Float > problem_mixed
see the problem_mixed page for the full documentation
This file is part of Rheolef.
std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr >::value &&!is_undeterminated< Result >::value, Result >::type integrate(const geo_basic< T, M > &omega, const Expr &expr, const integrate_option &iopt, Result dummy=Result())
see the integrate page for the full documentation