📄 multiadaptivejacobian.h
字号:
// Copyright (C) 2005-2006 Anders Logg.// Licensed under the GNU LGPL Version 2.1.//// First added: 2005-01-27// Last changed: 2006-08-08#ifndef __MULTI_ADAPTIVE_JACOBIAN_H#define __MULTI_ADAPTIVE_JACOBIAN_H#include "TimeSlabJacobian.h"namespace dolfin{ class MultiAdaptiveNewtonSolver; class MultiAdaptiveTimeSlab; /// This class represents the Jacobian matrix of the system of /// equations defined on a multi-adaptive time slab. class MultiAdaptiveJacobian : public TimeSlabJacobian { public: /// Constructor MultiAdaptiveJacobian(MultiAdaptiveNewtonSolver& newton, MultiAdaptiveTimeSlab& timeslab); /// Destructor ~MultiAdaptiveJacobian(); /// Return number of rows (dim = 0) or columns (dim = 1) uint size(uint dim) const; /// Compute product y = Ax void mult(const uBlasVector& x, uBlasVector& y) const; /// (Re-)initialize computation of Jacobian void init(); /// Friends friend class MultiAdaptivePreconditioner; private: // Compute product for mcG(q) void cGmult(const uBlasVector& x, uBlasVector& y) const; // Compute product for mdG(q) void dGmult(const uBlasVector& x, uBlasVector& y) const; // The Newton solver MultiAdaptiveNewtonSolver& newton; // The time slab MultiAdaptiveTimeSlab& ts; // Values of the Jacobian df/du of the right-hand side real* Jvalues; // Indices for first element of each row for the Jacobian df/du uint* Jindices; // Lookup table for dependencies to components with smaller time steps real* Jlookup; };}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -