/// <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; }
/// <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."); } }