In this tutorial project the fundamental propagation modes of a graded index fiber are computed. In a graded index fiber, the refractive index of the core is not constant in space but depending on radial distance from the optical axis of the fiber. The functional dependence of refractive index in the core region is defined as a python expression in the file materials.jcm. In this case the permittivity depends on radial distance r as follows: with core radius , , , and .
Compare the syntax in the file materials.jcm:
• materials.jcm [ASCII]
Material {
Name = "Cladding"
DomainId = 1
RelPermeability = 1.0
RelPermittivity = 2.0736
}
Material {
Name = "Core"
DomainId = 2
RelPermeability = 1.0
RelPermittivity {
Python {
Expression = "this_radius = power(power(X[0], 2) + power(X[1], 2), 0.5);
delta = (power(n1, 2) - power(n2, 2))/(2*power(n1, 2));
value = power(n1, 2)*(1 - 2*delta*power((this_radius/radius), exponent_g));
value = value*eye(3, 3)"
Parameter {
Name = "n1"
VectorValue = 1.45
}
Parameter {
Name = "n2"
VectorValue = 1.44
}
Parameter {
Name = "exponent_g"
VectorValue = 1.9
}
Parameter {
Name = "radius"
VectorValue = 9.5e-6
}
}
}
}
Definition of the geometry:
• layout.jcm [ASCII]
Layout2D {
UnitOfLength = 1.0e-6
MeshOptions {
MaximumSideLength = 15
}
Objects {
Circle {
Name = "Cladding"
DomainId = 1
Priority = -1
Radius = 50.0
RefineAll = 2
Boundary {
BoundaryId = 1
Class = Domain
}
}
Circle {
Name = "Core"
DomainId = 2
Priority = 1
Radius = 9.5
MeshOptions {
CurvilinearDegree = 2
MaximumSideLength = 4
}
}
}
}
The tangential electric field components of the fields are expected to be decayed to zero at the boundaries of the computational domain:
• boundary_conditions.jcm [ASCII]
BoundaryCondition {
BoundaryId = 1
Electromagnetic = TangentialElectric
}
Accuracy settings and post process definitions (here, also the spatially dependent permittivity field is exported for visualization/cross-checking purposes):
• project.jcmp [ASCII]
Project {
InfoLevel = 3
Electromagnetics {
TimeHarmonic {
PropagatingMode {
Lambda0 = 1.55e-06
FieldComponents = ElectricXYZ
SelectionCriterion {
NearGuess {
Guess = 1.45
NumberEigenvalues = 2
}
}
Accuracy {
FiniteElementDegree = 3
Precision = 1e-4
Refinement {
MaxNumberSteps = 1
}
}
}
}
}
}
PostProcess {
ExportFields {
FieldBagPath = "project_results/fieldbag.jcm"
OutputFileName = "project_results/permittivity_field.jcm"
OutputQuantity = RelPermittivity
Cartesian {
NGridPointsX = 150
NGridPointsY = 150
}
}
}
PostProcess {
ExportFields {
FieldBagPath = "project_results/fieldbag.jcm"
OutputFileName = "project_results/e_field_cartesian.jcm"
OutputQuantity = ElectricFieldStrength
Cartesian {
NGridPointsX = 150
NGridPointsY = 150
}
}
}
A visualization of the field intensity distribution of a computed mode is shown in the figure below.
|