[Getdp] 3D a-v - what is different if I use hexahedrons instead of tetrahedrons?

Thomas Jung Thomas.Jung at iisb.fraunhofer.de
Tue Jun 12 12:13:31 CEST 2007


Hello there,

I am using a  3D a-v formulation, which works fine for purely
tetrahedral meshes (have compared and verified my results with other
programs), but not for purely hexagonal meshes.
I am absolutely no finite element expert - could someone please give me
a hint?

Thank you very much!

Thomas

here the pro-file:


Group {
  Air = Region[101];
  Coil = Region[102];
  GroundZeroBottom = Region[11];
  GroundBottom = Region[12];
  OuterBoundary = Region[{1,2,3,4,5,6}];
  DomainS_Mag = Region[Coil];

  /* all conducting regions */
  DomainC_Mag = Region[Coil];

  /* non-conducting regions = DomainCC_Mag */
  DomainCC_Mag = Region[Air];

  /* entire domain */
  Domain_Mag = Region[{DomainC_Mag, DomainCC_Mag}];
}

// list: time - potential
Include "HeizerUntenSmoothed.dat"

Function {
  epsr[Air] = 1.;
  epsr[Coil] = 1.;
}

Function {
  sigma[Coil]=7.2e4;
  sigma[Air]=0.;
}

Function {
    mu0 = 4.e-7 * Pi;
    nu [ Domain_Mag]  = 1. / mu0;
}

Function {
    Side2[] = 0.2* ($Time<0.002 ?
$Time/0.002:1)*InterpolationLinear[Fmod[$Time,0.02]]{List[HeizerUnten]};
}

Constraint {

  { Name ElectricScalarPotential; Type Assign;
    Case {
      { Region GroundZeroBottom; Value 0.; }
      { Region GroundBottom; Value 1.; TimeFunction Side2[];}
    }
  }

  { Name a; Type Assign;
    Case {
       { Region OuterBoundary ; Value 0.; }
    }
  }

  { Name Gauge; Type Assign;
  Case {
	{ Region Domain_Mag ; SubRegion OuterBoundary; Value 0.; }
    }
  }

}

Jacobian {
  { Name Vol ;
    Case { { Region All; Jacobian Vol; }
    }
  }
}

Integration {
    { Name CurlCurl ;
    Case { {Type Gauss ;
    Case { { GeoElement Triangle    ; NumberOfPoints  4 ; }
    { GeoElement Quadrangle  ; NumberOfPoints  4 ; }
    { GeoElement Tetrahedron    ; NumberOfPoints  4 ; }
    { GeoElement Hexahedron  ; NumberOfPoints  6 ; }
    { GeoElement Pyramid  ; NumberOfPoints  8 ; }
    { GeoElement Prism       ; NumberOfPoints  9 ; } }
    }
    }
    }
}

eps0 = 8.854187818e-12;

Group {
  DefineGroup[ Domain_Mag, DomainS_Mag,DomainCC_Mag, DomainC_Mag ];
}

Function {
  DefineFunction[ epsr ];
}

Function {
  DefineFunction[ sigma ];
}

Function {
    DefineFunction[ nu ];
}

/* for electric potential */

FunctionSpace {
  { Name v_Ele; Type Form0;
    BasisFunction {
      { Name sn; NameOfCoef vn; Function BF_Node;
        Support DomainC_Mag; Entity NodesOf[ All ]; }
    }
    Constraint {
      { NameOfCoef vn; EntityType NodesOf;
        NameOfConstraint ElectricScalarPotential; }
    }
  }

  // Magnetic vector potential a (b = curl a)
  { Name Hcurl_a_Mag_3D; Type Form1;
    BasisFunction {
	{ Name se; NameOfCoef ae; Function BF_Edge;
        Support Domain_Mag; Entity EdgesOf[ All ]; }
    }
    Constraint {
	{ NameOfCoef ae; EntityType EdgesOf;NameOfConstraint a; }
	{ NameOfCoef ae; EntityType EdgesOfTreeIn; EntitySubType StartingOn;
NameOfConstraint Gauge; }
    }
  }

}

  { Name MagnetoDynamics_a_3D; Type FemEquation;
    Quantity {
      { Name a ; Type Local; NameOfSpace Hcurl_a_Mag_3D; }
      { Name v; Type Local; NameOfSpace v_Ele; }
    }
    Equation {
	Galerkin { [ nu[] * Dof{d a} , {d a} ]; In Domain_Mag; Jacobian Vol;
Integration CurlCurl; }
	Galerkin { DtDof [ sigma[] * Dof{a} , {a} ]; In DomainC_Mag; Jacobian
Vol; Integration CurlCurl; }
	Galerkin { [ sigma[] * Dof{d v} , {a} ]; In DomainC_Mag; Jacobian Vol;
Integration CurlCurl; }
	Galerkin { DtDof [ sigma[] * Dof{a} , {d v} ]; In DomainC_Mag;	Jacobian
Vol; Integration CurlCurl; }
	Galerkin { [ sigma[] * Dof{d v} , {d v} ]; In DomainC_Mag; Jacobian
Vol; Integration CurlCurl; }
    }
  }
}

Resolution {

  { Name Magdyn ;
    System {
      { Name A2 ; NameOfFormulation MagnetoDynamics_a_3D;}
    }
    Operation {
	InitSolution[A2]; SaveSolution[A2];
	TimeLoopTheta[0,0.08, 0.0001, 1] {
	 Generate[A2]; Solve[A2];
	    SaveSolution[A2];
        }
    }
  }

}