OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
TestTravelingWave.cpp File Reference

Unit tests for TravelingWave component. More...

#include <gtest/gtest.h>
#include "AbsBeamline/TravelingWave.h"
#include "AbsBeamline/ElementBase.h"
#include "Fields/Fieldmap.h"
#include <cmath>
#include <memory>
Include dependency graph for TestTravelingWave.cpp:

Go to the source code of this file.

Classes

class  FakeTWFieldmap
 
class  DummyGeometryTW
 
class  DummyFieldTW
 
class  TestTravelingWave
 
class  TravelingWaveTest
 

Macros

#define private   public
 

Functions

 TEST_F (TravelingWaveTest, GetType)
 
 TEST_F (TravelingWaveTest, Bends)
 
 TEST_F (TravelingWaveTest, GetSetAmplitudeFrequencyPhase)
 
 TEST_F (TravelingWaveTest, GetDimensions)
 
 TEST_F (TravelingWaveTest, GetElementDimensions)
 
 TEST_F (TravelingWaveTest, EdgeTransforms)
 
 TEST_F (TravelingWaveTest, SetPhasemUpdatesInternalPhases)
 
 TEST_F (TravelingWaveTest, ApplyEntryRegion)
 
 TEST_F (TravelingWaveTest, ApplyCoreRegionAccumulatesTwoContributions)
 
 TEST_F (TravelingWaveTest, ApplyExitRegion)
 
 TEST_F (TravelingWaveTest, ApplyOutsideBefore)
 
 TEST_F (TravelingWaveTest, ApplyOutsideAfter)
 
 TEST_F (TravelingWaveTest, ApplyPhasePiOverTwoGivesMagneticField)
 
 TEST_F (TravelingWaveTest, ApplyToReferenceParticleEntry)
 
 TEST_F (TravelingWaveTest, FieldmapOutOfBounds)
 
 TEST_F (TravelingWaveTest, IsInside)
 

Detailed Description

Unit tests for TravelingWave component.

This test suite validates the core behavior of TravelingWave using:


Coverage

  1. Basic API
    • getType()
    • bends()
    • amplitude / frequency / phase setters and getters
  2. Geometry
    • getFieldExtend()
    • getElementDimensions()
    • getEdgeToBegin()
    • getEdgeToEnd()
  3. Spatial behavior
    • apply() in entry region
    • apply() in core region
    • apply() in exit region
    • apply() outside the element
  4. Traveling-wave phase behavior
    • setPhasem() updates internal phaseCore1_m / phaseCore2_m / phaseExit_m
  5. Field superposition
    • core region accumulates two field contributions
  6. Scaling behavior
    • entry / core / exit scales act correctly
  7. Fieldmap interaction / edge cases
    • correct handling of out-of-bounds fieldmap queries
    • isInside()

Notes

  • The FakeTWFieldmap provides a simple, deterministic field: E = (1, 0, 0), B = (0, 1, 0) allowing direct verification of cos/sin modulation and accumulation.
  • Tests focus on physics/logic correctness of TravelingWave region handling.

Definition in file TestTravelingWave.cpp.

Macro Definition Documentation

◆ private

#define private   public

Definition at line 56 of file TestTravelingWave.cpp.

Function Documentation

◆ TEST_F() [1/16]

TEST_F ( TravelingWaveTest  ,
ApplyCoreRegionAccumulatesTwoContributions   
)

Definition at line 323 of file TestTravelingWave.cpp.

◆ TEST_F() [2/16]

TEST_F ( TravelingWaveTest  ,
ApplyEntryRegion   
)

Definition at line 304 of file TestTravelingWave.cpp.

◆ TEST_F() [3/16]

TEST_F ( TravelingWaveTest  ,
ApplyExitRegion   
)

Definition at line 346 of file TestTravelingWave.cpp.

◆ TEST_F() [4/16]

TEST_F ( TravelingWaveTest  ,
ApplyOutsideAfter   
)

Definition at line 378 of file TestTravelingWave.cpp.

◆ TEST_F() [5/16]

TEST_F ( TravelingWaveTest  ,
ApplyOutsideBefore   
)

Definition at line 362 of file TestTravelingWave.cpp.

◆ TEST_F() [6/16]

TEST_F ( TravelingWaveTest  ,
ApplyPhasePiOverTwoGivesMagneticField   
)

Definition at line 397 of file TestTravelingWave.cpp.

References Physics::pi.

◆ TEST_F() [7/16]

TEST_F ( TravelingWaveTest  ,
ApplyToReferenceParticleEntry   
)

Definition at line 417 of file TestTravelingWave.cpp.

◆ TEST_F() [8/16]

TEST_F ( TravelingWaveTest  ,
Bends   
)

Definition at line 245 of file TestTravelingWave.cpp.

◆ TEST_F() [9/16]

TEST_F ( TravelingWaveTest  ,
EdgeTransforms   
)

Definition at line 276 of file TestTravelingWave.cpp.

◆ TEST_F() [10/16]

TEST_F ( TravelingWaveTest  ,
FieldmapOutOfBounds   
)

Definition at line 431 of file TestTravelingWave.cpp.

◆ TEST_F() [11/16]

TEST_F ( TravelingWaveTest  ,
GetDimensions   
)

Definition at line 260 of file TestTravelingWave.cpp.

◆ TEST_F() [12/16]

TEST_F ( TravelingWaveTest  ,
GetElementDimensions   
)

Definition at line 268 of file TestTravelingWave.cpp.

◆ TEST_F() [13/16]

TEST_F ( TravelingWaveTest  ,
GetSetAmplitudeFrequencyPhase   
)

Definition at line 247 of file TestTravelingWave.cpp.

◆ TEST_F() [14/16]

TEST_F ( TravelingWaveTest  ,
GetType   
)

Definition at line 243 of file TestTravelingWave.cpp.

References TRAVELINGWAVE.

◆ TEST_F() [15/16]

TEST_F ( TravelingWaveTest  ,
IsInside   
)

Definition at line 443 of file TestTravelingWave.cpp.

◆ TEST_F() [16/16]

TEST_F ( TravelingWaveTest  ,
SetPhasemUpdatesInternalPhases   
)

Definition at line 287 of file TestTravelingWave.cpp.

References Physics::pi, and Physics::two_pi.