Dear Elmer Community,
I am wondering if there is a way to change some property of the material during a Transient run. The problem arises in elasticity, for example, when Density or Youngs modulus are functions of stress: rho=rho(sigma) and E=E(sigma).
Details:
_____________________________________________
1) In the SIF file, I use a second solver to call an F90 subroutine:
Solver 2
Equation = "Do My calculation"
Procedure = "myStuff" "DoStuff"
End
2) In the F90 solver, the material properties of individual elements are accessed individually, where modifications depending on local stress are possible:
.... "loop on elements "
Material => GetMaterial(Element)
Rho => GetReal(Material,'Density') !!!!! Rho is a vector of pointers
modRho(1:nodes) = Rho !!!!! modRho is a vector of real numbers
YoungsModulus => GetReal(Material,'Youngs Modulus') !!!!! YoungsModulus is a vector of pointers
modYoungsModulus(1:nodes) = YoungsModulus !!!!! modYoungsModulus is a vector of real numbers
...
" read stress and change modRho and modYoungsModulus here "
...
" update properties of Element "
????
____________________________________________
Here I have tried expressions such as
Material%FValues(1,1,:) = modRho(1)
But, see that this pointer keeps data of the previous element in the loop.
Any help or guidance is appreciated.
Best,
T_bloom
Runtime change of local material properties
Re: Runtime change of local material properties
Hi,
I can't say right away how the inner workings are on FORTAN level, but since on sif file level, the material properties can be made dependent on almost anything, including time, the answer to your first question is: yes, the material properties can be changed during a transient run.
HTH,
Matthias
I can't say right away how the inner workings are on FORTAN level, but since on sif file level, the material properties can be made dependent on almost anything, including time, the answer to your first question is: yes, the material properties can be changed during a transient run.
HTH,
Matthias