[Fwd: [Getdp] Help on problem formulation - constraits]

Patrick Dular Patrick.Dular at ulg.ac.be
Thu May 2 10:05:06 CEST 2002


Dear Ivan,

For Dirichlet constraints on your scalar potential, you have to add a Constraint field before the FunctionSpace field, as well as a call to this Constraint field in this FunctionSpace field. The homogeneous Neumann constraint is implicit in the formulation (no surface term).

This would give:

Constraint {
  { Name MagneticScalarPotential ;
    Case {
      { Region SurfaceA ; Value 0. ; } // write the value you want to fix...
      { Region SurfaceC ; Value 1. ; }
// ... and the other surfaces
    }
  }
}

(to be written just after the Function field for clarity)

... and ...

FunctionSpace {
  { Name Hgrad_phi; Type Form0;
    BasisFunction {
      { Name sn; NameOfCoef phin; Function BF_Node;
        Support Domain; Entity NodesOf[ All ]; }
      // uncomment the following for 2nd order interpolation:
      //{ Name sn2; NameOfCoef phin2; Function BF_Node_2E;
      //  Support Domain; Entity EdgesOf[ All ]; }
    }
    Constraint {
      { NameOfCoef phin ;
        EntityType NodesOf ; NameOfConstraint MagneticScalarPotential ; }
    }
  }
}

Is this what you need for your constraints?

Patrick

-------- Original Message --------
Subject: [Getdp] Help on problem formulation - constraits
Date: Sun, 28 Apr 2002 22:45:08 -0300
From: Ivan Vicente Janvrot Miranda <janvrot at infolink.com.br>
To: getdp at geuz.org

> Dear All
>
> I' using this excellent program in a 3D study a 1/4" thick steel plate
> with a magnet at each side and  a hole in the middle. The problem
> addresses the case of a very wide plate with wide magnets and a small
> hole, which is the region of interest.
>
> I defined the geometry with gmsh and generated the mesh for one quadrant
> of the problem to exploit symetry. There is an air volume above and
> below the plate. Attached is a .jpg with a schematic.
>
> I'm using the suggestion found in the FAQ (for gmsh t5.geo) given
> below,  but I'm not able to define the constraints to apply to Surfaces
> A to D and Upper and Lower air bound surfaces.
>
> I' would be gratefull for any help.
> Thanks in advance.
>
> Janvrot IVM
> janvrot at infolink.com.br
>
> --------------------------------------------------------------------------------------------------
>
> /*
> Magnetostatic problem (scalar magnetic potential), based on t5.pro from
> FAQ
> */
>
> Group {
>   Steel   = Region[ 1 ];
>   Magnet  = Region[ 2 ];
>   Air     = Region[ 3 ];
>   Domain  = Region[ {Magnet, Steel, Air} ];
>   // SurfaceA = ...; // uniform until infinity
>   // SurfaceB = ...; // out interest
>   // SurfaceC = ...; // simetry plane
>   // SurfaceD = ...; // simetry plane
>   // UpperAirBoundSurface = ...;
>   // LowerAirBoundSurface = ...;
> }
>
> Function {
>   mu0 = 4.e-7 * Pi ;
>   murSteel = 1000;
>   murMagnet = 1;
>   mu[Steel]   = murSteel * mu0;
>   mu[Magnet]  = murMagnet * mu0;
>   mu[Air]     = mu0;
>   hc[Magnet]  = Vector[920000., 0., 0.];
> }
>
> Jacobian {
>   { Name MyJac;
>     Case {
>       { Region All; Jacobian Vol; }
>     }
>   }
> }
>
> Integration {
>   { Name MyInt;
>     Case {
>       { Type Gauss;
>         Case {
>    { GeoElement Tetrahedron; NumberOfPoints 5; }
>  }
>       }
>     }
>   }
> }
>
> FunctionSpace {
>   { Name Hgrad_phi; Type Form0;
>     BasisFunction {
>       { Name sn; NameOfCoef phin; Function BF_Node;
>         Support Domain; Entity NodesOf[ All ]; }
>       // uncomment the following for 2nd order interpolation:
>       //{ Name sn2; NameOfCoef phin2; Function BF_Node_2E;
>       //  Support Domain; Entity EdgesOf[ All ]; }
>     }
>   }
> }
>
> Formulation {
>   { Name MagSta_phi; Type FemEquation;
>     Quantity {
>       { Name phi; Type Local; NameOfSpace Hgrad_phi; }
>     }
>     Equation {
>       Galerkin { [ - mu[] * Dof{d phi} , {d phi} ];
>                  In Domain; Jacobian MyJac; Integration MyInt; }
>       Galerkin { [ - mu[] * hc[] , {d phi} ];
>                  In Magnet; Jacobian MyJac; Integration MyInt; }
>     }
>   }
> }
>
> Resolution {
>   { Name MagSta_phi;
>     System {
>       { Name A; NameOfFormulation MagSta_phi; }
>     }
>     Operation {
>       Generate[A]; Solve[A]; SaveSolution[A];
>     }
>   }
> }
>
> PostProcessing {
>   { Name MagSta_phi; NameOfFormulation MagSta_phi;
>     Quantity {
>       { Name phi; Value { Local { [ {phi} ]; In Domain; Jacobian MyJac;}
> } }
>       { Name b;   Value
>            {
>                Local { [ - mu[] * {d phi} ]; In Domain; Jacobian MyJac;
> }
>                Local { [ - mu[] * hc[] ]   ; In Magnet; Jacobian MyJac;
> }
>            }
>       }
>     }
>   }
> }
>
> PostOperation {
>   { Name phi; NameOfPostProcessing MagSta_phi;
>     Operation {
>       Print[ phi, OnElementsOf Domain, File "phi.pos"];
>       Print[ b, OnElementsOf Domain, File "b.pos"];
>       Print[ b, OnCut {{0,0,0.004}{1,0,0.004}{1,1,0.004}}, File "bc.pos"
> ];
>       // Print[ b,  OnCut {{0,0,-0.002}{1,0,-0.002}{1,1,-0.002}}, File
> "bc.pos" ];
>     }
>   }
> }
>
>                                                   -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>  [Image]

--
Patrick Dular, Dr. Ir., Chercheur qualifié F.N.R.S. (Research associate)
Département d'Electricité, Electronique et Informatique
Unité d'Electricité Appliquée
Université de Liège - Institut Montefiore - Bât. B28 - Parking 32
B-4000 Liège - Belgique - Tel. +32-4 3663710 - Fax +32-4 3662910
E-mail: Patrick.Dular at ulg.ac.be