[Getdp] Functions: symmetric gradients
Ruth V. Sabariego
r.sabariego at ulg.ac.be
Fri Nov 25 10:34:13 CET 2011
Well, it is a bit tricky.
The operators D1/D2 dealing with mechanics where added in relation to the basis functions.
You should use a function space where the derivatives are indicated:
FunctionSpace {
/* Meca_u : Mechanics - Displacement ux, uy formulations */
{ Name H_u_Mec_2D ; Type Vector ;
BasisFunction {
/* ux = ux_n sx_n , for all nodes */
{ Name sxn ; NameOfCoef uxn ; Function BF_NodeX ; dFunction {BF_NodeX_D12, BF_Zero} ;
Support DomainTot ; Entity NodesOf[ All ] ; }
{ Name syn ; NameOfCoef uyn ; Function BF_NodeY ; dFunction {BF_NodeY_D12, BF_Zero} ;
Support DomainTot ; Entity NodesOf[ All ] ; }
}
Constraint {
{ NameOfCoef uxn ; EntityType NodesOf ; NameOfConstraint DeplacementX ; }
{ NameOfCoef uyn ; EntityType NodesOf ; NameOfConstraint DeplacementY ; }
}
}
}
And the formulation would look like:
Formulation {
{ Name Mec_u_2D ; Type FemEquation ;
Quantity {
{ Name u ; Type Local ; NameOfSpace H_u_Mec_2D ; }
}
Equation {
Galerkin { [C_m[] * Dof{D1 u}, {D1 u} ] ;
In Domain_Disp ; Jacobian JVol ; Integration GradGrad ; }
Galerkin { [ -F[] , {u} ] ;
In Domain_Force; Jacobian JSur ; Integration GradGrad; }
}
}
}
with e.g.
/* --------------------------------------------------------------------------*/
Function {
/* Elasticity */
//Mechanical constants E = 100 Gpa, v = 0.33
E[PlateINT] = 100e9 ; nu = 0.33 ;
f[] = E[]/(1-nu^2) ;
C_m[#{PlateINT}] = TensorSym[ f[], nu*f[], 0, f[], 0, (1-nu)/2*f[]] ;
F[#{Lin_Y1}] = Vector[0,-100, 0 ];
//F[#{Point_X1_u}] = Vector[0,-100, 0 ];
}
HTH,
Ruth
--
Dr. Ir. Ruth V. Sabariego
University of Liege, Electrical Engineering & Computer Science,
Applied & Computational Electromagnetics (ACE),
phone: +32-4-3663737 - fax: +32-4-3662910 - http://ace.montefiore.ulg.ac.be/
On 25 Nov 2011, at 10:17, Saurabh Srivastava wrote:
> Dear Ruth,
>
> Thank you for a prompt response, So essentially there is no way to access the components of exterior derivative, for e.g. {d u} [1,1] at any point in the computation?
>
> Since basis functions are split in this case ..can we pass {d ux} or {d uy} as arguments to functions in weak formulation?
>
> Although one can pass mu[{d u}] as an argument to a function mu?
>
> best,
> -saurabh
>
>
>
> On Fri, Nov 25, 2011 at 7:37 AM, Ruth V. Sabariego <r.sabariego at ulg.ac.be> wrote:
> You can't use Dof{eps[{d u}]}, that is not allowed. Sorry!
> That is the reason why we split the displacement in components with a basis function per compoment: BF_NodeX, BF_NodeY and BF_NodeZ.
>
>
> HTH,
> Ruth
>
> --
> Dr. Ir. Ruth V. Sabariego
> University of Liege, Electrical Engineering & Computer Science,
> Applied & Computational Electromagnetics (ACE),
> phone: +32-4-3663737 - fax: +32-4-3662910 - http://ace.montefiore.ulg.ac.be/
>
>
>
> On 25 Nov 2011, at 00:51, Saurabh Srivastava wrote:
>
>> Hello,
>>
>> I am interested in the elasticity example, as I realized a new operator was D1/D2 was hard-coded to obtain symmetric gradient (which are unlike curl, grad, or div) of displacements. I'm attempting to get around this using the following approach ...essentially, I compute the exterior derivative of displacement vector then pass it to a function which converts this 2nd rank tensor into a vectorial (Voigt's) notation,
>>
>> Thus I replace these lines ...
>>
>> Formulation {
>> { Name Mec2D_u ; Type FemEquation ;
>> Quantity {
>> { Name u ; Type Local ; NameOfSpace H_u_Mec2D ; }
>> }
>> Equation {
>> //gu = Tensor[{d u}];
>> Galerkin { [ C_m[] * Dof{D1 u}, {D1 u} ] ;
>> In Domain_Disp ; Jacobian Vol ; Integration GradGrad ; }
>> Galerkin { [ -F[] , {u} ] ;
>> In Domain_Force; Jacobian SurLinVol; Integration GradGrad; }
>> }
>> }
>> }
>>
>> -----------------with these lines------------------------
>> Function {
>> eps[] = Vector[CompXX[$1], CompYY[$1], CompXY[$1] ];
>> }
>>
>> Formulation {
>> { Name Mec2D_uxuy ; Type FemEquation ;
>> Quantity {
>> //{ Name ux; Type Local ; NameOfSpace H_uxuy_Mec2D ; }
>> //{ Name uy; Type Local ; NameOfSpace H_uxuy_Mec2D ; }
>> { Name u ; Type Local ; NameOfSpace H_u_Mec2D ; }
>> }
>> Equation {
>> Galerkin { [ C_m[] * Dof{eps[{d u}]}, {eps[{d u}]} ]; //line 175
>> In Domain_Disp ; Jacobian Vol ; Integration GradGrad ; }
>> Galerkin { [ -F[] , {u} ] ;
>> In Domain_Force; Jacobian SurLinVol; Integration GradGrad; }
>> }
>> }
>>
>> But I get the following error during pre-processing...
>>
>> GetDP : 'C:/Documents and Settings/xx/Desktop/getdp-2.1.1-Win32c/elasticity2d2.pro', line 175 : syntax error ([)
>>
>> Doesn't looks like its any bracketing issue as i fiddled around with that, What am I doing wrong?
>>
>> Any help is appreciated.
>>
>> Thank You,
>> -ss
>>
>>
>>
>>
>> _______________________________________________
>> getdp mailing list
>> getdp at geuz.org
>> http://www.geuz.org/mailman/listinfo/getdp
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/getdp/attachments/20111125/c62e6007/attachment.html>