Riku,

> I have a hyperelastic code similar to Step-44. I am able to compute the 
> Cauchy stress \sigma at the quadrature points. Based on this, how do I 
> further compute the divergence (w.r.t. current configuration) of Cauchy 
> stress as a vector?
> 
> The following is my thought:
> 1. Define the stress field associated to the nodes using either DG or 
> FE_Q. Compute the stress at quadrature points and then extropolate to 
> the nodes. Depending on how the stress field is represented, cell 
> averaging may or may not be needed, which is essentially the same as the 
> task of "outputing stress" that has been discussed in the mailing list.
> 2. Given a stress field, FEValues::get_function_gradients can be used to 
> compute the stress gradient from which the divergence can be obtained.

Yes, you can do this. In fact, you can even do
   fe_values[stress_extractor].get_function_divergences()
if I call correctly.

But you need to be careful with the interpretation. If, for example, you 
have piecewise linear displacement fields (and let's assume for 
simplicity that you worked on triangles), then the stress is a piecewise 
constant field and its divergence at every quadrature point in the 
interior of a cell is zero. On the other hand, at cell interfaces, the 
divergence of a piecewise constant stress field would be undefined. In 
other words, computing the divergence of the stress at individual 
quadrature points may not be telling you very much about the quantity 
you really want to know.

What the proper solution to this conundrum is depends on what you want 
to do with the computed divergences of the stress tensor.


> My questions are,
> a. is the gradient computed from get_function_gradients w.r.t. reference 
> configuration or current configuration? In case of large deformation, do 
> I need to multiply the computed gradient with a F^{-1}?

It is computed with regards to the variables used to describe the 
coordinates of the vertices of the mesh. If you want these interpreted 
differently, then you need to appropriately transform things.


> b. currently I define every component in the nodal stress as a scalar 
> field, which is cumbersome. I've only seen scalar field and vector field 
> in the tutorials, but is it possible to have a tensor-valued field?

Yes. You can have tensor-valued fields (via the FEValuesExtractors 
classes) and in the latest version of deal.II, you can even output 
tensors to VTK/VTU format.

Best
  W.


-- 
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@colostate.edu
                            www: http://www.math.colostate.edu/~bangerth/

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to