Hi everyone,
The cdr solver is really what I need. I changed the user interface code a little bit regarding loading mesh, setting boundary conditions and initial conditions. Now the code can load a mesh file (*.inp).
When I use one processor to run it with the command `mpirun -np 1 ./cdr SmallPorous.inp`, the simulation is conducted without any error.
When I use multiple processor with command `mpirun -np 14 ./cdr SmallPorous.inp`, I get the following exceptions, which seems to be unmatched dof between processors:
```
...
...
cycle 128 and number of degrees of freedom: 20796
cycle 129 and number of degrees of freedom: 20800
cycle 130 and number of degrees of freedom: 20803
--------------------------------------------------------
An error occurred in line <3561> of file </home/tingchang/dealii-9.7.0/source/dofs/dof_handler_policy.cc> in function
dealii::internal::DoFHandlerImplementation::Policy::{anonymous}::communicate_dof_indices_on_marked_cells<2, 2>(const dealii::DoFHandler<2, 2>&, std::vector<bool>&)::<lambda(const auto:243&, const auto:244&)>::<lambda(auto:245&, auto:246)> [with auto:245 = unsigned int; auto:246 = unsigned int*]
The violated condition was:
(stored_index == invalid_dof_index) || (stored_index == *received_index)
Additional information:
This exception -- which is used in many places in the library --
usually indicates that some condition which the author of the code
thought must be satisfied at a certain point in an algorithm, is not
fulfilled. An example would be that the first part of an algorithm
sorts elements of an array in ascending order, and a second part of
the algorithm later encounters an element that is not larger than the
previous one.
There is usually not very much you can do if you encounter such an
exception since it indicates an error in deal.II, not in your own
program. Try to come up with the smallest possible program that still
demonstrates the error and contact the deal.II mailing lists with it
to obtain help.
```
I am thinking that some parts of my code might be improved to aviod this exception, although i have seen `There is usually not very much you can do if you encounter such an
exception`.