Skip to content
Snippets Groups Projects
Commit c9eaf32b authored by Xavier Adriaens's avatar Xavier Adriaens
Browse files

up

parent fe82b1d1
No related branches found
No related tags found
No related merge requests found
...@@ -78,35 +78,42 @@ int inversion(const GmshFem& gmshFem) ...@@ -78,35 +78,42 @@ int inversion(const GmshFem& gmshFem)
msg::print << "--- Frequency group #" + suffix_g << " --- " << msg::endl; msg::print << "--- Frequency group #" + suffix_g << " --- " << msg::endl;
msg::indent(); msg::indent();
unsigned int n_freq = 1; unsigned int n_freq = 0;
std::vector<unsigned int> freq_idx;
if(!gmshFem.userDefinedParameter(n_freq, "n_freq"+suffix_g)) if(!gmshFem.userDefinedParameter(n_freq, "n_freq"+suffix_g))
{ {
msg::warning << "Total frequency number for frequency group #" << suffix_g << " could not be found." << msg::endl; msg::warning << "Total frequency number for frequency group #" << suffix_g << " could not be found." << msg::endl;
msg::warning << "A single frequency is used for frequency group #" << suffix_g << msg::endl; if(n_group == n_freq_tot)
}
std::vector<unsigned int> freq_idx(n_freq);
for (unsigned int f = 0; f < n_freq; f++)
{
std::string suffix_f = std::to_string(f);
if(!gmshFem.userDefinedParameter(freq_idx[f], "frequency"+suffix_g+suffix_f))
{
if(n_freq == 1)
{ {
freq_idx[f] = g; n_freq = 1;
freq_idx.resize(n_freq);
freq_idx[0] = g;
msg::warning << "A single frequency is used for frequency group #" << suffix_g << msg::endl;
} }
else if (n_freq == n_freq_tot) else if(n_group == 1)
{ {
n_freq = n_freq_tot;
freq_idx.resize(n_freq);
std::iota(freq_idx.begin(), freq_idx.end(), 0); std::iota(freq_idx.begin(), freq_idx.end(), 0);
msg::warning << "All frequencies are used for frequency group #" << suffix_g << msg::endl; msg::warning << "All frequencies are used for frequency group #" << suffix_g << msg::endl;
break;
} }
else else
{ {
throw Exception("Frequency index #"+suffix_f+" for group #" + suffix_f + " could not be found."); throw Exception("Simultaneous inversion of all frequencies requires n_group = 1. Sequential inversion of all frequencies requires n_group = n_freq_tot. Any intermediate case must be specified explicitely");
} }
} }
else
{
for (unsigned int f = 0; f < n_freq; f++)
{
std::string suffix_f = std::to_string(f);
if(!gmshFem.userDefinedParameter(freq_idx[f], "frequency"+suffix_g+suffix_f))
{
throw Exception("Frequency index #"+suffix_f+" for group #" + suffix_f + " could not be found.");
}
msg::print << "frequency #" + suffix_f << " = " << frequency[freq_idx[f]] << msg::endl; msg::print << "frequency #" + suffix_f << " = " << frequency[freq_idx[f]] << msg::endl;
} }
}
std::string integrationType; std::string integrationType;
if(!( if(!(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment