// elastic_genTerm - A linear solver for elastic problems using FEM
// Copyright (C) 2010-2026 Eric Bechet
//
// See the LICENSE file for license information and contributions.
// Please report all bugs and problems to <bechet@cadxfem.org>.


#ifndef _ELASTODYNAMIC_XFEM_SOLVER_H
#define	_ELASTODYNAMIC_XFEM_SOLVER_H

#include "elastodynamicSolver.h"
#include "lectureData.h"
#include "genDataLS.h"
#include "levelSetDomain.h"
#include "bimaterialXfemDomain.h"

class ElastodynamicXfemSolver  : public ElastodynamicSolver{
protected :

  // supports
  std::vector<genTerm<genTensor1<double>,0 >::Handle> FuncANA;
  lectureData* fichier;
  genDataLS* DataLS;
  std::vector<LevelSetDomain*> LSDomains;
  std::vector<BimaterialDomain*> BiDomains;
  
  
public :
  ElastodynamicXfemSolver() : ElastodynamicSolver(), fichier(0) {
    DataLS = new genDataLS();
    Data = DataLS;
  }

  virtual ~ElastodynamicXfemSolver();
  
  //read data file
  virtual void readInputFile(const std::string &fileName);
  
  // builds local supports
  virtual void CheckProperties();
  
  // build the problem function spaces
  virtual void CreateFunctionSpaces();


  /*
  virtual PView *buildViewDispDiff_x(const std::string &postFileName);
  virtual PView *buildViewDispInc_x(const std::string &postFileName);
  virtual PView *buildViewDispAna_x(const std::string &postFileName);
  virtual PView *buildViewDispNum_x(const std::string &postFileName);

  */
};

#endif //_ELASTODYNAMIC_XFEM_SOLVER_H