FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 FastFieldSolvers
 Development
 FasterCap code issue?

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Antispam question: What do MOONwalk and MOONdance have in common?
Answer:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON

 
   

T O P I C    R E V I E W
yan Posted - Apr 19 2023 : 10:09:36
Dear Enrico:
In code:
#define AUTOREFINE_PRECOND_NONE 0
#define AUTOREFINE_PRECOND_JACOBI 1
#define AUTOREFINE_PRECOND_BLOCK 2
#define AUTOREFINE_PRECOND_SUPER 4
#define AUTOREFINE_PRECOND_HIER 8

In function:
void CSolveCap::MakePreconditioner()
You say:
// only if using Super precond or Hier precond and Super precond can be used to accelerate iterations
if( (m_clsGlobalVars.m_ucPrecondType & AUTOREFINE_PRECOND_SUPER) != 0)
First:if set m_ucPrecondType = AUTOREFINE_PRECOND_HIER (value is 8)
Second 8 & 4(AUTOREFINE_PRECOND_SUPER) = 0
Only super can enter if.hier can't.

In Function "RecurseComputePrecond"also have this issue, only super can enter if
// only if using Super precond or Hier precond and Super precond can be used to accelerate iterations
if(m_clsGlobalVars.m_ucPrecondType & AUTOREFINE_PRECOND_SUPER)
Do you mean:
if ((m_clsGlobalVars.m_ucPrecondType & AUTOREFINE_PRECOND_SUPER) ||
(m_clsGlobalVars.m_ucPrecondType & AUTOREFINE_PRECOND_HIER)
or: if use hier, I must set super and hier? = super | hier?

In function:
CAutoRefine::RefineMutual(CAutoSegment *panel1, CAutoSegment *panel2)
You use:
// in this case, we are computing the preconditioner, so don't be
too picky about approximation
potstatus = PotEstimateOpt(panel1, panel2, potestim1, potestim2, AUTOREFINE_PRECOND_HIER);
but in PostEstimateOpt, don't have AUTOREFINE_PRECOND_HIER
so it need AUTOREFINE_PRECOND_HIER?

Thanks
Yan
1   L A T E S T    R E P L I E S    (Newest First)
Enrico Posted - Apr 20 2023 : 10:34:19
Hi Yan,

first of all, the only released pre-conditioners are JACOBI and SUPER (which is actually called more correctly 'two levels' preconditioner in the documentation and in the Run dialog).
The others were experimental.

Said that:

in MakePreconditioner() there are three 'if' statements as you report, but if you select the SUPER, the code MUST enter all the three 'if' blocks (only in case we used HIER we should have the option to use both HIER and SUPER, but as said this is not released).

in RefineMutual(CAutoSegment *panel1, CAutoSegment *panel2) we actually call the PotEstimateOpt() function with the HIER parameter, but as you notice, this is dummy in this case - as the HIER preconditioner is not actually fully working. You should only care about SUPER.

Best Regards,
Enrico



FastFieldSolvers Forum © 2020 FastFieldSolvers S.R.L. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.06