getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] eigenstrain


From: Yves Renard
Subject: Re: [Getfem-users] eigenstrain
Date: Tue, 09 Oct 2012 17:36:38 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120912 Thunderbird/15.0.1



Dear Fabien,

I see. However, the incompressibility brick add teh pressure has an
additional variable, and the term
\int p div(u) to the system.

Thus, the problem is that you will obtain an augmented linear system. Of
course you can use this augmented linear system to obtain wht you want.
You can also set a particular value to the pressure in the brick, and
ask for the resolution only with respect to the displacement.

Yves.


Le 08/10/2012 11:37, fabien amiot a écrit :
>
> Dear Yves,
>
> By loading my system through an eigenstrain, I mean replacing the
> linear elastic constitutive law by
>
> \epsilon = (1+\nu)/E \sigma - (\nu / E) Tr(\sigma) Id + \epsilon_f Id
>
> where \epsilon_f is the (scalar) eigenstrain (a particular case would
> be the thermal expansion of the material : \epsilon_f = \Delta T *
> CTE). Inverting the above constitutive law yields
>
> \sigma = \lambda Tr(\epsilon) + 2 \mu \epsilon +p Id
>
> where the value for the additional pressure p (as a function of
> \epsilon_f) depends on the chosen modeling (3d / 2d with plane stress
> / 2d with plane strain). My plan was thus to set the value of the
> unknown added by the linear incompressibility brick in order to
> introduce the desired loading.
>
> I hope this makes things clear.
> Best regards,
> Fabien
>
> On 06/10/2012 17:19, Yves Renard wrote:
>> Dear Fabien Amiot,
>>
>> This is compeltely normal that you have a vanishing rhs since there
>> is no load on your model (volumic or surface forces). The
>> incompressibility brick introduces a new unknown (the pressure) and
>> term to ensure that the displacement is (linearly) incompressible. In
>> fact, I did not understand well what you  intend to do.
>>
>>
>> Yves.
>>
>>
>> ----- Original Message -----
>> From: "fabien amiot"<address@hidden>
>> To: address@hidden
>> Sent: Thursday, October 4, 2012 4:02:20 PM
>> Subject: [Getfem-users] eigenstrain
>>
>> Dear all,
>>
>> I'm rather new to Getfem (Matlab-interface), and I'm trying to simulate
>> a (linear elastic) bimorph :
>>
>>
>> %% DATA
>> % cantilever length
>> L=1;
>> % cantilever thickness
>> H=0.1;
>> % thickness ratio
>> r=0.1;
>> % Lame parameters
>> Young=60E9; nu=0.3;
>> lambda=Young.*nu./((1+nu).*(1-2.*nu));
>> mu=0.5.*Young./(1+nu);
>> lambda_layer=lambda;
>> mu_layer=mu;
>> %% Build the mesh
>> % cantilever
>> canti_m=gf_mesh('regular simplices',0:(L./10):L, (-H):(H./4):0);
>> % layer
>> layer_m=gf_mesh('regular simplices',0:(L./10):L, 0:(r.*H./4):(r.*H));
>> % retrieve the CVFIDs for the 2 regions
>> canti_cvfids = gf_mesh_get(canti_m, 'region',gf_mesh_get(canti_m,
>> 'regions'));
>> layer_cvfids = gf_mesh_get(layer_m, 'region',gf_mesh_get(layer_m,
>> 'regions'));
>> % merge the two meshes
>> gf_mesh_set(canti_m, 'merge', layer_m);
>> % set the region numbers
>> gf_mesh_set(canti_m, 'region', 1, canti_cvfids);
>> gf_mesh_set(canti_m, 'region', 2, layer_cvfids);
>> % integration method
>> mim=gf_mesh_im(canti_m);
>> gf_mesh_im_set(mim, 'integ',gf_integ('IM_TRIANGLE(6)'));
>> % fem object for displacement
>> mfu=gf_mesh_fem(canti_m,2);
>> gf_mesh_fem_set(mfu, 'fem',gf_fem('FEM_PK(2,2)'));
>> % fem object for pressure (used to impose the free strain as a
>> incompressibility condition)
>> mfp=gf_mesh_fem(canti_m);
>> gf_mesh_fem_set(mfp, 'fem',gf_fem('FEM_PK(2,1)'));
>> %% build elastic model
>> md=gf_model('real');
>> gf_model_set(md, 'add fem variable', 'u', mfu);
>> gf_model_set(md, 'add initialized data', 'lambda', [lambda]);
>> gf_model_set(md, 'add initialized data', 'mu', [mu]);
>> gf_model_set(md, 'add initialized data', 'lambda_layer',
>> [lambda_layer]);
>> gf_model_set(md, 'add initialized data', 'mu_layer', [mu_layer]);
>> % set the elastic parameters for the cantilever
>> gf_model_set(md, 'add isotropic linearized elasticity brick', ...
>>                mim, 'u', 'lambda', 'mu',1);
>> % set the elastic parameters for the layer
>> gf_model_set(md, 'add isotropic linearized elasticity brick', ...
>>                mim, 'u', 'lambda_layer', 'mu_layer',2);
>> % set the boundary condition (clamping)
>> P=gf_mesh_get(canti_m,'pts');
>> fleft =gf_mesh_get(canti_m,'faces from pid',find(abs(P(1,:))<1e-6));
>> gf_mesh_set(canti_m,'boundary',3,fleft);
>> gf_model_set(md, 'add Dirichlet condition with multipliers', ...
>>                mim, 'u', mfu, 3);
>>
>>
>>
>> The idea is to describe the eigenstrain by exploiting the linear
>> incompressibility brick :
>>
>>
>> % set the loading
>> gf_model_set(md, 'add fem variable', 'p', mfp);
>> gf_model_set(md, 'add initialized data', 'coef', 1.);
>> gf_model_set(md, 'add linear incompressibility brick', mim, 'u', 'p', 2,
>> 'coef');
>>
>>
>> But this produces a zero rhs (as seen from gf_model_get(md,'rhs') ). I
>> guess I miss either an important thing or an efficient alternative way
>> to achieve this...
>>
>> Best regards,
>> Fabien
>>
>>    
>
>


-- 

  Yves Renard (address@hidden)       tel : (33) 04.72.43.87.08
  Pole de Mathematiques, INSA-Lyon             fax : (33) 04.72.43.85.29
  20, rue Albert Einstein
  69621 Villeurbanne Cedex, FRANCE
  http://math.univ-lyon1.fr/~renard

---------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]