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

Unit tests for RFCavity component (base layer). More...

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

Go to the source code of this file.

Classes

class  FakeFieldmap
 
class  DummyGeometry
 
class  DummyField
 
class  TestRFCavity
 
class  RFCavityTest
 

Functions

 TEST_F (RFCavityTest, GetType)
 
 TEST_F (RFCavityTest, Bends)
 
 TEST_F (RFCavityTest, GetSetAmplitudeFrequencyPhase)
 
 TEST_F (RFCavityTest, GetDimensions)
 
 TEST_F (RFCavityTest, BodyExtentCanDifferFromFieldSupport)
 
 TEST_F (RFCavityTest, ZeroBodyLengthDoesNotFallBackToFieldmapLength)
 
 TEST_F (RFCavityTest, ApplyInside)
 
 TEST_F (RFCavityTest, ApplyBefore)
 
 TEST_F (RFCavityTest, ApplyAfter)
 
 TEST_F (RFCavityTest, ApplyPhaseZero)
 
 TEST_F (RFCavityTest, ApplyPhaseShift)
 
 TEST_F (RFCavityTest, ApplyPhasePi)
 
 TEST_F (RFCavityTest, PhaseIndependentOfFrequencyAtT0)
 
 TEST_F (RFCavityTest, ApplyScaling)
 
 TEST_F (RFCavityTest, TimeDependence)
 
 TEST_F (RFCavityTest, ApplyToReferenceParticle)
 
 TEST_F (RFCavityTest, FieldmapOutOfBounds)
 

Detailed Description

Unit tests for RFCavity component (base layer).

This test suite validates the core behavior of RFCavity using:


Coverage

  1. Basic API
    • getType()
    • bends()
    • amplitude / frequency / phase setters and getters
  2. Geometry
    • getFieldExtend()
  3. Spatial behavior
    • apply() inside the element
    • apply() before the element
    • apply() after the element
  4. RF phase behavior (core physics)
    • cos(phi) scaling of electric field (E)
    • sin(phi) scaling of magnetic field (B)
    • special phases:
      • phi = 0 → max E, no B
      • phi = π/2 → no E, max B
      • phi = π → inverted E
    • independence of frequency at t = 0
  5. Scaling behavior
    • linear scaling of fields via cavity scale factor
  6. Time dependence
    • field variation with time through phi = ωt + phase
  7. Fieldmap interaction / edge cases
    • correct handling of out-of-bounds fieldmap queries

Notes

  • The FakeFieldmap provides a simple, deterministic field: E = (1, 0, 0), B = (0, 1, 0) allowing direct verification of cos/sin modulation.
  • Tests focus on physics correctness rather than implementation details.
  • The fixture defines a stable default configuration: scale = 1, frequency = 1, phase = 0 Individual tests override only what they need.

Definition in file TestRFCavity.cpp.

Function Documentation

◆ TEST_F() [1/17]

TEST_F ( RFCavityTest  ,
ApplyAfter   
)

Definition at line 313 of file TestRFCavity.cpp.

◆ TEST_F() [2/17]

TEST_F ( RFCavityTest  ,
ApplyBefore   
)

Definition at line 295 of file TestRFCavity.cpp.

◆ TEST_F() [3/17]

TEST_F ( RFCavityTest  ,
ApplyInside   
)

Definition at line 276 of file TestRFCavity.cpp.

◆ TEST_F() [4/17]

TEST_F ( RFCavityTest  ,
ApplyPhasePi   
)

Definition at line 376 of file TestRFCavity.cpp.

◆ TEST_F() [5/17]

TEST_F ( RFCavityTest  ,
ApplyPhaseShift   
)

Definition at line 358 of file TestRFCavity.cpp.

◆ TEST_F() [6/17]

TEST_F ( RFCavityTest  ,
ApplyPhaseZero   
)

Definition at line 336 of file TestRFCavity.cpp.

◆ TEST_F() [7/17]

TEST_F ( RFCavityTest  ,
ApplyScaling   
)

Definition at line 427 of file TestRFCavity.cpp.

◆ TEST_F() [8/17]

TEST_F ( RFCavityTest  ,
ApplyToReferenceParticle   
)

Definition at line 473 of file TestRFCavity.cpp.

◆ TEST_F() [9/17]

TEST_F ( RFCavityTest  ,
Bends   
)

Definition at line 209 of file TestRFCavity.cpp.

◆ TEST_F() [10/17]

TEST_F ( RFCavityTest  ,
BodyExtentCanDifferFromFieldSupport   
)

Definition at line 233 of file TestRFCavity.cpp.

◆ TEST_F() [11/17]

TEST_F ( RFCavityTest  ,
FieldmapOutOfBounds   
)

Definition at line 485 of file TestRFCavity.cpp.

◆ TEST_F() [12/17]

TEST_F ( RFCavityTest  ,
GetDimensions   
)

Definition at line 224 of file TestRFCavity.cpp.

◆ TEST_F() [13/17]

TEST_F ( RFCavityTest  ,
GetSetAmplitudeFrequencyPhase   
)

Definition at line 211 of file TestRFCavity.cpp.

◆ TEST_F() [14/17]

TEST_F ( RFCavityTest  ,
GetType   
)

Definition at line 207 of file TestRFCavity.cpp.

References RFCAVITY.

◆ TEST_F() [15/17]

TEST_F ( RFCavityTest  ,
PhaseIndependentOfFrequencyAtT0   
)

Definition at line 399 of file TestRFCavity.cpp.

◆ TEST_F() [16/17]

TEST_F ( RFCavityTest  ,
TimeDependence   
)

Definition at line 449 of file TestRFCavity.cpp.

◆ TEST_F() [17/17]

TEST_F ( RFCavityTest  ,
ZeroBodyLengthDoesNotFallBackToFieldmapLength   
)

Definition at line 257 of file TestRFCavity.cpp.