Mercurial > repos > public > sbplib
annotate +blockmatrix/multiply.m @ 1056:b4fa176b4287 feature/poroelastic
Elastic2dVariable: boundary condition type can now be a string, normal or tangential, as well as component number.
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Fri, 25 Jan 2019 15:15:44 -0800 |
parents | 288138d9586d |
children |
rev | line source |
---|---|
388
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 function C = multiply(A, B) |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 [n_a, m_a] = size(A); |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 [n_b, m_b] = size(B); |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 assert(m_a == n_b, 'Dimensions do not agree.') |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 C = cell(n_a, m_b); |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 for i = 1:n_a |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 for j = 1:m_b |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 C{i,j} = sparse(size(A{i,1},1), size(B{1,j},2)); |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 for k = 1:n_b |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 C{i,j} = C{i,j} + A{i,k}*B{k,j}; |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 end |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 end |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 end |
288138d9586d
Add function to multiply blockmatrices.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 end |