ImpactX
Loading...
Searching...
No Matches
ImpactX.H
Go to the documentation of this file.
1/* Copyright 2022-2023 The Regents of the University of California, through Lawrence
2 * Berkeley National Laboratory (subject to receipt of any required
3 * approvals from the U.S. Dept. of Energy). All rights reserved.
4 *
5 * This file is part of ImpactX.
6 *
7 * Authors: Axel Huebl, Chad Mitchell, Ji Qiang
8 * License: BSD-3-Clause-LBNL
9 */
10#ifndef IMPACT_X_H
11#define IMPACT_X_H
12
14#include "elements/All.H"
15
17
18#include <AMReX_REAL.H>
19
20#include <list>
21#include <memory>
22
23
24namespace impactx
25{
30 class ImpactX
31 {
32 public:
35 ImpactX ();
36
37 // removed constructors/assignments
38 ImpactX (ImpactX const&) = delete;
39 ImpactX (ImpactX &&) = delete;
40 void operator= (ImpactX const&) = delete;
41 void operator= (ImpactX &&) = delete;
42
45 ~ImpactX ();
46
49 void finalize ();
50
53 void finalize_elements ();
54
60 void init_grids ();
61
68
75
86 void
88 amrex::ParticleReal bunch_charge,
90 amrex::Long npart
91 );
92
95 void validate ();
96
101 bool early_param_check ();
102
105 void evolve ();
106
109 void track_particles ();
110
115 void track_envelope ();
116
119 void track_reference (RefPart & ref);
120
125 void init_warning_logger ();
126
131 std::unique_ptr<initialization::AmrCoreData> amr_data;
132
138 void ResizeMesh ();
139
141 std::list<elements::KnownElements> m_lattice;
142
150 {
151 return m_grids_initialized;
152 }
153
154 private:
162 };
163
164} // namespace impactx
165
166#endif // IMPACT_X_H
bool initialized()
Definition ImpactX.H:149
std::unique_ptr< initialization::AmrCoreData > amr_data
Definition ImpactX.H:131
void track_envelope()
Definition envelope.cpp:34
ImpactX(ImpactX const &)=delete
std::list< elements::KnownElements > m_lattice
Definition ImpactX.H:141
void track_particles()
Definition particles.cpp:32
ImpactX()
Definition ImpactX.cpp:30
void add_particles(amrex::ParticleReal bunch_charge, distribution::KnownDistributions distr, amrex::Long npart)
Definition InitDistribution.cpp:295
void initBeamDistributionFromInputs()
Definition InitDistribution.cpp:523
~ImpactX()
Definition ImpactX.cpp:37
bool early_param_check()
Definition Warnings.cpp:60
void initLatticeElementsFromInputs()
Definition InitElement.cpp:634
void init_warning_logger()
Definition Warnings.cpp:24
void ResizeMesh()
Definition InitMeshRefinement.cpp:81
void init_grids()
Definition ImpactX.cpp:73
void track_reference(RefPart &ref)
Definition reference.cpp:30
void finalize()
Definition ImpactX.cpp:42
bool m_grids_initialized
Definition ImpactX.H:161
void operator=(ImpactX const &)=delete
void finalize_elements()
Definition ImpactX.cpp:62
void validate()
Definition Validate.cpp:22
void evolve()
Definition ImpactX.cpp:126
ImpactX(ImpactX &&)=delete
std::variant< Empty, Gaussian, Kurth4D, Kurth6D, KVdist, Thermal, Triangle, Semigaussian, Waterbag > KnownDistributions
Definition All.H:28
Definition CovarianceMatrixMath.H:25
Definition ReferenceParticle.H:31