I am a graduate student who just starting to learn about joint inversion with your code.
After a few synthetic tests with “1dinvga", I find out a bug in gplib (actually the unreleased version gplib-code, because gplib-0.7.2 is a little too 'old' for my environment) while trying to use vrefmodel.
I've listed the details of the error and what might cause it below.
Error:
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
Possible causes:
1dinvga.cpp: 445 : RefPkModel VRefModel
My Reason: "RefPkModel VRefModel" calls a constructor which does not assign(nlayers) for strike and dip, and the 'Init(nlayers)' in "ResPkModel::ReadModel()" is "SeismicModel::Init()" which does not assign for strike and dip either.
Since I haven't read all the source code yet (I'm still new to c++), I'm not sure how to fix this bug properly. And I hope to get your help.
Yutong
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello Dr. Moorkamp.
I am a graduate student who just starting to learn about joint inversion with your code.
After a few synthetic tests with “1dinvga", I find out a bug in gplib (actually the unreleased version gplib-code, because gplib-0.7.2 is a little too 'old' for my environment) while trying to use vrefmodel.
I've listed the details of the error and what might cause it below.
Error:
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
Possible causes:
1dinvga.cpp: 445 : RefPkModel VRefModel
My Reason: "RefPkModel VRefModel" calls a constructor which does not assign(nlayers) for strike and dip, and the 'Init(nlayers)' in "ResPkModel::ReadModel()" is "SeismicModel::Init()" which does not assign for strike and dip either.
Since I haven't read all the source code yet (I'm still new to c++), I'm not sure how to fix this bug properly. And I hope to get your help.
Yutong