quiescent2.inp

来自「pic 模拟程序!面向对象」· INP 代码 · 共 180 行

INP
180
字号
quiescent2{This is a quiescent plasma, with plasma-based accelerator parameters.This input file is used for testing purposes and to see how well the  simplest possible XOOPIC simulation scales up to many processors.However, we do turn on the moving window in this case.}// Define variables that can be used throughout this input file.Variables{// First, define some useful constants.  pi = 3.14159265358979323846  speedOfLight = 2.99792458e+08  electronMass = 9.1093897e-31  unitCharge = electronMass * 1.75881962e11  electronCharge = -1. * unitCharge  electronMassEV = electronMass * speedOfLight * speedOfLight / unitCharge  ionCharge = unitCharge  unitMassMKS = electronMass / 5.48579903e-04  lithiumMassNum = 6.942  lithiumMass = unitMassMKS * lithiumMassNum// Define the number of grids in R and Z	lengthOverRadiusAspectRatio = 128	numRgrids = 16	numZgrids = numRgrids * lengthOverRadiusAspectRatio	numCells = numRgrids * numZgrids// Calculate the size of the simulation region, grid spacings, time step.// We are assuming the same grid size in both z and r		rGridSize = 10.e-06	zGridSize = rGridSize  maxRadiusMKS = rGridSize * numRgrids	maxLengthMKS = zGridSize * numZgrids	timeStep = 0.41 * rGridSize / speedOfLight// Define the plasma density, number of plasma electron macro-particles, etc.	plasmaDensityMKS = 2.e+20	simulationVolume = pi * maxRadiusMKS * maxRadiusMKS * maxLengthMKS	totalNumPlasma = plasmaDensityMKS * simulationVolume	numPtclsPerCell = 10	numPlasmaPtcls = numPtclsPerCell * numCells	plasmaNumRatio = totalNumPlasma / numPlasmaPtcls// Define plasma temperature and resulting flux of electrons into the simulation region.  plasmaTempEV = 1.0  thermalSpeed = speedOfLight * sqrt( plasmaTempEV / electronMassEV )// This is the desired delay time before the moving window algorithm activates.  movingWindowDelay = 0.0}// This simulation has only one "region", which contains grid, all particles, etc.Region{// Define the grid for this region.Grid{// Define number of grids along Z-axis and physical coordinates.	J = numZgrids	x1s = 0.0	x1f = maxLengthMKS	n1 = 1.0// Define number of grids along R-axis and physical coordinates.	K = numRgrids	x2s = 0.0	x2f = maxRadiusMKS	n2 = 1.0}// Specify "control" parameters for this regionControl{// Specify the time step.	dt = timeStep// Turn on the moving window algorithm.  movingWindow = 1  shiftDelayTime = movingWindowDelay// Turn on damping for the high-frequency EM fields  emdamping = 0.49}// Define the plasma ions.Species{	name = ions	m = lithiumMass	q = ionCharge}// Load the plasma ions over the entire simulation region.Load{	speciesName = ions	density = plasmaDensityMKS	x1MinMKS = 0.0	x1MaxMKS = maxLengthMKS	x2MinMKS = 0.0	x2MaxMKS = maxRadiusMKS// This specifies a static uniform background (no macro-particles).	np2c = 0}// Define the plasma electrons.Species{	name = electrons	m = electronMass	q = electronCharge}// Load the plasma electrons over the entire simulation region.VarWeightLoad{	speciesName = electrons	density = plasmaDensityMKS	x1MinMKS = 0.0	x1MaxMKS = maxLengthMKS	x2MinMKS = 0.0	x2MaxMKS = maxRadiusMKS	np2c = 2 * plasmaNumRatio// Specify a finite plasma temperature (can be zero, of course).  v1thermal = thermalSpeed  v2thermal = thermalSpeed  v3thermal = 0.0}// Specify a perfect conductor along the left boundary.  This serves as a particle//   boundary condition (catches particles that leave the simulation) and as a//   field boundary condition (E_r is forced to vanish).Conductor{	j1 = 0	j2 = 0	k1 = 0	k2 = numRgrids	normal = 1}// Specify a perfect conductor along the radial boundary.  This serves as a//   particle boundary condition (catches particles that leave the simulation)//   and as a field boundary condition (E_z is forced to vanish).Conductor{	j1 = 0	j2 = numZgrids	k1 = numRgrids	k2 = numRgrids	normal = -1}// Specify a perfect conductor along the right boundary.  This serves as a//   particle boundary condition (catches particles that leave the simulation)//   and as a field boundary condition (E_r is forced to vanish).Conductor{	j1 = numZgrids	j2 = numZgrids	k1 = numRgrids	k2 = 0	normal = -1}// Define the cylindrical symmetry axis.CylindricalAxis{	j1 = 0	j2 = numZgrids	k1 = 0	k2 = 0	normal = 1}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?