Topic: Some issues with homogenization, strange boundary conditions and more
Hello again. I have some problems with implementations of "strange" models in OOFEM again.
I'd like to note that I don't disagree with the design of OOFEM, I'm just looking to handle these problems in the best way. It is very possible that I have missed something that will greatly help me with these problems.
I have one of the most typical multiscale problems. Applying and solving the problem at the subscale is not an issue, but when it comes to homogenization, everything seems to become increasingly bothersome.
I typically need to use the stiffness matrix on the micro scale from the last iteration, so I'll denote it "K".
First, I need to calculate the homogenized stress. Several ways to do this, the simplest would be to take the nodal forces for the locked degrees of freedom, then multiply by their coordinates and sum it up. I'm not sure how to obtain the reaction forces.
Secondly, I need the macroscopic stiffness matrix. For this I also require the whole stiffness matrix, and split it up into free and prescribed parts. Then I solve the solution for 3 (in 2D) different boundary conditions using parts of the tangent matrix K. (Since we are in the tangent space, the problem is linear, i.e. different from whatever problem is actually solved at the microscale).
The best idea I got so far, is to deactivate the boundary condition and generate the whole matrix again, then mess around a whole lot with equation numbers, trying to split the matrix. Is this the way to go?
A short, I need to calculate something like this (in pseudo-matlab syntax)
K*a = f
Splitting it up as;
[K_bb, K_bi; K_ib, K_ii].[a_b; a_i] = [r_b;0]
where a_b is prescribed values (As I've mentioned in another post, this is the dirichlet B.C i implemented for the subscale)
a_b = C*d (where d is a macroscopic tensor, d = [d_11; d_22; d_12], and C is some matrix)
E = C'*(K_bb - K_bi*K_ii\K_ib)*C
where E is the macroscopic stiffness.
r_b are the reaction forces that I need to calculate the macroscopic stress.
I have also encountered some problems with some boundary conditions. For example, I would like to constrict the velocities in some constrained nodes to fullfill
v_i = d_ij*x_j
where d_11, d_12 (=d_21), d_22 are unknowns as well (macroscopic rate of deformation gradient).
It's quite simple to split the complete system of equations, and add corresponding equations for the new unknowns. The load for these new equations would also be the macroscopic stress tensor.
Other cases could range from unknown loads to unknown velocities.
These issues are not as important.