Varying Young modulus in FEM simulation

I'm working on a project for which I have inherited some FEM code. This implemented FEM calculates, given some force field, displacements on a discretised square using square elements and assumes a homogeneous isotropic and linear material.

I want to do away with the assumption homogeneity. I would like to assume a spacial dependent Young's modulus $$E(x) = r(x) E_0$$, where $$E_0$$ is some fixed quantity and $$r(x)$$ is a scaling quantity which can be different for every element.

I use the $$E_0$$ as the Youngs modulus in creating the element stiffness matrices using the material matrix $$D$$ $$D= \frac{E_0}{1-v^2} \left(\begin{matrix} 1 & v & 0 \\ v & 1 & 0 \\ 0 & 0 & \frac {1}{2}(1-v) \end{matrix}\right).$$ In the assembly of the stiffness matrix I do the following. Suppose we are adding the element matrix $$K_e$$ corresponding to element $$e$$, I then add $$r(e) K_e$$ to the global stiffness matrix. Here $$r(e)$$ is just $$r(x)$$ evaluated on some point of the element $$e$$.

Is this a valid approach for modelling non-homogeneous materials? If not, can someone point me to a source that does explain how to model such materials in detail?

If relevant: I have a mathematics background, but am new in using FEM in structural problems.

• Multiplying $\mathbf{K}_e$ with $r(e)$ is not correct! You need to evaluate $r(x)$ at every quadrature point, say $x_i$, and then compute using $E=r(x_i) E_0$. Sep 22, 2021 at 16:43
• In theory, it is true that one should evaluate the factor $r(x)$ at every quadrature point. But there are good reasons to only use $r(e)$: This is, in essence, a homogenization approach where you replace the true medium by one where the material is constant on every cell. This will limit the convergence order when you use high order elements, but it will also yield a better conditioned matrix and, if done correctly, might actually yield a smaller error when using low-order elements. Sep 22, 2021 at 17:33
• The approach you choose will depend on how smoothly $r(x)$ varies with $x$. For example, think of the extreme cases where $r(x)$ is a random variable or a checkerboard distribution. Sep 23, 2021 at 0:56
• @WolfgangBangerth do you have a source that explains the claim you made? Or is this based on your own experiences? Sep 23, 2021 at 6:54
• Both, but also this paper: math.colostate.edu/~bangerth/publications/2017-boussinesq.pdf (discliamer: it's one of mine). Read through the section on averaging coefficients. Sep 23, 2021 at 15:47