// Scalar_Helmholtz - A linear solver the scalar helmholtz equation
// Copyright (C) 2012-2026 Eric Bechet
//
// See the LICENSE file for license information.
// Please report all bugs and problems to <bechet@cadxfem.org>.

#ifndef _SCALAR_HELMHOLTZ_DOMAIN_H_
#define _SCALAR_HELMHOLTZ_DOMAIN_H_

#include <string>
#include <vector>

#include "genSupports.h"
#include "genTerm.h"
#include "genTensors.h"
#include "genDataIO.h"
#include "genMatrix.h"

class ScalarHelmholtzDomain : public genSupport
{
public:
  double k; // wave number
  double a; // dissipation

public:
  ScalarHelmholtzDomain(const genDomain &s) : genSupport(s)
  {
    std::map<std::string,double >::const_iterator it;
    it=s.Scalars.find("k");
    if (it!=s.Scalars.end())
    {
      k = it->second;
    }
    else k=1.0;

    it=s.Scalars.find("a");
    if (it!=s.Scalars.end())
    {
      a = it->second;
    }
    
    else k=1.0;
  }
  ScalarHelmholtzDomain(const ScalarHelmholtzDomain& s) : genSupport(s){
    k = s.k;
    a = s.a;
  }
    ScalarHelmholtzDomain() : genSupport() {}
    virtual ~ScalarHelmholtzDomain() {}
};

#endif// _SCALAR_HELMHOLTZ_DOMAIN_H_