> I have not implemented the complementary mixed formulation where
> stress is one of the unknowns in deal.ii yet. If I were to use deal.ii
> as it is presently I would have set up the FESystem as follows (roughly)
>
> fe(
> FE_Q<deal_II_dimension>(2), 6), // six stress components
> FE_Q<deal_II_dimension>(2), 1)); // scalar plastic
> multiplier
>
> and then used the FEValuesExtractors as follows
>
> // generate stress and plastic mutliplier shape function views
> const FEValuesExtractors::Scalar plastic_mult(6);
> std::vector<FEValuesExtractors::Scalar> stress;
>
> for (unsigned int alpha = 0; alpha < 6; alpha++) {
> stress.push_back(FEValuesExtractors::Scalar(alpha));
> }
Right. And if we had extractors for symmetric tensors you'd just do
const FEValuesExtractors::SymmetricTensor stress(0);
instead of the last few lines, consuming all dim*(dim+1)/2 components of the
finite element that make up this symmetric tensor.
By the way, for symmetric tensors (as for the nonsymmetric ones) you'll have
to define a numbering, i.e. how the 6 components are mapped onto the 9
elements (i,j) of the tensor. In the SymmetricTensor class, the first 3 are
the diagonals, and then the upper right block is covered row by row. I
suggest to use the same numbering in the FE extractors.
As I said, let me know if you need help with anything in particular!
Cheers
W.
-------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii