> 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

Reply via email to