Runtime change of local material properties

General discussion about Elmer
Post Reply
T_bloom
Posts: 2
Joined: 21 Apr 2014, 16:09
Antispam: Yes

Runtime change of local material properties

Post by T_bloom »

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
mzenker
Posts: 1999
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: Runtime change of local material properties

Post by mzenker »

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
Post Reply