[Getdp] How to properly couple Magnetostatic and Electrostatic problem?
Christophe Trophime
christophe.trophime at grenoble.cnrs.fr
Mon Nov 14 14:20:16 CET 2005
Starting from the Magnetostatics examples I try to compute the magnetic
potential from the resolution of the electrical potential in the
conductors :
{ Name MagSta_a_3D; Type FemEquation;
Quantity {
{ Name a ; Type Local; NameOfSpace Hcurl_a_MagSta_3D; }
{ Name ur ; Type Local ; NameOfSpace Hregion_u_3D ; }
}
Equation {
Galerkin { [ nu[] * Dof{d a} , {d a} ];
In Vol_Mag; Integration GradGrad; Jacobian Vol; }
Galerkin { [ -sigma[] * {d ur} , {a} ];
In Vol_S_Mag; Integration GradGrad; Jacobian Vol; }
}
}
where ur is defined as :
FunctionSpace {
{ Name Hregion_u_3D ; Type Form0 ;
BasisFunction {
{ Name sr ; NameOfCoef ur ; Function BF_Node ;
Support Domain_Elec ; Entity NodesOf[ All, Not
Domain_Electrode ] ; }
{ Name sg ;NameOfCoef ug ; Function BF_GroupOfNodes ;
Support Domain_Elec ; Entity GroupsOfNodesOf
[ Domain_Electrode ] ; }
}
GlobalQuantity {
{ Name V ; Type AliasOf ; NameOfCoef ug ; }
{ Name I ; Type AssociatedWith ; NameOfCoef ug ; }
}
Constraint {
{ NameOfCoef ur ;
EntityType NodesOf ; NameOfConstraint FixedVoltage ; }
{ NameOfCoef V ;
EntityType GroupsOfNodesOf ; NameOfConstraint
FixedGlobalVoltage ; }
{ NameOfCoef I ;
EntityType GroupsOfNodesOf ; NameOfConstraint
FixedGlobalCurrent ; }
}
}
}
and
{ Name Electric_Conduction ; Type FemEquation ;
Quantity {
{ Name ur ; Type Local ; NameOfSpace Hregion_u_3D ; }
{ Name I ; Type Global ; NameOfSpace Hregion_u_3D [I] ; }
{ Name V ; Type Global ; NameOfSpace Hregion_u_3D [V] ; }
}
Equation {
Galerkin { [ sigma[] * Dof{d ur} , {d ur} ] ; In Domain_Elec ;
Jacobian Vol ; Integration GradGrad ; }
GlobalTerm { [ Dof{I} , {V} ] ; In Domain_Electrode ; }
}
}
The resolution gives the following error :
Operation : Generate[A]
Solver : Loading parameter file 'Sys_Mag.par'
Info : Setting System {A,b} to zero
Error : Substraction of different quantities: Vector - Scalar
As far as I understand right the error indicates that ur is not in a
"right" functionnal space.
How can I project "sigma[] * {d ur}" to get the corresponding {j} in the
right functionnal space?