# 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.size(1)!=3 \\ A.size(2)!=3.

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

here are the most importants operations that you will use in Kratos.

Don't forget to type noalias in the left of the opertions.