/// <summary>
 /// General constructor for simulation inputs
 /// </summary>
 /// <param name="meshDataInput">Input data for spatial and angular mesh</param>
 /// <param name="simulationOptionsInput">Mesh simulation options input</param>
 /// <param name="extSourceInput">Specifying external source</param>
 /// <param name="intSourceInput">Specifying internal source</param>
 /// <param name="tissueInput">Specifying tissue definition</param>
 public SimulationInput(
     SquareMeshDataInput meshDataInput,
     MeshSimulationOptions simulationOptionsInput,
     IExtFemSourceInput extSourceInput,
     IIntFemSourceInput intSourceInput,
     ITissueInput tissueInput
     )
 {
     MeshDataInput          = meshDataInput;
     SimulationOptionsInput = simulationOptionsInput;
     ExtSourceInput         = extSourceInput;
     IntSourceInput         = intSourceInput;
     TissueInput            = tissueInput;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Get Internal source
        /// </summary>
        /// <param name="input">Internal FEM source</param>
        /// <returns>selected source</returns>
        public static IIntSource GetIntSource(IIntFemSourceInput input)
        {
            switch (input.SourceType)
            {
            case FemSourceType.Int2DPointSource:
                var ipsInput = (Int2DPointSourceInput)input;
                return(new Int2DPointSource(
                           ipsInput.Center,
                           ipsInput.ThetaRange));

            case FemSourceType.Int2DCircularSource:
                var icsInput = (Int2DCircularSourceInput)input;
                return(new Int2DCircularSource(
                           icsInput.Radius,
                           icsInput.Center,
                           icsInput.ThetaRange));

            case FemSourceType.Int2DEllipticalSource:
                var iesInput = (Int2DEllipticalSourceInput)input;
                return(new Int2DEllipticalSource(
                           iesInput.AParameter,
                           iesInput.BParameter,
                           iesInput.Center,
                           iesInput.ThetaRange));

            case FemSourceType.Int2DRectangularSource:
                var irsInput = (Int2DRectangularSourceInput)input;
                return(new Int2DRectangularSource(
                           irsInput.XLength,
                           irsInput.ZHeight,
                           irsInput.Center,
                           irsInput.ThetaRange));

            default:
                throw new NotImplementedException(
                          "Problem generating IIntSource instance. Check that IIntFemSourceInput has a matching IIntSource definition.");
            }
        }