Using Mars gravity field from ICGEM

Hi,

I am facing a situation where I seek for help regarding ICGEM gravity fields models

I have implemented a potential coefficient reader succesfully for eigen-6s model for Earth.
The model file is properly read and loaded, because the RAAN of orbit is drifting as predicted by the theory (J2 effect), thus it is ok.

Now I was reusing this very same implementation (it is a function), but using Mars as central body (thus setting Mars GM in the initial spacecraft state orbit), and using gravity field model for Mars such as models jgm85f01 or ggm1025a extracted from ICGEM International Center for Global Gravity Field Models.

However in that case, the orbital period is OK (meaning the GM of Mars is well taken into account), but I don’t see any drift of the RAAN. zero drift, just as if the gravity model was purely central.

The GFC model is properly loaded, because I can poll the holmesFeatherstone.nonCentralPart() function to retrieve the non-central part of the gravity potential:
Capture
This is consistent with what I can see of Visualization of Gravity Field Models of Celestial Bodies (Moon, Venus, Mars) for Mars (click rotate button.

So I don’t relly understand why. Is there some subtleties in the GFC files, that might lead orekit to just skip it without a single warning/error ?
or is it a matter of units ? or the files provided by ICGEM are not good ?

I am using a ConstantNormalized provider, so altough the GFC files for Mars only gives ‘gfc’ lines, it should not be a problem (while eigen-6s gives gfc plus a number of terms for time-dependent parts)

thanks for your help

The code snippet (python)

def setBodyGravityHarmonics(self, display=True, modelname = "eigen-6s", degree = 100, order = 100, body = CelestialBodyFactory.EARTH, r=42000e3):
        '''
        This function adds Earth gravity harmonics model (Eigen-6S 100/100 deg/ord) to propagator.
        Other .gfc files can be used, in that case you must insert the .gfc file in the orekit-data.zip/Potential folder
        
        Parameters
        ----------
        display: bool
            flag to show Earth Potential 3D plot, at the height corresponding to satellite initial SMA
        modelname: str
            GFC gravity model filename (no extension)
        
        Returns
        -------
        None.
        '''
        GravityFieldFactory.clearPotentialCoefficientsReaders()
        potentialCoefficientsReader = ICGEMFormatReader(modelname+".gfc", False)
        GravityFieldFactory.addPotentialCoefficientsReader(potentialCoefficientsReader)
        harmonicsProvider = GravityFieldFactory.getConstantNormalizedProvider(degree, order)
        f = CelestialBodyFactory.getBody(body).getBodyOrientedFrame()
        holmesFeatherstone = HolmesFeatherstoneAttractionModel(f,
                                                               harmonicsProvider)

        self.prop.addForceModel(holmesFeatherstone)