matmul is ok for openmp, check in the web and run the state integration test.
Example program testing for new state update for rkck dot state:
program test
real, dimension(6,10) :: dotState=reshape(&
[1,1,1,1,1,1,1,1,1,1,&
2,2,2,2,2,2,2,2,2,2,&
3,3,3,3,3,3,3,3,3,3,&
4,4,4,4,4,4,4,4,4,4,&
5,5,5,5,5,5,5,5,5,5,&
6,6,6,6,6,6,6,6,6,6],[6,10])
real, dimension(10) :: residuum
real, dimension(6) :: B=2.5
integer :: i
residuum = B(1)*dotState(1,:)+&
B(2)*dotState(2,:)+&
B(3)*dotState(3,:)+&
B(4)*dotState(4,:)+&
B(5)*dotState(5,:)+&
B(6)*dotState(6,:)
do i =1,10
print*,residuum(i)
enddo
residuum = matmul(transpose(dotState),B)
do i =1,10
print*,residuum(i)
enddo
end program test
- switched Fi and Li from state variables to crystallite variables
- Lp and Li are now work conjugate with the corresponding mandel stresses defined in their respective configuration
- T, Lp and Li need to return tangents wrt Fi arising from the convection of the material frame due to Fi
- Updated analytic jacobian to take into account tangents wrt Fi
- Updated Lp and Li residual jacobians to take into account tangents wrt Fi
Exchanged possibly non thread-safe matmul in RKCK45, simplified RK45 integration step 1--3 vs 4 handling.
(Thanks to Pratheek, Luv, and Chen for their help!)