Closed rath3t closed 3 weeks ago
Basically the C++ side is finished. Im working now on the Python side but the crucial thing is the name of the new class FEProblem. I really dont like the name, dou you have any ideas?
Also I dont like QuantityType
as a name for the objects for the request.
Do you think we should als change the member functions of the assembler to have one name getMatrix(...,QuantityType::Full)
and get rid of the different names such as getReducedMatrix
Also I dont like
QuantityType
as a name for the objects for the request.Do you think we should als change the member functions of the assembler to have one name
getMatrix(...,QuantityType::Full)
and get rid of the different names such asgetReducedMatrix
Since QuantityType
actually signifies how the homogeneous Dirichlet boundary conditions are enforced, may be we can name it in a similar fashion. What do you then think about the following suggestions?
EnforceBCType
or EnforceDirichletBCType
ApplyBCType
or ApplyDirichletBCType
AssemblerOptions
BCOptions
EnforcingBCOptions
and similar...We can also have non-type template bool that says if the BC condition is to be enforced and default it to true
. We can then also get rid of QuantityType::Raw
and just return via getRawMatrix
if this bool is set to false
.
I am okay with having the member function of the assembler to one name like getMatrix
or even get rid of "get" and use just matrix
, if possible.. I am also open for this change to happen in a separate PR.
Ok I though about it back and forth. I I think the cleanest option is to merge FEProblem with the assemblers.
This entangles things more but I want to go that way. Think about the discussion I told you to read in Bob Martin "Clean code". In "John K. Ousterhout. A Philosophy of Software Design" the authors argues that classes should be deep and not shallow. In my point of view right now this is the way to go to make the assembler class deeper. Instead of seperating tiny things in several classes as more or less advertised by Bob Martin "Clean code".
Attention: Patch coverage is 86.36364%
with 33 lines
in your changes missing coverage. Please review.
Project coverage is 91.23%. Comparing base (
bc987df
) to head (0ef6bea
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Ok I will hit autmerge here, even if the example docs are outdated now.
This PR also fixes #290 .