# [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 ;
>      Galerkin { [ sigma[] * Dof{d v} , {d v} ] ;
>                  In DomainC_Ele ;
>     }
>   }
> }
>
> 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 ;
}

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 ;
Galerkin { [ sigma[] * Dof{d v} , {d v} ] ;
In DomainC_Ele ;
}

>
> 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

>
> 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",
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