[Getdp] Re: getdp: conductivity, el. quasistatical approx.

Christophe Geuzaine Christophe.Geuzaine at ulg.ac.be
Thu Jul 26 19:38:50 CEST 2001


Samuel Kvasnica wrote:
> 
> 
> Hi Christophe,
> 
> I found the getdp  very useful a year ago when I dealt with some
> simple magnetostatic problems. Now I'd like
> to apply getdp again for some stationary fields and
> electro-quasistatics but I'm having quite a lot of troubles,
> especially with writing the Formulations.
> I've noticed there are some enhancements in the new manual, however
> for me it looks rather like a reference guide with many dark
> areas. So I'm now bothering you with this list of questions:
> 
> 1. First I wanted just to enhance your electrostatics example to
> include conductors with stationary currents. It is the same problem
> formulation just with sigma instead of epsilon, so I've written
> following formulation:
> 
> Formulation {
>   { Name Electrostatics_v ; Type FemEquation ;
>     Quantity {
>       { Name v ; Type Local ; NameOfSpace Hgrad_v_Ele ; }
>     }
>     Equation {
>       Galerkin { [ epsr[] * Dof{d v} , {d v} ] ;
>                  In DomainCC_Ele ;
>                  Jacobian Vol ; Integration GradGrad ; }
>      Galerkin { [ sigma[] * Dof{d v} , {d v} ] ;
>                  In DomainC_Ele ;
>                  Jacobian Vol ; Integration GradGrad ; }
>     }
>   }
> }
> 
> Well, resulting potential looks ok, but if I try to compute the
> current
> 
>       { Name j ; Value { Local { [ sigma[] * {d v} ] ;       In
> Domain_Ele ; Jacobian Vol; } } }
> 
> which should be constant in a branch with fixed potential at both
> ends. I'm getting very strange results. What's wrong ?

You cannot combine the electrostatic model and the electrokinetic model
the way you did: there are two different kinds of hypotheses involved
(predominant displacement or conduction currents) and you miss a time
derivative in the first term. For electrokinetics, you should solve

     Equation {
      Galerkin { [ sigma[] * Dof{d v} , {d v} ] ;
                  In DomainC_Ele ;
                  Jacobian Vol ; Integration GradGrad ; }
     }

If displacement and conduction currents are of the same order of
magnitude, you end up with the so-called electrodynamic model:

     Equation {
       Galerkin { DtDof [ epsr[] * Dof{d v} , {d v} ] ;
                  In DomainCC_Ele ;
                  Jacobian Vol ; Integration GradGrad ; }
      Galerkin { [ sigma[] * Dof{d v} , {d v} ] ;
                  In DomainC_Ele ;
                  Jacobian Vol ; Integration GradGrad ; }
     }


> 
> How can I enhance this formulation further for harmonic quasistationary
> 
> solution (without eddy currents) ? Do I have to solve it in time domain or
> 
> it is possible to work just with complex amplitudes with equations like
> 
> div eps*e = q, div((i*omega*eps+1/sigma)e+j_e) = 0

Yes, simply define the above electrodynamic equations, and specify
'Frequency omega/(2*Pi)' in the 'System' field of the resolution (cf. 
http://www.geuz.org/getdp/doc/texinfo/getdp_7.html#SEC75). That's it:
the time derivative in the equations will be automatically transformed
into its appropriate harmonic representation.

> 
> 2. How could I define and use a tensor conductivity sigma(i,j)

Use the Tensor[], TensorDiag[] or TensorSym[] functions.

> 
> 3. How to impose a boundary condition on a component of field, e.g. on E_x

Solving for the scalar potential, you can either specify the potential
(i.e. the tangential value of E on the boundary) as a Dirichlet
constraint (defined in the 'Constraint' field), or its normal derivative
(through the normal component of j+\partial_t d) as a Neumann term in
your formulation.

> 
> 4. Is there any more detailed or graphical description of basis functions ?
> 
> So far I know just I have to use BF_Node for scalar field and BF_Edge for curl field,
> 
> but why e.g. is in one example BF_RegionZ used for gradient of electric scalar potential ?

BF_RegionZ is simply equal to the vector (0,0,1). You may simply solve
a projection problem on a single element in GetDP, and check the result
graphically if you want... You may also have a look at the following
reference for a more detailed analysis of classical low order basis
functions:

@book{bossavit-computational-98,
  author =	 "A. Bossavit",
  title =	 "Computational Electromagnetism. {V}ariational
                  Formulations, Edge Elements, Complementarity",
  publisher =	 "Academic Press",
  year =	 1998
}

> 
> 5. if AliasOf is just another name for a coefficient in definition of Global, what is the meaning of
> 
> AssociatedWith and where is defined how this global quantity will be calculated ?

AssociatedWith defines the global quantity which is weakly defined (by
integration) in the formulation. Its definition is made in the
GlobalTerm of the formulation.

> 
> 6. What is exactly the system hidden behind the syntax of Galerkin formulation?
> 
> I understand somewhat it is a scalar product of an expression with a test function
> 
>  which should be minimized but how do I come
> 
> to [nu*Dof{d a}, {d a}] from equation nu * rot b = 0, which I want to solve ? I see one curl
> 
> in Dof{d a} giving me the b from a but where is the second curl hidden ? How do I know if I have
> 
> to use {d a} or just {a} for a test function ? What stands the paramater 'Integration' for ? Sometimes it
> 
> is CurlCurl, sometimes GradGrad, anyway in definition it seems to be the same.

The concept hidden behind the definition of the Galerkin term is the one
of weak formulation. You can have a look on a rough example of how to
define a weak formulation from Maxwell's equations in the static case at
http://www.geuz.org/getdp/doc/slides/getdp-18.html. But you should
really consider reading any finite element introductory course. The book
from bossavit I mentioned above is definitely a good starting point. The
'Integration' permits to specify the integration method to use.
'GradGrad' is simply a name to refer to one of these methods (which
incidentally is the same as the 'CurlCurl' method)...

Christophe

PS : could you send your futures messages to mailto:getdp at geuz.org? This
way other people may benefit from our discussions...

-- 
Christophe Geuzaine

Tel: 32 (0) 4 366 37 10    http://geuz.org
Fax: 32 (0) 4 366 29 10    mailto:Christophe.Geuzaine at ulg.ac.be