@hwlau Well not exactly. The AMR engine will call the solver you tell it to call (whether the problem is hyperbolic, parabolic, or elliptic). It's main job is to check to see if the grid/grids are needing refinement (or not) and calls functions as necessary. Your job as programmer requires setting up the problem effectively and accounting for changes in the CFL condition
hp-FEM is a general version of the finite element method (FEM), a numerical method for solving partial differential equations based on piecewise-polynomial approximations that employs elements of variable size
(h) and polynomial degree (p). The origins of hp-FEM date back to the pioneering work of Ivo Babuska et al.
who discovered that the finite element method converges exponentially fast when
the mesh is refined using a suitable combination of h-refinements
(dividing elements into smaller ones) and p-refinements (increasing their
polynomial degree). The exponential convergence makes t...
@KyleKanos Does the Chombo imply that I can write a simple FDM, and it help me to solve the problem with AMR.
Its description: > Chombo provides a set of tools for implementing finite difference methods for the solution of partial differential equations on block-structured adaptively refined rectangular grids.
@DIMension10 you guys are actually breaking CC-BY-SA rules here
> Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
The last sentence. Creating dummy accounts for everyone counts as this, I guess. If that's the case, then Sklivvz and the rest (as a content creator, not as an SE employee) can actually sue since having an account in their name (and attributing it to that account, instead of the SE account) seems to be an endorsement
Anonymous
@ManishEarth It really does not, as we are actually attributing to their SE account if you see the posts. We will however add a notice to these accounts saying that they have never logged on to PO, i.e. are SE users.
@DIMension10 Please delete my account and don't let me go through hoops. You know I don't want to be associated with you, so please don't be nasty, yes? I don't want to give you my email address, and you shouldn't force me to.
@DIMension10 also, please learn how to spell my name, it's surely not that hard. I don't get notifications otherwise
2
@DIMension10 The contents of the account (e.g. my location, or my account description) still require attribution. My "user" has not been part of physicsoverflow for the past three years. According to CC-BY-SA you can use my content, but not in a way which makes it seems I am endorsing your site. I think you are doing it because you are effectively saying that someone with my name, and a SE employee, has been contributing to your site for three years. I understand they are merely imports
2
but you need to understand that good intentions are not enough to comply with a license.
For example, @DIMension10 pages like this explicitly say I did actions on your site which I never did.
I have no activity on the site, and the imported user doesn't either.
Anonymous
3:43 PM
@Slivvz If that is your concern, then if you re-look at your profile page, you will see that there already is a line saying you do not participate on PO.
Anonymous
I could maybe delete your account if you wish, but wait for a while.
@hwlau I myself haven't really learned the specifics of how Chombo works because the code I use based their AMR engine on Chombo's engine so it isn't a complete replica.
Anonymous
@Sklivvz Your account is now deleted on PhysicsOverflow.
Personally, I find the best way to figure out a piece of code (or an entire code), is to follow the function paths. Start with amrGodunov.cpp in the releasedExamples folder and figure out where the code is going and what each function does.
The Chombo files seem to be fairly well commented to explain what is going on
@KyleKanos This is the easiest thing with small to medium sized codes, but above a certain scale it get too painful to contemplate unless there is no documentation whatsoever.
That you can probably manage by tracking the call tree. I've occasionally found myself dumped into the middle of codes that total circa half a million lines. (Lots of that code is obsolete cruft, but it is still getting called on some paths and there is no guidance to which paths people actually use, because particle physics codes almost never remove features even when they are completely superseded...)
@KyleKanos This only work for small size program. For any large program, you need to get some basic understanding before you can/should change the codes, and learn something new.
@KyleKanos If statement usually do not cost a lot of time, but the codes will be harder to read.
@hwlau: I think it can work in larger codes if you are only interested in a small subset of it. 150k lines is quite a bit, but I don't think you'd use nearly that many lines for a hydrodynamic simulation.
I can't, for the life of me, remember what exactly did our teacher said that day and I'm hoping you would probably know.
The module is "Data Structures and Algorithms" and he told us something along the lines of:
The if statement is the most expensive
[something]. [something] registers
[...
@hwlau In high performance computing, every bit and every microsecond counts. Wasting it on if statements that are determined at run-time is bad practice.
@hwlau Take a look at the files GodunovPhysics.cpp and PatchGodunov.cpp in the folder lib/src/AMRTimeDependent Those cover most of the methods in computing the FVM averages and updating the solutions.