Some aspects of programation
Begin to understand a code is sometimes a headache. However, we will settle for only understand the mathematical key aspects.
In Kratos many mathematical operations and operations with variable use the library UBLAS.
for exemple, if i want to this operation or another operation:
A[a,b]=B[c][d].
X+=Y.
where A an B are matrices and a, b, c d are integers.
noalias(A) = B.
noalias(X) += Y.
noalias(Y) = prod(A,x).
noalias(Y) = prod(trans(A),x).
prod: Matrix Products trans:Transposed a matrix
Other operation that we can do is to size a matrix. The best way is for exemple:
if( A.size1()!=3 || A.size2()!=3)
A.resize( 3,3,false)
where A can be a matrix or a vector.
We can initialize with a null matrix or vector
for exemple
noalias(A)=ZeroVector(3)
noalias(A)=ZeroMatrix(4,4)
There are too many oparations that we can do. If you want to learn more visit the page
http://www.boost.org/doc/libs/1_35_0/libs/numeric/ublas/doc/index.htm
here are the most importants operations that you will use in Kratos.
Don't forget to type noalias in the left of the opertions.