/*!\file:  ConstraintsStateLocal.h
 * \brief local header files
 */ 

#ifndef _CONSTRAINTSSTATELOCAL_H
#define _CONSTRAINTSSTATELOCAL_H

#include "../../Container/Container.h"
#include "../../classes/objects/objects.h"

/*melting: */
void  ThermalConstraintsState(Loads* loads, int* pconverged, int* pnum_unstable_constraints,int analysis_type);

/*rifts module: */
void   RiftConstraintsState(int* pconverged, int* pnum_unstable_constraints,Loads* loads,int min_mechanical_constraints,int analysis_type);
void   RiftConstrain(int* pnum_unstable_constraints,Loads* loads,int analysis_type);
int    RiftIsFrozen(Loads* loads,int analysis_type);
void   RiftFreezeConstraints(Loads* loads,int analysis_type);

/*rifts, trial and errors: */
int    RiftIsPreStable(Loads* loads);
void   RiftSetPreStable(Loads* loads);
void   RiftPreConstrain(int* pnum_unstable_constraints,Loads* loads);
void   RiftMaxPenetrationInInputs(Loads* loads);
int    RiftPotentialUnstableConstraints(Loads* loads);
int    RiftIsMaterialStable(Loads* loads);

#endif  /* _CONSTRAINTSSTATEX_H */
