Skip to content
/ choibc Public

A C++ library to compute High Order Impedance Boundary Condition coefficients.

License

Notifications You must be signed in to change notification settings

pirpyn/choibc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

choibc

Compute High Order Impedance Boundary Condition (HOIBC) coefficients by a constrained optimisation problem

Quick Install

git clone https://github.com/pirpyn/choibc

Quick Build

make CXXC=g++ -j

Description

This code is a C++ implementation of the Fortran which was written during my Ph.D thesis to provides a library to compute HOIBC coefficients that garantees the uniqueness of the solution of the exterior Maxwell equations. To do so, we solve a constrained optimisation problem using SQP method.

Theses coefficient takes curvatures into account, as the local infinite cylinder and the sphere are implemented along with the classic infinite plane.

Dependencies

This program needs

  • LAPACKE. On Ubuntu, the apt command is apt get liblapacke-dev.

Building

A Makefile is provided. To print all makefile recipes and options, run

make help

Testing

A src/test folder is present and check accuracy of bessel functions, the overloaded operator* and the hoibc::norm function. To launch thoses test, run

make run_test

A sample program is provided in the src/main folder. This program

  • reads a json filename from the command line and initialise a hoibc::data_t structure accordingly,
  • pass this struct the hoibc::main function,
  • compute the errors between the IBC and the exact impedance operator.

To run it, launch

make run ARGS=input.json

Compiler support

This code has been tested with and should run with at least

  • g++ 9.3.0
  • clang 10.0

Newer version should compile and run fine.

References

  • P. Payen, O. Lafitte, B Stupfel, "A high order impedance boundary condition with uniqueness conditions to solve thetime harmonic Maxwell’s equations", Proceedings 14th International Conference on Mathematical and Numerical Aspects of Wave Propagation. Book of Abstracts, https://doi.org/10.34726/waves2019, direct link
  • P. Payen, "Modélisation précise d'un matériaux hétérogène en hyperfréquence par une condition d'impédance d'ordre élevé", Ph.D Université Paris 13, Dec. 2019, http://theses.fr/s197772
  • S. Bochkanov, "ALGLIB 3.16.0 for C++" (www.alglib.net)

License

  • The original sourcecode and the modifications are released under a GNU GPL license.

About

A C++ library to compute High Order Impedance Boundary Condition coefficients.

Topics

Resources

License

Stars

Watchers

Forks

Languages