Squashed 'third_party/boostorg/odeint/' content from commit 6ff2719
Change-Id: If4892e29c1a5e6cf3a7aa51486a2725c251b0c7d
git-subtree-dir: third_party/boostorg/odeint
git-subtree-split: 6ff2719b6907b86596c3d43e88c1bcfdf29df560
diff --git a/doc/concepts/implicit_system.qbk b/doc/concepts/implicit_system.qbk
new file mode 100644
index 0000000..e889023
--- /dev/null
+++ b/doc/concepts/implicit_system.qbk
@@ -0,0 +1,43 @@
+[/============================================================================
+ Boost.odeint
+
+ Copyright 2011 Mario Mulansky
+ Copyright 2011-2012 Karsten Ahnert
+
+ Use, modification and distribution is subject to the Boost Software License,
+ Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================/]
+
+
+
+[section Implicit System]
+
+[heading Description]
+
+This concept describes how to define a ODE that can be solved by an implicit routine.
+Implicit routines need not only the function /f(x,t)/ but also the Jacobian /df/dx = A(x,t)/.
+/A/ is a matrix and implicit routines need to solve the linear problem /Ax = b/.
+In odeint this is implemented with use of __ublas, therefore, the ['state_type] implicit routines is ['ublas::vector] and the matrix is defined as ['ublas::matrix].
+
+[heading Notation]
+
+[variablelist
+ [[`System`] [A type that is a model of `Implicit System`]]
+ [[`Time`] [A type representing the time of the ODE]]
+ [[`sys`] [An object of type `System`]]
+ [[`x`] [Object of type ublas::vector]]
+ [[`dxdt`] [Object of type ublas::vector]]
+ [[`jacobi`] [Object of type ublas::matrix]]
+ [[`t`] [Object of type `Time`]]
+]
+
+[heading Valid Expressions]
+
+[table
+ [[Name] [Expression] [Type] [Semantics]]
+ [[Calculate ['dx/dt := f(x,t)]] [`sys.first( x , dxdt , t )`] [`void`] [Calculates `f(x,t)`, the result is stored into dxdt] ]
+ [[Calculate ['A := df/dx (x,t)]] [`sys.second( x , jacobi , t )`] [`void`] [Calculates the Jacobian of /f/ at /x/,/t/, the result is stored into `jacobi`] ]
+]
+
+[endsect]
\ No newline at end of file