Took the chance and cleaned the env file and used #ifdef# statement in the wrappers because in fixed format Fortran some lines of code might be interpretated as comments.
This should not happen, but it happens for Abaqus exp
introduced more suitable check for convergence of the first bin. Improvements in bringing seeds with a size outside the range of the target closer are no longer invisible
1. calculate the L2 norm of the residual of all the stress points
2. store the relative errors of the L2 norm
3. if the standard deviation of the relative errors of last five fittings is less than 0.05, that it is considered that the relative errors is stabilized, so the fitting is finished.
1. rename BBC2003 as BBC2000;
2. add the real BBC2003 yield criterion, BBC2003 works;
3. now the BBC family yield criteria include: BBC2000, BBC2003, BBC2005
2.the first thorough check of the script;
3.add the option of exponents for all non-quadratic yield criteria, now the user 1)can specify the exponent, for example, m=6 for Barlat 1991, or 2)see the exponent as an undetermined parameters;
4.add the pre-specified bounds for all criteria;
5.add the user defined equivalent stress for some anisotropic yield criteria
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